我眼中的.Net平台

.Net开发平台的历史已经有好多年了,从1.0,1.1,2.0,3.0/3.5到明年的4.0,她已经从一个初步的设想及尝试转变成了一个成熟的开发框架。它的每次发布都会带给我们一些惊喜,从1.0/1.1的Ado.net/Asp.net,2.0的泛型/Asp.net2.0,3.0/3.5的WCF/WPF/LINQ/Lamda/Asp.net Ajax,到4.0的WF/Asp.Net MVC/Dublin/Velocity等等,使得我们在此之上构建程序变得越来越容易。就我个人的角度来考虑,如果想基于.Net开发企业级应用那以下.Net技术是一定要仔细学习的:

一、Ado.Net

虽然.Net提供的数据访问层技术有很多,但Ado.Net依然是所有其他数据访问技术的基础,如果想完全控制底层的数据访问,我们就必须熟悉IDbConnection/IDbCommand/IDataReader/IDbTransaction等等,当然随着后续的一些技术的出现,Ado.Net的使用方式也在作着一些细微的改变,如以前用得很多的DataSet,随着LINQ的出现在很多场景下已经由实体集合所替代。

二、Asp.Net/Asp.Net Ajax/Asp.Net MVC

从.Net伊始,Asp.Net就一直是吸引我的最大亮点之一,她巧妙的回传机制及事件处理模型大大拉近了传统Winform和网页编程之间的距离,之后出现的Asp.Net Ajax更是锦上添花,大大提升了用户体验。未来的版本中会包含的Asp.Net MVC更是提供了网页编程的另一个极佳选择。就我个人理解,Asp.Net和Asp.Net MVC并不是互相排斥的,而是相辅相成的。比方说,我们想开发一个在线购物网店,对于网店门户来讲Asp.Net MVC可能更合适些,因为她可以完全控制页面生成的HTML标记,更适合丰富内容的展示,并且更易作全方位的测试,但对于网店的后台管理程序来讲,可能传统的Asp.Net更适合一些,因为对于生成的HTML并没有太高的要求,并且以相对简单的维护页面为主。

三、WCF/WF

WCF我一直认为是.Net平台最成功的技术之一,有了她之后,分布式开发一下子就变得异常简单和灵活,而自从WCF和WF小组合并之后,WF也慢慢变的成熟起来,尤其到了.Net 4.0,WF更是发生了彻底的改变,可以预见她终将转变成了一个通用的可视化过程编程语言,就我理解WCF/WF是未来.Net平台上面向服务编程的最大的两块基石,而且这两块基石并不是相互独立的,而是互补的,如我们可以用WCF实现一些简单的无状态的服务,而用WF实现一些有状态、长期运行的服务或者进行服务的编排,但不管怎样,对于服务的消费者来说,他们最终所看到的都是一个个标准WCF服务。