作为一名项目经理,你肯定听到过.NET,但是你也许还没有机会工作于一个.NET项目之中,因为这项技术是相对较新的技术。我发现很多的公司现在还没有向.NET进行移植,.NET架构还是被很多人看成是那些早期采用者的平台,它在业界之中还需要更多的时间。但是,随着经济状况的改善和IT预算的增长,我确信.NET项目将会不断增加。
什么是.NET?
.NET在本质上讲是用来连接你的信息,人员,系统和设备的一套软件技术,因此它是建构,部署和运行Windows应用软件和服务的一个环境。. NET开发之中的基本理念就是通用对象,可以在任何地方,任何时间,从任意的设备进行访问的对象。而且,.NET技术本身是基于xml Web服务的,XML Web服务使用例如SOAP和XML数据的标准协议来连接应用软件和Web服务。
你可以用.NET建构什么类型的项目和解决方案呢?对于开始者,你可以使用asp.net建构Web站点和用VB和Visual C++编写的继续性Windows应用软件。所有的东西最终都将归结于.NET架构,这是一个完整的Windows部件,支持对下一代应用软件和XML Web服务的建构和运行。同时,.NET使得项目团队可以建构基于Web的服务平台,它的功能性与传统的Web站点或是基于Web的应用软件相比将会与商业应用软件更加普遍地相互联系。.NET通过对XML Web服务的使用实现了一种高等级的软件整合性:小型,离散的应用软件之间的相互连接,以及与大型的应用软件在互联网上的连接。而.NET真正带给我们的是在技术整合中难以捉摸却又十分重要的一点:速度。
消除了.NET在技术方面的障碍,我相信各个公司组织应该能够看到他们的IT投资所得到的良好的回报,而且这一点应该在商业案例或是项目经理所制定的ROI文件之中予以着重强调。但是,让我们面对这一点,不是所有的继续性应用软件都需要被导入至.NET。我会见过一些公司的执行主管,他们在目前阶段对于.NET有着一种喜忧参半的看法。他们种的一些人对.NET进行抨击是出于下面的原因:(1)它太新了,(2)一门新的语言就需要有新的技能,(3)它需要一个全新的实时和开发环境等等。在大型企业中的应用软件项目之中工作的高级开发人员Carl Massien指出,“.NET针对的是新型的开发工作和那些值得花费时间和费用来重新进行分析的应用软件,我认为它不适合于商业案例。”类似的另外一个意见是。“作为一个开发人员,真正要学习的就是.NET架构,不论你走的是哪一条路。”然而,从更加积极的角度来看,很多公司已经开始投入资金培训他们的开发人员并开始致力于.NET项目。
.NET项目工作方法
我认为任何一个项目经理在.NET项目之中碰到的最大的挑战将会是人才的吸引。.NET项目的情况不同以往,因此你不能再像平常那样行事。作为一个项目经理,你需要找到那些懂得如何建构.NET解决方案的IT从业人员。这很可能意味着你要找一些高级顾问,这方面的花费是不会便宜的,因此你需要为这样的资源做出资金预算。你需要确保这些人的工作任务之一就是去教育指导你的人员。同时,让高级治理层参与工作也是同等重要的。为了实现这一点,我推荐你尝试一些引导性.NET项目,确保你挑选的项目不会过小从而使得项目的成功看起来无关紧要。但是,你也不要挑选那些过大的项目。
.NET的组成
如图A所示,.NET架构建构于三个核心层之上来向开发人员和用户提供Web服务的支持的。.NET架构还使得应用软件易于维护,减少了升级时间,为那些需要不断升级他们的Web站点的公司提供了一个很好的选择。这三个核心层是:
1. Common Language RunTime (CLR):这是.NET应用软件基本的执行引擎,它可以使开发工作更加简单和快速。它提供了很多的服务,例如:代码治理,异议处理和内存治理,他们都支持Common Type System (CTS)从而整合多种语言。调试器和向导也处于这一层之中。在图A之中,CTS能够整合例如C#,VB.NET和C++.NET等的多种开发语言。最后CLS功能非常地好,因为它答应开发人员使用其他开发人员的代码(例如语言的互用性)。
2. .NET Framework Class Library:这里面包括的基本类涉及了安全性,Web,XML,I/O,消息传递和配置等方面。它基本上将所有的API放入了一个库之中,这个库对于你的团队是普遍可用的。
3. 用户和程序界面/技术:这是最高的一层,其中含有程序和用户界面,包括ASP.NET和Windows窗体。ASP.NET这一部分为建构Web服务或Web应用软件提供了一个低级别的开发模型。此外,通过使用Windows窗体,项目团队还可以在一个拖放式的GUI环境之中创建标准的Win32桌面应用软件。
图A
.NET架构建构于三个层级
理解.NET协议—项目成功的要害
在对.NET项目进行治理时,你可能将会碰到一些规格或是协议,理解它们是很重要的,它们是:
Disco:Discovery(或是Disco)协议帮助开发人员自动地确定在Web服务之中提供什么服务和功能。它定义了基于XML之上的discovery格式和恢复discovery文件的协议。要记住的事情是,Disco必须要具有一个已知的URL来对服务进行搜索。
SOAP:The Simple Object access PRotocol (SOAP)基本上是用于信息交换。它的规格中定义了一个可扩展的消息格式并捆绑于HTTP协议。
WSDL:Web Services Description Language (WSDL)是一种经常被用到的可扩展的服务描述语言,它是一个基于XML的合约性语言。
UDDI:Universal Description, Discovery, and Integration (UDDI)的创建是为了在不知道URL的情况下来发现并找到服务的供给者。
XML:这是所有一切的基础。它是被广泛使用的在Web上描述数据的标准和.NET架构安全性的保证。很多的Web服务使用XML来描述他们的数据类型。
谁在使用.NET?
有了来自客户的承认,.NET确实有它的用武之地,而且其中不乏成功的例子。当然,.NET还处于转变过渡之中,全面的实现还需要花上一定时间,但是你可以看一看这些客户都做了些什么:
Honeywell在四面时间之内为它的解决方案完成了代码编制,在十周之内完成了项目工作,而且在项目预算之内。这是由于有了Visual Studio .NET的开发和调试工具,它节省了至关重要的时间。
Telenor使用.NET在三个月之内建立了eChannel并开始运行,而且项目工作保持在预算之内。公司认为其他的整合方法将会至少花去两倍长的时间。
哥斯达黎加中心银行最近成功地完成了付款系统向.NET技术的移植。这个项目成功的一个要害因素就是它不需要重新建构现有的系统。这个系统将使哥斯达黎加的金融市场受益并消除技术上的限制而使得系统更加地灵活。他们成功地从先前的基于微软COM的技术向.NET移植了超过一百三十万行的代码,这成为了世界范围上最大的核心应用软件的.NET部署工作之一。
.NET的早期采用者已经推出了一些成功的项目。我此刻给项目经理的建议是开始去熟悉了解.NET技术,因为.NET技术将会有很大的发展。