冷月TinyHU的Blog

 http://tinyhu.cnblogs.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

自微软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之后还集成SSIS集成服务,SSRS报表服务,提供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) 但不是框架。VS2008 SP1以及VS2010创建Web应用程序时,自动给你的项目添加Scripts/jquery_1.x.x.js脚本。 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应用

  • Windows Form: Win32时代最经典的标准用户界面。比较适合开发一些交互性很强,界面复杂,实例程序以及一些本地化应用。对于企业应用缺点是传统的C/S程序安装部署比较麻烦,可以使用Click Once技术及自动升级安装部署的方式解决。
  • WPF: 如果要展现更高级漂亮的用户界面、展现灵活多变的动画效果以及基于流媒体、向量图形的应用,使用WPF是最佳选择。WPF是.Net3.0框架加入的重要组件,使用标准的XML语言描述界面布局(被称为XAML语言),支持数据绑定及事件定义。WPF可以直接部署在安装有.Net framework的桌面上(C/S),也可以运行在支持XBAP的浏览器内(B/S)。 WPF使得在开发程序时,通过分离UI与逻辑层,更易分工(如让美工人员进行专业的UI界面设计)。 另外专为UI设计人员提供了Expression Blend工具。

7. Mobile应用

  • .Net Compact Framework: 在WindowsMobile上的创建的一个.Net framework子集,用来设计移动应用程序。不过在有限的CPU与内存资源下,系统运行效率并不是太高。此外微软已彻底放弃WindowsMobile,相信.NET Compact Framework3.7是最后一个版本。
  • WP7: 面对移动失利的市场,WindowsMobile迟迟未见改进,直到去年微软正式发布了WindowsPhone7,但销量不佳,今年微软也与Nokia宣布深度合作。微软本周在台湾地区先行发布了WindowsPhone 7.5芒果的推送更新,但估计在Nokia大量发布新手机之前市场占有率很难有起色。其实个人更看好三星以及HTC的硬件及其创新能力,微软早就应与HTC等深度合作。 HTC曾是微软早期WindowsMobile的最有力的合作伙伴,记得在04、05年多普达手机占居了高端用户群,本人也一直使用过多款HTC手机。  如今Android与iPhone已占领绝大多数智能机市场,WP7的压力确实不小。 微软发布了免费的Visual Studio Express版本以及Windows Phone 7 SDK 来开发WP7应用。在WP7中可以使用Silverlight及XNA 2套框架分别开发WP7应用系统及游戏程序。WP7的XNA框架可以与微软的XBOX游戏兼容。 WP7中使用标准的Metro界面风格来创建应用。(说实话个人并不喜欢,色块很大并不友好,Title字体太大并且切割在不同的屏幕中)

8. VSTO

Visual Studio Tools for Office,也是VBA的替代品。利用VisualStudio创建基于 Microsoft Office System 的应用,扩展增强Office的文件共享、协作、权限管理、数字分析、图表、电子邮件、日历等强大功能。

9. WinRT/Metro

在前几天微软2011 Build大会上,微软发布了Windows8开发人员预览版。微软在应对iPad/iPhone居大成功压力下做出了重大举动,改变从Windows NT时代以来的仅以Win32 API为内核的框架,引入全部的WinRT API。WinRT将是Windows 8以Metro UI风格下核心API组件,它不是另一个抽象层,就像 Win32 API 一样,直接驻留在OS内核之上。WinRT API 从设计之初就是面向对象的,提供一致性、易用性、以及高性能特性。WinRT API 中支持C++、C#及VB,甚至JavaScript都可以直接调用WinRT底层API。虽然在Windows8中传统的UI仍可使用,但无疑Metro界面将是微软未来Windows8的主流。

 

作者:TinyHU(胡海明),2011/09/22 晚

简单总结,欢迎进一步交流。

posted on 2011-09-22 22:21  冷月TinyHU  阅读(4600)  评论(24编辑  收藏  举报