.NET框架可以缩短开发周期(代码重新使用,减少编程难题,支持多种编程语言),也可以更容易的配置(简单的XCOPY安装成为可能),而且真正的垃圾收集器的出现使得错误减少,并且是在更灵活可靠的应用软件里。现在让我们仔细考察一下.NET框架的各个部分。 公共语言运行时(CLR) .NET应用软件被编译到众所周知的Microsoft中间语言(MIL或者IL) 这一公共语言。CLR处理将IL编译成机器语言,在这时程序被执行。CLR体系结构有以下几个优点: · 更少的涉及内部测量 · 广阔的工具支持 · 更简单的配置(“DLL Hell”结束) · 更精确的尺度 · 支持多种编程语言 · 拥有一个公共数据类型系统 有关CLR的特点详见下图:
当然,这些概念并不是真正意义上的革命,象碎片收集已经提出了几十年。CLR看起来像Java虚拟机,而IL类似于Java字节代码。尽管如此,但是对于习惯于开发Microsoft平台的程序员来说变化是根本的,其受益也是菲浅的。 多语言支持 CLR允许开发组在一个项目中运用多种语言,而且这些语言都能在一起工作。因为元数据额外的处理了所有的翻译,所以不需要接口定义语言。(原数据包括各类信息:运用软件的描述(名称、版本、共众关键字、输出类型、从属物等);基类和已用的界面;自定义属性(用户定义的和编辑者定义的)。)现在用Cobol, Fortran, C++, C# 和 PERL 完成一个单一项目是好是坏已是另外一个问题,但对于旧系统集成,多语言支持则是雪中送炭。(第三方已经着手于COBOL (Fujitsu), PERL, 和Python (ActiveState)语言支持。实际上计划中有50多个项目。)另外,Microsoft进一步改善了两大核心编程语言:C# 推动 C++进入21世纪,它抛弃了很多语言负债(支持指示器和选择案例失败,比如,Java等)VB.NET被大面积的修补,现在是一种真正的支持多态性、继承性等的面向对象语言。 公共类型系统(CTS) .NET公共类型系统 (CTS) 是一套新型的公共数据类型,该公共数据类型在CLR中已被定义。包括所有的标准类型,int, float, double等;然而,CTS能使得程序员在较低的水平更好的完成数据类型转换。另外,从一种语言调用另外一种语言再也不需要奇怪类型转换或调用规范。 .NET框架类 结合CLR,Microsoft也开发了一套全面的框架类,其中有一些如下:
这些框架类最大的优点是无论你用何种语言工作都能达到同样的效果,像平方根操作调用。另外,各种语言都能达到同样的功能性。框架类里的功能性包括用户界面(Windows Forms(传统的Win32应用程序);Web Forms(ASP.NET的窗体引擎);Server controls(服务器端的可再度使用用户界面);控制台应用软件及程序界面--互联网上可用的第三方应用程序的Web Services)。 WinForms和ASP.NET WinForms仅仅是一个用来描绘标准Win32应用程序产生的名词。现在开发者拥有单一协调的类框架,而不再依靠三大不同的API:COM组件(ADO,MSXML等)、平台相关(Win32,Win16等)和语言相关(VBRUN,MFC等)。 在.NET下ASP网络发展框架经历了重大变化。例如,现在成熟的VB或C#(或任何被支持的.NET语言)是编程语言的选择,VBscript和JScript支持仅仅是对旧兼容性的许可。其它重大变化包括: 对HTML服务器控制的新支持(服务器支持会话状态) 服务器能处理客户事件 新型控制系列包括增强的Intrinsics、Rich控件、List控件、DataGrid控件,Repeater控件、Data list控件和确认控件。 对发展网络服务的新支持--通过互联网可达到的现成应用逻辑,其可用简单对象存取控制协议(SOAP)集成到.NET应用软件中。 为什么要用Java来实现.NET? 两个本质原因: --即时跨平台支持 --与成熟的支持完备的Java技术的集成 从上述描述看,Microsoft隐藏了每个基础。从发展观点看,这是肯定的; 但从配置角度看,其中存在着障碍:跨平台支持。Microsoft的.NET体系机构 类似于Java,CLR对应于Java虚拟机,至少在理论上能运行于多个平台。 用Java虚拟机CLR和.NET框架类需要被转到目标平台,而这一转换并不是无关紧要的任务。例如,广为传言Corel正在致力于一个Linux.NET端口,尽管它最近财政上受挫,任何具体的时间表仅是如意算盘。本着这一目标,Halcyonsoft(http://www.halcyonsoft.com)开始了运用Java这一很多平台支持的框架来开发.NET框架。Halcyonsoft的Instance.NET项目的优点是一旦完全转换到Java,.NET应用软件将能在任何支持Java的平台运行,从S/390主机到IBM基于Linux的手表。 跨平台支持对于.NET网络服务的部署变得越来越重要。.NET网络服务即可以通过互联网整合到其它应用软件的.NET应用软件,本质上其需要配置到一个有最大正常运行时间的良好环境。例如,当网络服务主平台重新启动而导致交易周期性中断,如果你购买了前面所提到的包括在公司购物车软件里的税收表应用程序,情况会乐观一些。网络服务卖主的确有必要在一定的服务合同下对系统停机时间负责(希望有此合同)。就此移植关键任务的网络服务到像Solaris或OS/400等良好的平台对于双方都具有重大意义。实际上像IBM的S/390这种重负荷机能被用作网络服务伺服器,作为成千上万台Linux虚拟机的主机。 还有额外的好处是.NET应用软件也能捆绑像JavaBeans, EJB,及CORBA组件等基于Java的技术。这些.NET应用软件也同样能互相作用于来自Oracle, BEA, IBM和Sybase的大型应用服务器。 Halcyonsoft的Java.NET如何工作的? 尽管用Java复制.NET框架所需的开发努力是巨大的,但从开发者角度看实际操作应该是简单的。运用一个“il2java”的命令行实用程序,开发者能直接将他们的.NET应用软件的中间语言转换为Java字节代码或Java源代码(或者根据情况转换为这两种代码)。然后由被转换的Java.NET应用程序和必要的支持库组成的运行时软件包将产生并被配置到可运行Java的平台上。 当在Java平台上找不到一种特定的服务时,像Microsoft Office,我们将利用和更新我们的Java Bridge--RJAX。RJAX是一种高性能的桥服务器,它设置在Windows机器上,可以使Java应用程序访问.NET应用程序及旧的COM/COM+/ActiveX 对象和DLLs。现在2.1版本的RJAX是一个良好的、高速度的、易升级的解决方案,能使我们寻找到任何无法预料的Windows特殊的从属物。 下列图表表示了与Microsoft的.NET体系相联系的Halcyonsoft的.NET体系结构:
在Java.NET引擎和Microsoft后台服务之间的箭头表示上面讨论过的RJAX Bridge。 其它服务,像MSMQ和MTS被划为他们Java的相对部分,分别是JMS和JTS.因为他们的SOAP通信界面将在Java和原始.NET两个版本中保持一致,网络服务将会有明显的处理。 下图更详细的描述了Halcyonsoft的.NET的执行体系结构:
目前,Halcyonsoft正致力于开发Java.NET,并将于今年10月份正式推出其中的一部分-ASP.NET Beta版。为了获得更多的有关的应用实例,Halcyonsoft邀请其原有的iASP(Microsoft ASP的Java构架,可跨平台)用户及更多的开发者作为其测试者,Halcyonsoft将免费为其Beta版测试者作ASP.NET的案例研究。 Halcyonsoft目前在中国东莞、长沙设有两个分公司。如果你想成为iNET的测试者,请访问http://www.halcyonsoft.com获取更多消息。国内测试者可联系 [email protected] 或 [email protected]。
本文地址:http://com.8s8s.com/it/it18615.htm