C# 3.0与Linq To Sql的学习方法--浅谈
写了十几篇关于c# 3.0和Linq To Sql的文章后,我开始回过头来,开始反思,我把读者带向了何方。是天堂?还是地狱?
高手们总是对Linq To Sql不屑一顾。谈问题喜欢从底层来。可更多的新手们徘徊在“会用”和“知道”的水平上。我就是这样。我永远都是个新手,无论在什么时候,达到了什么水平,其骨子里,永远都是个新人。
C# 3.0最大的变化莫过与推出了Linq, 其他所有的新的特性,包括Extension Method, Lambda Expression, Anonymous Types,其被引入的主要原因也是为了Linq。 当然,对于这些特性的使用,并不一定要局限于Linq。新的技术推出来了,使用它的人如何使用它,并不会受制造者的限制。
笔者从06年3月份开始,一直在从事C# 3.0的测试工作。不敢说对每个特性都知道,更不敢说对每个特性都很熟悉。只是知道某些特性而已。对于一个新手来讲,特别是那些没有用过C# 2.0的人,直接给他讲Lambda Expression,会让他眩晕的。因为,他还可能不知道Anonymous Methods. 那就更别提Extension Method了。那还有没有其他的方法?笔者做了尝试。那就是先用起来,再去慢慢理解。所以,在C# 3.0入门系列中,最开始讲的是Query Expression---查询表达式。
在ADO.NET + Sql 时代,我们用Ado.net 去构建数据访问层,对于那些与表对应的实体,需要我们自己去编写对应的类。这些方法是我们在编写与数据相关的应用程序时,常会用到的方法。因为,考虑到绝大多数人会用Linq To Sql去代替Ado.net 来去做与数据库相关的商业程序。所以,笔者抛弃了其他特性,直接从Linq 开始讲起。而这主要又是Linq To Sql.
Linq To Sql的名称的由来,是有个演化过程的。其最开始,称Dlinq。MS也只是推出了一个Linq Preview。后来,Linq从Linq Preview中集成到.NET Framework 3.5中。其名称空间也有Dlinq 改成了Linq, 那么Dlinq也相应调整名字,为Linq To Sql。在我的blog中,依然留有这个演化的痕迹。只是,笔者还没有来的及更新其内容。VS也由最初2007版本,更名为VS2008。 现在发布的是Beta2.
一个语言和一个技术的兴盛,是需要大量的人在使用它,认识到它的优点,并能推广它。笔者假设了所有的读者都是有C# 1.1语言基础的。而且着文更多的关注于Linq To Sql的应用。因为,笔者认为,这个才是Linq 的生命力所在。边学边用,边学边练,是笔者一直所倡导的学习方法。看会了,写不出来,那还是不会。那就动起手了,边学边做,真正的使用Linq To Sql做起你的项目。
笔者并不认为,非要知道Anonymous Methods,才能会用Lambda Expression。曾看过有人blog上断言,一个经验丰富的c#程序员学会用Lambda Expression,需要2年的时间。笔者依然想挑战这个预言。2个月行不行?2 个星期呢,是不是更好?要不咱2天吧,要是能2个小时最好不过了,或者只要2分钟。笔者的理论很简单,学会开拖拉机,并不一定需要知道拖拉机是怎么工作的。同样的,会使用Lambda Expression也并不一定知道Lambda Expression是如何实现的。要先用起来。 随着你工作经验的积累,再逐步去理解它,了解它,并且深入认识它。这才是一个循环渐进的过程。
而C# 3.0入门系列的文章,正是按这思路来的。或许,要是能有个具体的项目,边用Linq做着,边介绍linq或许更好。但是,有些东西是不能随便拿出来的。笔者在准备一个demo,希望它能对大家有所帮助。
ps:
C# 3.0 入门系列(一)
C# 3.0入门系列(二)
C# 3.0入门系列(三)
C# 3.0入门系列(四)-之Select操作
C#3.0入门系列(五)-之Where操作
C#3.0入门系列(六)-之OrderBy操作
C#3.0入门系列(七)--之OR工具介绍
C#3.0入门系列(八)-之GroupBy操作
C#3.0入门系列(九)-之GroupBy操作
C#3.0入门系列(十)-之Join操作
C#3.0入门系列(十一)-之In, Like操作
C#3.0入门系列(十二)-Lambda表达式中Lifting
Linq To Sql进阶系列(一)-从映射讲起
Linq To Sql进阶系列(二)M:M关系
Linq To Sql进阶系列(三)CUD和Log
Linq To Sql进阶系列(四)User Define Function篇