见资源 By Brian Noyes 当一种新技术出现的时候,对于公司和开发者来说都是令人激动且有紧迫感的时刻。开发者们想学习新" name="description" />

移植到.NET

发表于:2007-05-25来源:作者:点击数: 标签:代码本期.NET杂志移植
下载本期杂志代码 java script:openWindowRes('http://www.fawcette.com/china/DotNetMagazine/2001_12/MigrateToNET/resource.asp')">见资源 By Brian Noyes 当一种新技术出现的时候,对于公司和开发者来说都是令人激动且有紧迫感的时刻。开发者们想学习新

下载本期杂志代码
javascript:openWindowRes('http://www.fawcette.com/china/DotNetMagazine/2001_12/MigrateToNET/resource.asp')">见资源
By Brian Noyes

当一种新技术出现的时候,对于公司和开发者来说都是令人激动且有紧迫感的时刻。开发者们想学习新的东西——有意思的东西,能保证使他们的生活更加轻松的东西。他们想处于技术工作的最前沿。管理人员和市场人员也急于了解新技术,以便在市场宣传中做得更好,并且使公司更具有竞争力,通过对新技术的使用,使公司获得更多的回报。没有人希望公司仍然用旧的、过时的东西。

对于基于Windows平台和其他平台的开发者来说,.NET 正在成为一种令人激动的,具有革命性的——或者最起码说有发展性的新技术。无论您是Web开发者,组件开发者,数据开发者,VB GUI 开发者,或者任何基于Windows平台的开发者,.NET都承诺使您更好地完成您的工作。


				图1.
图1. 移植基于组件的框架结构程序到.NET
但问题是怎么从当前的状况转向.NET。想说服管理者和用户接受新技术是困难的,尤其是在正式版本发布之前。“怎样在你的项目中调整自己来转向.NET”,这是一个经常被问到的问题,答案是“看情况....”我会给你一些把你的项目转向.NET之前所需要考虑的事项,以及不同的.NET技术所适应的最好的领域。对这些了解之后,你就有了充足的理由说服你的客户并使其同意转向.NET开发。

尝试基于组件的框架结构
对于大多数你正在开发的系统而言,你不必放弃你已开发好的的软件,而一步转向.NET。通过.NET的互用性,你可用.NET所提供的语言,工具,技术进行开发,开发出的新模块可以和以前的模块很好的协同工作。

互用性存在于.NET的许多层面,他们包括针对C++, COM/COM+ 的管理扩展,管理提供者及平台调用(P/Invoke)。所有这些互用性可以根据你要移植的代码的类型或者功能, 轻松地使你把你的框架转换成.NET 框架,而不需要重写所有代码。

clearcase/" target="_blank" >cccc99>商业应用
节约成本将会增加收入
当你分析将要开发的工程来决定他们那个适合用.NET来开发从而获得更高的效益时,你会看一看公司内部项目和他们的开发成本....
从最高的层面上来讲,为了顺利地转向.NET,你现在最应该做的是在开发过程中尽量使代码和功能组件化。因为基于组件的框架结构允许并行开发,提高可维护性、可用性且利于产品的发布。.NET的核心是面向组件的,Juval Lowy 的文章 -“用.NET设计一个新的课程“,在.NET的组件架构发面有一些不错的见解,我这里就不详细介绍了。

如果你现在有幸用预发布的.NET版本进行开发的话,那么做好转变的准备吧。.NET架构和语言可使面向组件的开发成为一件轻松的事。丰富的架构库可使你的代码更加高效。用多语言的软件公司也会受益于.NET,因为所有的.NET开发者都用同一个开发库(所用语法会根据语言的不同会有很小的差别),所以他们可以共享在开发过程中所获得的经验。相反,在当前的多语言开发中,如VB开发者,脚本开发者,C++开发者用的是不同的库和技术。

如果现在不能用.NET开发,那么尽量把你要实现的功能做成COM或者COM+组件。如果你这样做了,你就可以利用.NET的COM互用性在.NET中直接使用他们。使你的代码结构尽量接近COM组件的结构,也可以使你在日后方便地把他们转换成.NET组件,如果你愿意的话(参照图1)。

.NET的另外一个重要特性是:它支持跨语言的开发。你现在可以从Visual Studio.NET 所带的语言——C#, C++, VB 和JScript, 或者第三方为.NET所开发的语言中选择适合你的。但是,即使你不想学习一种全新的语言,如C#,你仍然需要一些在.NET中写代码的技巧。

C++开发者可以通过C++(MC++) 管理扩展编写.NET代码。但不幸的是,为了使用MC++ ,你必须学习新的语言扩展、关键字、属性,以及哪些C++语法在.NET中是合法的,那就意味着你无论如何要学习一种新的语言。而且因为你的代码中有了那些额外的东西,所以很难被读懂。

尽管我有十多年的C++编程经验,我仍感到在开发.NET应用程序的过程中C#是一种高效的,简单的语言。相对于C#,MC++ 提供更强大的功能,而且在把你的程序分割成本地代码和受管代码时,更加简单、灵活。在一些对程序运行效率要求很严格的场合,你可以用C++写本地代码应用程序。如果你想用C++写本地应用程序及COM组件,那么在.NET的开发中你仍需要使用MC++。ALT Server是一种通过使用ALT来创建高性能Web Services的新技术,它是基于C++的,并附带有一些ALT库。


				图2.
图2. SOAP 和Web Services提供跨平台的互用性
对VB的开发者来说,VB.NET已真正、全面地支持面向对象的能力,它包括等待已久的继承和多态。但要付出的代价是:VB.NET 使用和以前版本的VB不同的代码结构。VB IDE向用户提供被以前VB所隐藏起来的细节,比如说:事件分派、类型转换及错误处理。VB.NET的IDE仍为你做许多事情,但你会了解这些,而不像以前那样被隐藏起来,对于初学者来说,可能感到代码更难读了,但对于有经验的VB程序员来说,这是一个很大的进步,尤其在代码调试中,比如说调试COM程序。

JScript 也被改进成为一种全面支持.NET的语言,但它可能主要被用在基于.NET的Web应用程序中,而不是单独的应用程序。

在.NET中C#是一种崭新的语言,它提供像C++, Java,和Smalltalk等以前的面向对象语言所提供的特性及功能,实际上C#是一种把他们揉和在一起,类似C++语法的新语言。所以很好解释为什么许多C++甚至VB开发者选择C#作为他们的.NET开发首选语言。C#简单易用。微软的大部分的.NET构架类库用C#写,从这一点也可以看出C#的重要性。

你必须首先为你的.NET开发选择一种语言,然后培训员工使用这种语言及和.NET相关的一些新特性,这一步是很关键的。在允许开发者选择他们喜欢的语言方面,你有比以前更大的灵活性。不过你需要有配置管理这方面的考虑,很多公司会在用好几种语言写成的代码面前不知所措。但是你会发现新的机遇,它能在你的不同项目中共享代码。比如,对一个主要由面向组件的C++组成的现有项目来说,有许多工作要做,如果你想让你的VB开发人员用现有的技术来做一些辅助工作的话,那是比较困难的,但是如果用.NET技术,那就很容易了。

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)