• 推荐
  • 评论
  • 收藏

我看微软.NET各子技术领域之应用前景

2022-11-04    2545次浏览
我不知道业界是否已有基于此技术开发的实际项目,有这方面项目经验的朋友,不妨谈谈自己的看法。

         2ASP.NET Dynamic Data。这是一个看上去很酷的技术。当使用它来创建网站时,Visual Studio 2010会帮你创建一个DynamicData文件夹,里面放了数十个模板文件,构建了一个网站的“脚手架”,几乎不用编码,就可以生成一个全功能的“CRUD”数据驱动网站。

         它的设计思想很好:底层使用ADO.NET实体框架或LINQ  to SQL构造数据模型,通过提取数据模型中的元数据,动态选择合适的模板生成网页。这就避免了真实项目中不得不为每个数据存取任务设计不同网页的负担,而且这一技术提供了很多的方式去允许你定制网站。

         我当初刚一接触时,也很兴奋,这是个好东西啊!但后来我改变了看法,这一技术的问题在于它过于“自动化”了,而且需要包容数十个文件,让其与现有的ASP.NET网站集成相当不便,配置起来麻烦。

         我个人认为,在现有.NET Web开发技术应用现状之下,任何一个与现有的ASP.NET网站(以Web Form+AJAX为主体技术)集成麻烦的技术,都很难有“美好”的前途。很不幸,ASP.NET Dynamic Data是这样的例子,ASP.NET MVC也有同样的问题,但没有ASP.NET Dynamic Data严重,而且ASP.NET MVC架构清晰,还是比较易于维护。

         3Silverlight。这实际上是另一种Web应用架构的代表技术,其立足点在于充分利用客户端的计算资源,可以大大地降低对服务端的依赖,而且易于构造良好的用户体验,我个人认为其发展大有可观。是一个需要重点关注的技术。

4 插件技术

         .NET 4.0引入了一个“Managed Extensibility FrameworkMEF”,我在此郑重推荐!

         MEF通过简单地给代码附加“[Import]”和“[Export]”标记,我们就可以清晰地表明组件之间的“服务消费”与“服务提供”关系,MEF在底层使用反射动态地完成组件识别、装配工作。从而使得开发基于插件架构的应用系统变得简单。够酷的技术!

         另外,请忘记.NET 3.5所引入的“MAFManaged Add-in Framework ”吧,MAF引入了一个复杂的宿主与插件间的通讯管道架构,仅仅是创建一个最简单的SayHello宿主和插件,你也必须创建多达8个项目!

         最要命的是MAF设计者“想”得过多,设计了复杂的接口和类继承体系,而且选择让插件运行于与宿主不同的应用程序域中,这就使得插件与宿主之间的通讯变得复杂。个人认为,这些实在不是一个好的设计决策。

         我估计,MAF会“无疾而终”

5 WCF.NET Remoting

         其实这是一个不需要讨论的问题,有了WCF,我还要Remoting干什么?   因为前者包容后者的所有功能,而且还提供了更多。

         WCF的问题是微软企图用一个框架解决所有的问题,因此其架构非常复杂,任何一名想探究其底层运行机理的人,都必须要有足够的心理准备和耐心。

         我们可以看到WCF向其它领域的渗透,比如前面的WCF Data Service,还有Workflow Service(将工作流发布为WCF服务),看来微软是将“宝”押在WCF上了,凡是带有“服务”字样的,微软都有把它改造为WCF服务的冲动。

         因此,WCF是不得不学习和掌握的技术。

6 多线程与并行计算

         关于并行计算,我已经写过不少文章了,废话少说,在多核时代,我认为.NET并行计算中的任务并行库和并行LINQ,会得到较多的应用。

7 工作流

         这个技术,我看是微软自己把事弄砸了。工作流从.NET 3.0开始引入,到.NET 3.5已经比较完善了,也有了一些实际的应用。但.NET 4.0就来了个另起炉灶,WF4WF3.5相比,简直是另一个产品,而且WF4BETA1BETA2相比,居然在对象模型上也有大的改动,RC版本中的WF4我还没看,不知又有什么变动,应该不会再变了吧?!

         对于这样一个“变色龙”,谁用谁胆大。

8 函数式编程语言F#

         函数式编程很有趣,VS 2010F#成为.NET正式成员。F#中的许多特性,比如不可更改(immutable)的数据结构,声明性编程风格,强大的类型推断,所有东西都是表达式等,都让习惯了面向对象风格的程序员感到新奇。

         我个人觉得,F#如果用于开发多线程并行计算程序,会有较高的开发效率,而函数式编程的特点,也会使它在科学计算中有较好的表现。但用于开发CRUD之类的MIS系统,至少目前还是免谈吧。

9 云计算

         Visual Studio 2010集成了云计算开发的项目模板。

         云计算是一个说不完的话题。微软在这方面投入巨大。它精心打造了Azure这个云计算平台。了解Azure的最佳方法是看“DAVID CHAPPELL”的文章《INTRODUCING WINDOWS AZURE》,这篇文章可以在微软网站上找到。

         虽然我个人认可云计算是一个大的发展方向,但对于中国,这个技术是一道远方的亮丽风景,仅供观赏。因为国内还没有一个成熟的云计算平台,而微软的Azure目前又没有开放中国大陆的云计算购买服务,加上中国又有特殊的国情,所以一切都只是空中楼阁。

         云计算真正应用于国内,诸位请继续等待吧。

 

原文地址:https://www.cnblogs.com/Leo_wl/p/1971830.html