dotnet,dotNet平台主要开发技术总结

作者:TinyHU(胡海明),2011/09/22 晚
自微软2000年发布.Net战略以来有10年多,世界上有数百万的程序员在.Net Framework上构建了自己的应用产品。从2002年发布.Net1.0开始,先后发布了.Net1.0、1.1、2.0、3.5、4.0等重要版本。与之同时,微软也同时推出了集成IDE开发环境Visual Studio,目前最新版本是Visual Studio 2010。同时微软在VS2005引入了软件生命周期过程管理工具Visual Studio Team System(VSTS),扩展了Visual Studio的功能,提供了单元测试及代码分析工具,为项目经理、架构师、测试人员等角色都提供了相应的管理工具,使整个团队的软件开发的过程能够清晰可见。
结合本人.net的一些认识,下面简单总结一下在.Net平台使用的一些核心技术及组件。

1. .Net框架

通过在Windows内核操作系统之上创建了一个虚拟框架,使得开发者不需要考虑程序运行时CPU或其他硬件特性,封装了内核API以及一些核心类库及公用组件。这个环境又称为公用语言运行时(CLR)。我们编写.Net的程序需要在.Net framework之上来运行,又称为托管应用程序。CLR还实现了安全、异常管理,以及在C++时代令人头疼的内存管理问题。

2. 数据访问

  • ADO.Net:提供了统一的数据访问模型,实现对数据的CRUD操作。包括了对Access访问的OLEDB Provider、开放数据连接ODBC的ODBC .Net Data Provider、SQL SERVER访问的SQLServer Provider以及Oracle访问的Oracle Provider等。 微软也提供了开源的Enterprice Library封装了数据访问类,简化了很多常见的数据访问任务,如读取显示数据,增删除改查,以及事务管理,并且对不同的数据源使用工厂模型提供了统一的数据库编程模型。
  • ADO.Net Data Services Framework:提供了基于http的RESTful风格的Web Service,用来访问实体数据模型。使用URL统一资源路径来访问数据,可提供纯Atom格式或JSON格式的数据返回。
  • ADO.Net Entity Framework:微软的O/RM解决方案。早期有开源的NHibernate框架,微软迟迟未加入,直到.Net Framework 3.5 SP1,目前版本Entity Framework 4.1。Entity Framework 利用了抽象化数据结构的方式,将每个数据库对象都转换成应用程序对象(entity),而数据字段都转换为属性(property),关系则转换为结合属性(association),让数据库的 E/R 模型完全的转成对象模型。EF将关系表的物理结构转化为精确反映通用业务对象的概念模型,让开发人员更容易理解业务并集中以对象的模型操作业务数据。
  • ADO.Net Sync Framework:ADO.Net提供的同步服务,使用此框架我们可以使用一致的方式在应用、设备、服务之间同步数据。前提是数据库双方都要支持Ado.net,支持间歇性连接。
  • LINQ: .Net 3.0引入在C#中以查询数据库TSQL相同的方式操作内存数据。包括:LINQ TO Objects、LINQ to XML、LINQ to SQL、LINQ to DataSet、LINQ to Entities以及LINQ to Data Servies。其中微软放弃了LINQ to SQL,已在.Net 4.0中被ADO.Net Entity Framework取代。
  • SQL Server:重量级关系数据库引擎,自SQL SERVER 2005以来,加入了更多如数据库镜像等高级特性,性能及稳定性有了很大的改善。目前版本SQL SERVER 2008 R2。SQL SERVER不仅提供了关系数据库引擎,SQL 2005之后还集成提供了BI(SSAS)等商业智能组件。

3..Net服务

  • WCF:.Net3.0引入的重要组件,WCF统一了数据通讯模型,使用一种可管理的方式来进行分布式通讯,并提供了良好的互操作性、安全机制。WCF整合了Enterprise Services、System.Messaging、Microsoft .NET Remoting、ASMX和Web Services Extensions (WSE)等通讯模型,使用单一的模型来处理不同类型的应用程序行为,显著降低应用程序开发的复杂性。 在.Net2008正式发布之后,本人带领团队基于.Net 3.5+WCF构建了一个大型的分布式应用系统,其良好的互操作性以及不同通讯协议统一的编程模型,大大降低了数据通讯开发的复杂度,提高了团队开发效率。并且提供了事务、日志监控机制,以及良好的安全特性。
  • Asp.net Web Service:提供了一种简单的方式,发布Web服务来解决分布式计算与数据通讯需求,仅支持http协议。

4.工作流

  • WF: .Net3.0引入的重要组件,它并不是一个像SQL Server这样可以直接用来执行业务流程的产品,而是一个用于开发工作流的基础组件。我们可以用它来开发顺序或基于状态机的工作流。
  • Workflow Service:基于WCF服务提供的工作流服务,是将WCF进行扩展,整合了WCF及WF,将工作流以服务的形式提供出来并可被调用。
  • MOSS:即SharePoint Services。MOSS是一个内容管理及协作平台,并提供基于WF引擎的工作流服务。可以使用Sharepoint Designer或VS中的Windows workflow designer来创建工作流,也可以直接用VisualStudio手工基于WF开发工作流跑在MOSS服务上。
  • BizTalk Server: MS的重量级企业服务器产品,BizTalk主要面向业务流程,来设计和规划低耦合的业务流程。功能包括业务流程自动化,业务流程管理,企业应用集成以及企业之间的集成。通过BizTalk创建业务流程,可以将各种分散的应用程序融为一体利用图形用户界面来创建和修改业务流程。

5. B/S应用

  • Asp.net:通过.Net创建浏览器应用,提供标准用户界面及窗体设计,通过IIS进行托管。
  • AJax: 使用Ajax解决asp.net与客户端之间的异步请求,提升应用程序的响应,改善用户体验,避免过多的Postback。
  • Jquery: jQuery是一套优秀的Javascript脚本库,对主流浏览器提供了良好的兼容性。是一个轻量级的js库(压缩后只有21k) 但不是框架。jQuery使用户能更方便地处理HTML documents、events、实现丰富的UI及动画效果,能方便地使用AJAX技术进行交互。安装VS2008 SP1后以及KB958502补丁,就可以在集成开发环境中使用Jquery并且有智能感知特性。
  • Asp.net MVC: 通过使用MVC模式(模式-视图-控制器)创建ASP.NET应用程序,支持测试驱动开发。使用MVC可以将用户显示界面(视图)从业务逻辑(控制器)中分离出来,提高了代码的重用性与可读性,将数据(模型)从对其操作的逻辑(控制器)分离出来可以设计一个与后台数据无关的系统。在iPhone应用程序开发,大量应用了MVC模式。
  • Silverlight: WPF的一个子集,为跨浏览器及跨操作系统平台而设计。是微软应对RIA策略的举措(直接对手是Flash),以浏览器的外挂组件方式(Silverlight4插件大约5~6M),在Web程序中能提供良好的用户交互与体验,以及流媒体应用等前端解决方案。Silverlight封装了.Net的一些基础组件(包括WCF/LINQ等一些高级特性),直接以.net framework编程模型来开发应用程序。Silverlight使用XMAL标记来描述UI界面,并且为设计人员提供了Expression Blend工具,实现了开发与设计良好的职责分工。但是在HTML5标准发布后,各大厂商包括微软都在积极拥抱HTML5,特别是微软PDC2010大会上发布“微软的战略已经改变”,先后出现了各种担优的声音。微软又先后在2010 Silverlight Firestarter发布会上发布了Silverlight 5特性,以及在2011 Build大会前发布了Silverlight 5 RC版本,证明微软将继续支持并发展Silverlight浏览器插件技术。此外在Windows Phone 7中也是应用Silverlight技术来开发WP7应用。个人看来,HTML5毕竟是大趋势,各大厂商以及W3C标准,跨平台的互联网应用HTML5是最佳选择, 但Siverlight仍会在企业内部(Intranet)应用中发挥重要价值。我公司使用的一套内部应用系统,就是基于Silverlight技术创建。在HTML5还有很长的路要走,在其成熟前,Silverlight提供了快速的.net原生开发,以及像Winform一样良好的用户操作与界面响应能力。
  • Web服务器-IIS: 通过IIS提供Internet上的web应用托管,包括基于http请求的www服务,以及ftp服务。另外使用SSL能提供http通讯的数据加密。IIS7.0微软重新设计,提供了重大功能及性能改进。

6. C/S应用

最新评论

发表评论