非常了不起的工具INET,实现.NET跨平台!
执行摘要
微软的.NET是一套连接信息、人、系统、设备的软件技术。此新一代的技术是基于Web服务和小模块创建的应用,可以使任何应用彼此互连并且能连接到Internet上的其他大型应用。.NET的基础核心是集成开发设备(IDE), Visual Studio.NET和一种新的应用执行环境-Microsoft .net开发框架。这些系统使开发人员能够像灵活使用 Visual Basic 和C#一样开发强大的应用程序和Web服务。
但是有局限的一点是:用.net开发的应用程序必须运行于.net服务器或者客户端。如果所有的用户都按照.NET运行环境技术标准化这也许可行,但是实际上当然不是这样。成千上百万台电脑运行的是Linux、Unix, OS X 和其他操作系统,而这种环境不是.NET应用程序的标准化运行环境。因此软件开发组织需要考虑: 如何有效利用它们的 Microsoft开发人员和Visual Studio.NET的技术特征和优势但是仍然可以访问非微软服务器, PC机,手提电脑和移动设备?怎样才能使他们用.NET编写的程序运行时不受运行环境的局限?
Stryon公司开发的iNET解决了这一难题。iNET可以使应用程序和Web服务在Visual Basic 和C#下开发,但发布于任何支持Java的运行环境,网络主机也从IBM网络服务器扩展到Linux和Unix的服务器。有了iNET技术,开发人员既可以利用Visual Studio .net开发环境的优势,但是又不局限于Microsoft的运行环境。
什么是.NET? 其工作原理?
要想了解iNET是什么,需要首先了解.NET的框架结构和工作原理。
.NET包括很多内容,但从一个开发者的角度来讲,它是一个基于Web应用和Web服务的开发和发布的开放式环境。开发者通常用Microsoft IDE和Visual Studio.NET开发.NET应用程序(Borland厂商已宣布他们的IDES已经具备和 Microsoft's IDE竞争的实力,但是此产品目前还没在市场上发布)。.Net框架已经(或者将)嵌入所有的 Microsoft视窗操作系统,取代Microsoft的Web应用服务,ISS。
.NET包含三种基本的开发语言,Visual Basic.NET, C# 和 Visual C++.NET。 当应用程序和Web服务用这些语言编写时,必须经过两步编译成可执行的机器代码。首先,.NET Framework编译器接收源代码,并产生一套用 iNET 内部框架通用语言编写的指令集。这种语言称为微软中间语言(MSIL),它是独立于CPU的。因此在代码可执行之前,它还必须在通用语言运行环境(CLR)下转换为本地、专用CPU代码。
基于.NET 框架的可执行和管理的代码被称为 "管理代码"。它必须为通用语言运行环境提供必要的信息来支持它的服务,包括内存管理,跨语言集成,代码访问安全性,自动对象生命周期控制。所有的基于微软中间语言的代码可作为管理代码执行。相比较而言,开发人员也能编写"非管理代码",即代码执行直接依赖于操作系统,而脱离Microsoft .NET 框架的通用语言环境。非管理代码必须自己提供内存管理,类型校验,安全支持,不像管理代码从通用语言环境接受这些服务。非管理代码必须脱离.NET Framework执行。
.NET 框架包括一套较完备软件技术,涵盖了执行常用的必需的函数。其中涉及的组件、.NET的类库对任何用.NET管理代码编写的应用程序都有效。它们按函数类型分组,包括ADO.NET(数据访问和管理), ASP.NET(创建、发布、运行web应用和服务),XML(语言标识),SOAP(数据交换),WebForms(Web应用),和WinForms(Windows 应用)。
理论上,.NET应用程序可运行于多种平台,但是前提是CLR和.NET的框架类库必须指定端口连接到目标平台。这是一项意义非凡的研究,因为.NET开发的应用程序必须应用于.NET环境,从实用的角度出发,iNET出现了,它的出现解决了跨平台运行这一难题。
什么是iNET?
Stryon的iNET以纯Java将.NET开发构架重新实现 。在运行之前,iNET将.NET APP转换成本地Java,因此它可以运行于任何Java虚拟机上。用Java的实现框架为Java和其他的服务器端的架构提供跨平台的 .NET执行应用优势和核心技术支持。
iNET包括 三个组件:
o 它的功能是将MSIL代码转换成本地Java。因此也意味着iNET可以转换任何.NET 源码,不管是Visual Basic, C#, 还是Visual C++.
o iNET运行时类库是一套用Java实现的软件组件,它准确地复制了.NET framework 提供的所有功能。比如 ADO.NET, ASP.NET, WinForms, WebForms, XML, SOAP - 所有的都是用Java来实现.
o 提供的工具让用户更容易实现在J2EE平台上展开iNET 应用.
iNET的工作原理?
在运行之前,.NET编译器会将源代码编译成MSIL代码,那么我们就可以通过iNET里面的IL2Java工具将它们转换成本地Java。因为iNET运行时类库与.NET类库完全兼容,所以本地Java源码是由执行IL2Java这一命令产生的取代了.NET运行类库的iNET运行类库。
一旦应用程序被完全转换成Java源码,它就像任何Java应用一样,被Java虚拟机(JVM)编译成Java字节码后被执行。这个应用程序运行时包会包括iNET运行时类库。
iNET 的IL2Java工具是内嵌在Visual Studio.NET里面,因此开发者只需要简单的点击"建立Java"菜单就可以将代码转换成Java,在Visual Studio.NET里面配置它到本地机器上或者到远程目标机器上。它也可以通过一个简单的命令行"il2java.exe"来调用。