1. 诞生及运行机制,近几年.NET市场格局变化
VS.NET是什么?VS.NET是微软提供给开发者的一套集成开发环境(IDE),其中包括了C#、J#、C++、VB等开发语言以及
对.NET Framework的支持。
在.NET平台上,ASP.NET的出现给原有的软件开发模式带来了一场全新的技术革命,顿时,新的B/S(Browser/Server)架构开发模式铺天盖地,也解脱了无数奋战在前线的ASP程序员。真可谓是一个跨时代的产品, 解决了很多以前ASP中没能解决的问题。而随着时间的推移,也就在短短的这几年时间里,微软又陆续推出了更多的.NET版本:.NET2.0,.NET3.0,.NET3.5。同时也相继出现了Visual Studio 2005,Visual Studio 2008版本,不言则明,微软为开发人员提供了更多的新特性,以能更快速、便捷地构建应用程序。
追溯到2005年底,Microsoft .NET Framework2.0问世, 从而使ASP.NET 2.0摆脱了很多以前不够完善的状况,并已经发展成为了一种完全成熟的产品。ASP.NET 2.0 将常用的 Web 任务封装到应用程序服务和控件中,这些服务和控件可方便地在网站之间重用。利用这些基本生成块,较之以前的版本,现在实现许多方案所需的自定义代码要少得多。实践证明,它能将Web编程代码数量减少到70%或者更多。这真是一件激动人心的事情!
回顾非常值得纪念的2007年, 11月20号微软对内正式发布了Visual Studio 2008。新的版本在2.0的基础上有了更多的变化,比如在新建项目时可以方便地指定要使用的.NET框架版本,还可以使用DLINQ/LINQ以.NET的对象模型方式访问SQL数据库或Array、List<>等集合对象。在.NET平台上,新东西不断出现,也促使开发人员不断去学习,以满足自己快速适应时代的变化,这也是程序员的职业特点。
2. 2007年.NET技术发展回顾
2007年转眼就要过去了,在即将到来的新的一年里,让我们一起回顾一下在这即将过去的时光中,微软.NET在企业应用中发生了哪些重要变迁。
(1) 技术特性
通常来讲,新的技术肯定要比旧的技术好,因为新技术都是在以前旧技术的基础上进行的改进,吸取优点,摒弃缺点。众所周知,.NET比Java诞生的时间晚了六年,而在某些方面,.NET确实已经走在了前头。
Java并不是这六年停滞不前,事实上,Java一直在进步中,它也一直有许多缝缝补补、修修改改的地方。例如,XML是在这六年之间出现的技术,所以.NET对于XML的整合可以说是天衣无缝,但Java后来才把XML整合进来,且整合的程度比不上.NET。另外,.NET无论是在语言设计、框架设计等各方面都比Java来得漂亮,是真正的后起之秀,在Studio环境下编程简直是行云流水。
话题转到2007年,就中国目前的.NET应用状况而言(下面会具体分析),.NET2.0才是真正步入到中国程序员手中的版本。当然这也造就了很多悲欢离合的感人故事,.NET2.0的成熟标志着.NET1.x步入成年,.NET3.0的发布也让.NET1.x行将就木。姑且不讨论.NET3.0是否为一个过渡版本。不过事实已经证明.NET1.x在Vista上已经被正式宣告死亡了。官方给出的理由是,由于.NET1.x不满足Vista的底层安全策略,以至于无法安装安全补丁。虽然在Vista上安装.NET1.x Framework没有被禁止,但是它给你带来的麻烦我想用一两句话是不容易说清楚的。
新的就比旧的好吗?下面以.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 应用程序开发而构建的。
(2)能够完全胜任企业软件的开发么?
许多人心中都有这个问题,其实答案不言自明,肯定是不能完全胜任。任何开发工具或平台都有它自己的优势和劣势。看看现在一些企业应用场景就知道了,电信和银行的很多重要系统仍然是构建在J2EE平台上的。这也从另一个方面说明了.NET的市场份额和方向,JAVA的主要服务客户对象为大型企业,.NET主要服务对象为中小企业。.NET对于构建中小型企业应用程序有很大的优势,以快速开发而著称。这对于一些既想提高开发速度又想降低成本的企业来说,.NET无疑是首选。对于一些需要达到高安全性、高伸缩性、跨平台等要求的企业来说会选择JAVA。这就是目前市场企业应用的两大方向。
(3) 限制与局限
可以这么说.NET是越来越多中国人实现程序员梦想的一个选择,它们或许通过看两节视频教学课程,或许买本入门教程看几天便能轻松步入程序员的门槛,热别是随着微软.NET IDE的越来越智能化,仅仅需要拖拽几个控件便可以实现一些简单的数据操作。确实让无数朋友兴奋不已,原来些做程序员是那么的简单。但是事实上,.NET可能会成为这些朋友以后人生发展的绊脚石。.NET确实简单,易学,然而由于没有掌握到程序设计架构的真正精髓,很难成为业内技术精英。现在的.NET版本封装得越来越智能,掩盖了很多复杂的实现。对于现在一些一上来就使用最新版本学习的朋友来说确实没有什么好处。毕竟微软.NET版本确实太多了,并且每个版本之间的差距也是很大的,这也限制了很多中国程序员的发展,必须得不断的学习更新自己的技能。所以对于一些初级程序员或正要步入这个门槛的朋友们来说,在选择学习哪个本本上一定要根据自己的实际情况进行选择,当然这也是微软的初衷。
(4).NET技术应用状况
根据对.NET版本使用情况的调查发现,2007年IT技术人员开发.NET应用的Framework版本主要是.NET Framework 2.0,占到67.4%;其次是.NET Framework 1.1,占33.3%;.NET Framework 3.0据第三位,占16.7%。其他版本比例均在7%以下。
原因很简单,之所以.NET Framework 2.0在目前已经处于领先地位,是因为.NET Framework 2.0已经发展为了一个成熟的产品。由于其较.NET Framework1.1下显著的优越特性,使其快速成为企业新系统首选的开发框架。从调查来看,目前仍然停留在.NET Framework1.1开发下面的企业,主要是由于之前系统是在.NET Framework1.1下面构建的,完全重构对一个企业级软件来说很困难,首先成本控制是一个显而易见的因素。对于目前使用.NET Framework3.0的企业,主要是运用微软推出的3个W(WPF、WCF、WF),对于一些大型的企业,特别是跨国企业,子公司分布全球各地的企业来说,实现一套基于SOA的全球系统架构是无可厚非的。恰巧WCF就是这样一个在.NET平台下轻松实现SOA架构的框架。在移动开发框架方面,可以看出3.0的应用情况占的比例最大,其次是1.0,再次是2.0和3.5版本。出现这个情况我想原因在于主要是在移动框架方面由于版本从1.0到2.0在到3.0和3.5的不稳定性因素导致的,相对来说3.0是一个稳定成熟的版本,因此开发人员使用得最多。
(5).NET技术带动的技术的发展,对编程语言、开发工具等的影响。
从上面的调查数据可以看出,2007年.NET开发框架版本的使用情况中.NET Framework 2.0占到67.4%,.NET Framework 1.1仅仅占到33.3%,可以得出这样的结论是.NET Framework 1.1逐渐在离我们远去了。当然和它一起离开的还有C# 1.0,VB7等。想想它们曾经是那么强大,它们的特性,如委托(Delegate),集合(List,HashTable等),类型(Class,Interface)曾经是那么的让人着迷。但是面对新的C#2.0它们又是那么乏善可陈。在.NET2.0中,范型、匿名方法、匿名类居然可以让代码变得那么优雅,那么精悍。更不要提LINQ中的VAR类型和新的查询语句了。类似的例子还有很多,比如原来的DataSet和LINQ中的DataContext。原来的DataGrid和新的GridView,ListView。原来的GDI+和新的WPF Xaml。一些陈旧的概念消失了,如DataAdapter,更加新鲜的东西出现了,如DataSource。还有更多全新的ASP.Net AJAX, Silverlight等等。继任者给我们带来了更丰富的界面,更强大的工具。优胜劣汰是社会发展的规律,我们一起见证着微软的无数产品,以及第三方产品不断被淘汰,毫无疑问,作为微软产品跟随者的我们,需要不断的学习,一不小心就会被远远被抛弃在后面。或许在N年以后,当我们回过头来看看自己走过的路的时候,会发现其实在微软.NET的道路上我们已经走了这么远。
(6)抛开局限,如何合理协调利用.NET技术
就当前微软.NET版本如此众多的局面,一些企业在如何合理选择开发版本时可能会比较迷茫。前段时间我在博客园就看到有人再拿Visual Studio 2008 Beta2开发项目,先不说其项目有多大,具体有什么应用价值。说实话我很佩服他们的胆识, Visual Studio 2008正式版本里发生了一些变化,比如Linq部分,里面很多函数名称在正式版里都改变了,其学习和使用成本可想而知。但就目前来看,大多数企业还是比较理性的,比如我现在所在的企业,整个集团拥有开发人员接近500人,而且全部是基于微软.NET平台构建的应用系统。现在公司使用的有ASP、.NET1.1、.NET2.0、.NET3.0,但仅仅是部分新项目在使用。我想理由很简单,企业在选择某个版本时不仅仅是关注这项技术有多新,开发效率有多高等问题,而更关注的是成本有多高,风险有多大的问题,毕竟第一个吃螃蟹的人不是那么好当的。
因此笔者在这里建议,如果您的企业要上新的项目,推荐使用.NET2.0平台,因为已经有无数的成功案例可以证明,相对来说风险系数降低了,开发人员的技能也提高了,学习成本也降低了。
3.未来之路
值得激动和骄傲的2008年即将到来,对广大开发人员来说,不仅可以享受到奥运会的快乐,同时也能收到微软送的大礼:微软公司推出的2008奥运版----Visual Studio 2008,Windows Server 2008, SQL Server 2008)。
对于微软的Windows Server,其上一个服务器版本是Windows Server 2003,尽管期间微软发布过Windows Server 2003 R2,但是毕竟不是一个独立的新版本。因此,此次即将发布的Windows Server 2008备受微软重视,与Windows Server 2008相关的重大特性也被媒体反复渲染。有很多特性已经为大多数IT专家们所熟悉,比如有关不带图形界面的安装版本Server Core、PowerShell以及虚拟化技术Windows Server Virtualization(其开发代码为Viridian,简称为WSV)等等;SQL Server 2008比以前的版本更安全、更具延展性和更高的管理能力,同时增加了很多新的功能。Visual Studio 2008英文版本已经正式发布了,在微软站点可以下载。这也是目前所有开发人员相比其他两个产品最感兴趣的一个,到处都能看到分享.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真正的魅力也许离我们越来越近了,无论何时,无论什么地方,无论使用什么设备都能轻松实现数据用户的需求。让我们拭目以待。