2008 年中国.NET 技术应用趋势分析

阅读数:303 2008 年 1 月 31 日

话题:.NET微软语言 & 开发

目前全世界已经有数不胜数的项目使用了.NET 平台进行开发,中国自然也不例外。如果从 2001 年的诞生算起,微软.NET 平台已经走入了它的第 8 个年头,并且成长地愈发迅速。在不久之前,微软最有价值专家罗江华撰文对 2008 年中国.NET 技术应用趋势提出了自己的看法

到目前为止,微软已经推出了多个版本的.NET 框架(1.0,1.1,2.0,3.0,3.5)以及多个版本的 Visual Studio 开发平台(2003,2005,2008),框架的特性越来越多,开发人员也能够以能更快速、便捷地构建应用程序了。在罗江华看来,作为.NET 平台中开发框架的代表,也是最著名,应用程度最广的开发框架,ASP.NET 在 Web 开发领域可谓有着里程碑式的意义:

在.NET 平台上,ASP.NET 的出现给原有的软件开发模式带来了一场全新的技术革命,顿时,新的 B/S(Browser/Server)架构开发模式铺天盖地,也解脱了无数奋战在前线的 ASP 程序员。真可谓是一个跨时代的产品, 解决了很多以前 ASP 中没能解决的问题……ASP.NET 2.0 将常用的 Web 任务封装到应用程序服务和控件中,这些服务和控件可方便地在网站之间重用。利用这些基本生成块,较之以前的版本,现在实现许多方案所需的自定义代码要少得多。实践证明,它能将 Web 编程代码数量减少到 70% 或者更多。这真是一件激动人心的事情!

在对 2008 年进行展望之前,罗江华首先回顾和总结了.NET 框架所度过的前几年时光。

作为.NET 的主要竞争对手之一,Java 的起步比.NET 早了 6 年,不过目前无论从语言设计,框架设计,还是开发工具等方面,.NET 已经成长为一个完全能够和 Java 相抗衡的开发平台了。不过就目前.NET 的应用状况而言,国内总是要比国外慢半拍,在.NET 3.5 已经正式发布的今天,.NET 2.0 才成为国内开发人员最常用到的版本。而.NET 1.x 已经被 Vista 抛弃,也预示着.NET 1.x 已经完成了它的历史使命。虽然使用新的.NET 版本进行旧有项目的开发,在过渡上可能会出现一定麻烦,但是罗江华在文章中认为使用新版本进行开发是利大于弊的:

下面以.NET2.0 中的 ASP.NET 2.0 为例简单论述下。 ASP.NET 2.0 对于 ASP.NET 1.x 来说,包含了许多体系结构的升级,其设计也是为了提高开发人员的工作效率。它不但改进了代码模型来减少冲突,而且还扩展了编译过程以为编译和部署 Web 应用程序提供更广泛的选项。ASP.NET 框架的扩展性再次通过新的 HTTPModules 和 HTTPHandlers 显示,它们支持建立在 ASP.NET 中的许多新功能,包括个性化、母版页和管理站点。缓存已经改进以允许数据库依赖项和缓存后替代。从内部来看,ASP.NET 2.0 包含了对它以前版本的显著改进。这些新实现结合了许多开发人员驱动的实现,同时沿用了业界的最佳做法。ASP.NET 2.0 提供一种世界一流的 Web 开发平台,该平台是为处理复杂的企业 Web 应用程序开发而构建的。

不过罗江华也同时认为,.NET 目前还无法完全胜任所有企业软件的开发:

任何开发工具或平台都有它自己的优势和劣势…….NET 对于构建中小型企业应用程序有很大的优势,以快速开发而著称。这对于一些既想提高开发速度又想降低成本的企业来说,.NET 无疑是首选。对于一些需要达到高安全性、高伸缩性、跨平台等要求的企业来说会选择 JAVA。这就是目前市场企业应用的两大方向。

时间已经证明.NET 平台是一个优秀的开发平台,.NET 框架易用而不失强大,甚至只要拖拖控件就能够开发出一个“像模像样”的应用程序,这使的“程序员”这个职业的门槛越来越低。不过就目前的现象看来,此类程序员往往很快就会遇到职业瓶颈。由于.NET 封装地越来越智能,实现同样的功能与过去相比变得越来越简单,只有领会到框架的精髓,以及程序设计的本质,才能在职业道路上走得一帆风顺。在这一问题上,罗江华对开发人员,尤其是即将步入.NET 开发殿堂的初学者提出了自己的建议:

对于现在一些一上来就使用最新版本学习的朋友来说确实没有什么好处。毕竟微软.NET 版本确实太多了,并且每个版本之间的差距也是很大的,这也限制了很多中国程序员的发展,必须得不断的学习更新自己的技能。所以对于一些初级程序员或正要步入这个门槛的朋友们来说,在选择学习哪个本本上一定要根据自己的实际情况进行选择,当然这也是微软的初衷。

在.NET 的众多版本中,2007 年 IT 技术人员开发.NET 应用主要使用的是.NET 框架的 2.0 版本。经过了.NET 1.x 的成功,.NET 2.0 已经形成了一个非常成熟而高效的体系结构,也成为了.NET 3.0 和 3.5 等后继版本的基础,因此它无疑是企业新系统开发的首选。与.NET 2.0 相比,.NET 3.0 和 3.5 提供的更多是新的功能与特性,而并没有对.NET 2.0 所形成的体系结构有多少改变。. 例如 NET 3.0 中的 WPF、WCF、WF 提供的强大的企业级特性,让一些大型的企业,尤其是跨国企业的业务实现变得更加容易,成本更加低廉。不过在国内依旧有大约三分之一的企业还在使用.NET 1.1 进行开发,按照罗江华在文章中的说法,这主要是由于:

……之前系统是在.NET Framework1.1 下面构建的,完全重构对一个企业级软件来说很困难,首先成本控制是一个显而易见的因素。

.NET 1.x 的远去,.NET 3.5 的到来意味着技术的新旧交替,意味着新开发技术和开发平台将成为开发人员手中新的利器。.NET 2.0 所带来的范型、匿名方法等特性让原本在.NET 1.x 下优美的实现显得多余而丑陋;而.NET 3.5 中 LINQ 所带来的 Lamda 表达式语法,更可以在某些情况下将代码量缩减为原本的几分之一甚至更少。再加上 ASP.NET AJAX 与 Silverlight,以及已经出现社区预览版本的 ASP.NET MVC 框架与.NET 并行库,让摆在微软开发人员面前的大餐变得前所未有的丰盛。关于这一点,罗江华认为:

优胜劣汰是社会发展的规律,我们一起见证着微软的无数产品,以及第三方产品不断被淘汰,毫无疑问,作为微软产品跟随者的我们,需要不断的学习,一不小心就会被远远被抛弃在后面。或许在 N 年以后,当我们回过头来看看自己走过的路的时候,会发现其实在微软.NET 的道路上我们已经走了这么远。

现在.NET 平台下的开发选择余地更多,技术更新更快,它们所带来的问题之一就是对于技术的选择上。笔者热衷于新技术使用与体验,经常希望在尽早的时间内总结出一套关于新技术的开发实践,因此无论是 VS 2005 + .NET 2.0,还是 VS 2008 + .NET 3.5,都是在产品仍处于 Beta 阶段时就开始使用了。不过罗江华并不推荐这种做法:

前段时间我在博客园就看到有人再拿 Visual Studio 2008 Beta2 开发项目……说实话我很佩服他们的胆识,Visual Studio 2008 正式版本里发生了一些变化,比如 Linq 部分,里面很多函数名称在正式版里都改变了,其学习和使用成本可想而知。但就目前来看,大多数企业还是比较理性的,比如我现在所在的企业,整个集团拥有开发人员接近 500 人,而且全部是基于微软.NET 平台构建的应用系统。现在公司使用的有 ASP、. NET1.1、.NET2.0、.NET3.0,但仅仅是部分新项目在使用。我想理由很简单,企业在选择某个版本时不仅仅是关注这项技术有多新,开发效率有多高等问题,而更关注的是成本有多高,风险有多大的问题,毕竟第一个吃螃蟹的人不是那么好当的。

他建议,如果您的企业要上新的项目,则推荐使用.NET 2.0 平台,因为它已经有无数的成功案例,相对来说风险系数降低了,开发人员的技能也提高了,学习成本也降低了。

目前微软已经推出,或即将推出新一代的开发平台:Visual Studio 2008、Windows Server 2008 以及 SQL Server 2008。Windows Server 2008 是微软在 Windows Server 2003 之后研发多年才推出的服务器操作系统,其受关注程度之高不言自明。它的一些新特性,例如 Server Core、PowerShell 集成、虚拟化技术(Windows Server Virtualization)等,也早已成为各媒体新闻里的常客;而 SQL Server 2008 作为 SQL Server 2005 的后继者,其性能、扩展性、安全性、可管理性都变得更好。SQL Server 2005 的普及率正在以令人瞩目的速度增长,笔者有理由相信 SQL Server 2008 会比 SQL Server 2005 表现的更好。至于 Visual Studio 2008,作为 VS 系列的最新版本,

这也是目前所有开发人员相比其他两个产品最感兴趣的一个,到处都能看到分享.NET3.5,C#3.0 新特性的文章,因此就目前这一趋势来看,2008 年中国.NET 的应用状况,会有更多的企业将原有的.NET1.x 版本升级到.NET2.0 或.NET3.5。因为.NET2.0 会降低成本,开发人员的技术能力也逐渐成熟,会有更多的企业在新项目中使用.NET2.0 甚至.NET3.5。就目前的情况分析,如果企业项目中有对 WPF,WCF, WF 等技术的应用,那么企业考虑直接使用的是.NET3.5 而不是.NET3.0,因为.NET3.0 必须依托于 Visual Studio 2005 来实现,这样就必须安装一些微软的扩展包以支持.NET3.0,而 Visual Studio 2008 IDE 中已经集成了.NET2.0, .NET3.0, .NET3.5 多个版本,企业可以任意选用需要的版本进行开发,此时不需要安装任何东西。因此,2008 年.NET1.x 和.NET2.0 的使用幅度会大大降低,.NET2.0/.NET3.5 的使用幅度会大大提高。

罗江华在文章的最后作了总结,可以看出,他对于微软的.NET 平台充满了信心:

诚然,随着微软.NET 平台功能的不断完善,开发人员所专注的方向也会不断的改变。让每个开发人员轻松完成自己的任务是微软一直在不懈努力的目标,让他们仅仅专注或更多的专注于业务而不是某个技术细节。就目前微软.NET 战略发展的趋势来看,.NET 真正的魅力也许离我们越来越近了,无论何时,无论什么地方,无论使用什么设备都能轻松实现数据用户的需求。让我们拭目以待。