笑谈.Net的开发境界
本文诣在说明学习.Net开发的一些阶段性过程,希望对您的开发学习有所帮助。dk0728
微软的.Net框架为我们提供一个强大的开发平台,在此之上我们节省了很多力气去做一些底层的东西,但是真正能更好地借助这一平台做出强壮的应用程序并不是一件容易的事。在此我将.Net开发者的水平划分为几个阶段,看看您目前是处于什么样的状态,以及下步该如何学习。
首先要说明的是在.Net下面是完全面向对象的,因此对面向对象编程模式的理解是深刻理解.Net开发平台的工作原理及设计原则的基础。
第一层:
在这一层里面您学到一些入门级的功夫,象罗汉拳之类的。
伴随着.net2.0的出现,微软在这里面提供很多方便的控件帮助广大的初学者进行快速开发,典型的代表有SqlDataSource,登陆控件等。借助这些可视化的控件您就可以在集成开发环境下几乎不用书写或者只书写很少的代码就可以完成简单的应用程序开发。但随之带来的坏处也显而易见,对于这些控件的内部工作机制您可能不甚了解,很多细节都被隐藏起来,因些可以说在此阶段只是微软件给我们做了一些容易上手的玩具,让您对.Net开发有一个直观的认识并有兴趣了了解一些更深入的东西。
第二层:
现在您学习了一些剑招拳式并勤加练习以求熟练地使用它们,在这里打下的基础成为您将来发展带来良好的开端。
通过学习语法,阅读MSDN,您已经掌握了一些常用类的使用方法,如ADO.Net里面的连接类,DataAdapter,DataReader, DataSet,Command对象等并能进行一般的CRUD数据访问,知道了页面的执行顺序及基于事件的网页处理过程,这时候您已经可以根据ASP里面的开发经验开发出一些较为简单的应用。但是从整体上来说,您的程序并不是容易维护的,一旦需求发生变化时您可能需要作较多的修改,多个相同功能的代码也不能进行重用,各个页面功能之间相对独立, 这样虽然功能上可以实现,但是付出的代价还是很大的。为了缩短开发时间您不得不整天地进行Ctrol+ C 和Ctrol + V的操作,于是乎您开始着手寻找一种更有效和方便的开发方法.
第三层:
随着武功的精进,您发现虽然自己的招式都练得非常熟练,但是一旦遇上内力深厚的高手还是打不过,于是你开始修练.Net的内功心法,还找了一些较为上层的武功进行修炼(例入PetShop, Duwamish等一批精典作品)。
现在您已经积累了一些项目经验,对面向对象的开发方式也较为熟悉,这时您开始研究其它高手写的程序,开始明白一些类的设计原则及分层设计的思想,因为类的设计本来就是人们根据现实世界抽象出来的东西,因些随着社会的发展,您的程序也不再是原始社会的那种自给自足式的生活方式,社会分工开始出现,一些类被设计出来只完成特定的功能,并且整个社会也分成一些不同的社会阶层,您把程序分为几层,每层完成不同的任务,比如有专门负责最终呈现结果的表现层即我们的网页层,有提供事务逻辑的商业逻辑层,有专门负责数据访问的层,也有提供一些特定功能的Utility。您发现这样的结构大大优化了您的程序设计,每一层只需关心跟自己相关的业务功能即可,通过服务接口的方式为其它层提供服务,相同的功能,比如CRUD操作被统一到一个地方实现,前台的开发变得非常简便,并且能在需求发生变化的时候只做很少的改动即可满足要求。
第四层:
您的功力已经到了一个新的阶段,根据个人天份不一样,有的人可能就停滞不前,但勤奋的你并不满足而是更加用功地修炼内力,在各大门派中您已经是一位不可小看的人物。
在这个时候发生了一些变化,对技术感兴趣的人更深入地学习下去,而另一部分人则转向了用户需求分析和管理岗位的一些工作。您开始深入学习一些关于设计模式的问题,弄清楚为什么要采用这样的设计方式而不是另外一种,使用这样的分层机制它的实质究竟是什么。从技术广度上讲,您也了解了其它的一些开发技术如JAVA,C++,并对它们作了一些分析和比较,吸取了一部分精华,您对面向对象的设计思想及设计模式已经融会贯通。这时您开始发现光是内力深厚还不够,人的精力有限,内力也会消耗,于是乎您开始寻找一些神兵利器,这样才能在千军万马里面住来自如,您发现了CodeSmith这样的模版工具,利用它可以大批量产生重复的代码,您可以节省很多力气去做一些更有用的事情,还发现了一些其它高手留下来的财富,如NetTier等重量级的生成模版,由于您已经对它内部的机制和思想了如指掌,所以很快根据自己的口味作了一些必要的修改,使它能适应不同的项目,同时您也学习了一些如NHibernate,ibatis.net,Enterprise Library之类的轻功和一些雕虫小技,有些时候还是非常好用的。您也了解了诸如Castle,Spring.net等一些其它的开发框架,对2.0里面的强大技术,如反射,泛型,可空类型,匿名方法等有了深入的认识。
第五层:
您现在已经成为一代大侠,众人仰慕的对象,您开始行走江湖,锄强扶弱(比如在经典论坛里面免费指导武功;))
经过若干个项目的历练,您已经是身经百战,对其它门派的武功也是触类旁通,对于不同的项目该使用什么样的架构与技术了然于心,逐渐成长为一名架构师。您的主要精力已经不在具体的代码编写上而是着眼全局,从各个方面进行设计与评估,采用哪种语言和哪种平台已经不是最重要的事情,飞花摘叶皆可伤人。
第六层 :
您还不满足,闭关修炼若干年,精通算法设计和编译原理,成为一代宗师,还联合其它江湖大侠发明了一套全新的武功从此万人景仰称雄江湖。
C, D, C++, Delphi, C#, Python......就是这样诞生滴~~~~~;)
微软的.Net框架为我们提供一个强大的开发平台,在此之上我们节省了很多力气去做一些底层的东西,但是真正能更好地借助这一平台做出强壮的应用程序并不是一件容易的事。在此我将.Net开发者的水平划分为几个阶段,看看您目前是处于什么样的状态,以及下步该如何学习。
首先要说明的是在.Net下面是完全面向对象的,因此对面向对象编程模式的理解是深刻理解.Net开发平台的工作原理及设计原则的基础。
第一层:
在这一层里面您学到一些入门级的功夫,象罗汉拳之类的。
伴随着.net2.0的出现,微软在这里面提供很多方便的控件帮助广大的初学者进行快速开发,典型的代表有SqlDataSource,登陆控件等。借助这些可视化的控件您就可以在集成开发环境下几乎不用书写或者只书写很少的代码就可以完成简单的应用程序开发。但随之带来的坏处也显而易见,对于这些控件的内部工作机制您可能不甚了解,很多细节都被隐藏起来,因些可以说在此阶段只是微软件给我们做了一些容易上手的玩具,让您对.Net开发有一个直观的认识并有兴趣了了解一些更深入的东西。
第二层:
现在您学习了一些剑招拳式并勤加练习以求熟练地使用它们,在这里打下的基础成为您将来发展带来良好的开端。
通过学习语法,阅读MSDN,您已经掌握了一些常用类的使用方法,如ADO.Net里面的连接类,DataAdapter,DataReader, DataSet,Command对象等并能进行一般的CRUD数据访问,知道了页面的执行顺序及基于事件的网页处理过程,这时候您已经可以根据ASP里面的开发经验开发出一些较为简单的应用。但是从整体上来说,您的程序并不是容易维护的,一旦需求发生变化时您可能需要作较多的修改,多个相同功能的代码也不能进行重用,各个页面功能之间相对独立, 这样虽然功能上可以实现,但是付出的代价还是很大的。为了缩短开发时间您不得不整天地进行Ctrol+ C 和Ctrol + V的操作,于是乎您开始着手寻找一种更有效和方便的开发方法.
第三层:
随着武功的精进,您发现虽然自己的招式都练得非常熟练,但是一旦遇上内力深厚的高手还是打不过,于是你开始修练.Net的内功心法,还找了一些较为上层的武功进行修炼(例入PetShop, Duwamish等一批精典作品)。
现在您已经积累了一些项目经验,对面向对象的开发方式也较为熟悉,这时您开始研究其它高手写的程序,开始明白一些类的设计原则及分层设计的思想,因为类的设计本来就是人们根据现实世界抽象出来的东西,因些随着社会的发展,您的程序也不再是原始社会的那种自给自足式的生活方式,社会分工开始出现,一些类被设计出来只完成特定的功能,并且整个社会也分成一些不同的社会阶层,您把程序分为几层,每层完成不同的任务,比如有专门负责最终呈现结果的表现层即我们的网页层,有提供事务逻辑的商业逻辑层,有专门负责数据访问的层,也有提供一些特定功能的Utility。您发现这样的结构大大优化了您的程序设计,每一层只需关心跟自己相关的业务功能即可,通过服务接口的方式为其它层提供服务,相同的功能,比如CRUD操作被统一到一个地方实现,前台的开发变得非常简便,并且能在需求发生变化的时候只做很少的改动即可满足要求。
第四层:
您的功力已经到了一个新的阶段,根据个人天份不一样,有的人可能就停滞不前,但勤奋的你并不满足而是更加用功地修炼内力,在各大门派中您已经是一位不可小看的人物。
在这个时候发生了一些变化,对技术感兴趣的人更深入地学习下去,而另一部分人则转向了用户需求分析和管理岗位的一些工作。您开始深入学习一些关于设计模式的问题,弄清楚为什么要采用这样的设计方式而不是另外一种,使用这样的分层机制它的实质究竟是什么。从技术广度上讲,您也了解了其它的一些开发技术如JAVA,C++,并对它们作了一些分析和比较,吸取了一部分精华,您对面向对象的设计思想及设计模式已经融会贯通。这时您开始发现光是内力深厚还不够,人的精力有限,内力也会消耗,于是乎您开始寻找一些神兵利器,这样才能在千军万马里面住来自如,您发现了CodeSmith这样的模版工具,利用它可以大批量产生重复的代码,您可以节省很多力气去做一些更有用的事情,还发现了一些其它高手留下来的财富,如NetTier等重量级的生成模版,由于您已经对它内部的机制和思想了如指掌,所以很快根据自己的口味作了一些必要的修改,使它能适应不同的项目,同时您也学习了一些如NHibernate,ibatis.net,Enterprise Library之类的轻功和一些雕虫小技,有些时候还是非常好用的。您也了解了诸如Castle,Spring.net等一些其它的开发框架,对2.0里面的强大技术,如反射,泛型,可空类型,匿名方法等有了深入的认识。
第五层:
您现在已经成为一代大侠,众人仰慕的对象,您开始行走江湖,锄强扶弱(比如在经典论坛里面免费指导武功;))
经过若干个项目的历练,您已经是身经百战,对其它门派的武功也是触类旁通,对于不同的项目该使用什么样的架构与技术了然于心,逐渐成长为一名架构师。您的主要精力已经不在具体的代码编写上而是着眼全局,从各个方面进行设计与评估,采用哪种语言和哪种平台已经不是最重要的事情,飞花摘叶皆可伤人。
第六层 :
您还不满足,闭关修炼若干年,精通算法设计和编译原理,成为一代宗师,还联合其它江湖大侠发明了一套全新的武功从此万人景仰称雄江湖。
C, D, C++, Delphi, C#, Python......就是这样诞生滴~~~~~;)