非常了不起的工具iNET----------帮你实现.NET项目跨平台运行.

原创 2004年04月29日 20:55:00

非常了不起的工具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包括 三个组件:

  • IL to Java 转换模块(IL2Java)

    o 它的功能是将MSIL代码转换成本地Java。因此也意味着iNET可以转换任何.NET 源码,不管是Visual Basic, C#, 还是Visual C++.

  • iNET 运行时类库

    o iNET运行时类库是一套用Java实现的软件组件,它准确地复制了.NET framework 提供的所有功能。比如 ADO.NET, ASP.NET, WinForms, WebForms, XML, SOAP - 所有的都是用Java来实现.

  • iNET 配置工具

    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"来调用。

CSDN_Dev_Image_2004-4-291139590.gifCSDN_Dev_Image_2004-4-291139592.gif

使用Mono让.NET程序跨平台运行

众所周知,Unity3D引擎凭借着强大的跨平台能力而备受开发者的青睐,在跨平台应用开发渐渐成为主流的今天,具备跨平台开发能力对程序员来说就显得特别重要。传统的针对不同平台进行开发的方式常常让开发者顾此...
  • qinyuanpei
  • qinyuanpei
  • 2016年05月03日 14:49
  • 12479

VS2013的Visual C++ 项目如何修改目标框架和平台工具集

https://msdn.microsoft.com/zh-cn/library/ff770576.aspx 如何:修改目标框架和平台工具集 Visual Studio 2013 ...
  • b6_g9
  • b6_g9
  • 2015年07月17日 08:38
  • 9236

Python实现跨平台运维小神器

这阵子一直在学python,碰巧最近想把线上服务器环境做一些规范化/统一化,于是便萌生了用python写一个小工具的冲动。就功能方面来说,基本上是在“重复造轮子”吧,但是当我用这小工具完成了30多台服...
  • kai404
  • kai404
  • 2016年08月10日 11:59
  • 2669

使用Mono让.NET程序跨平台运行

众所周知,Unity3D引擎凭借着强大的跨平台能力而备受开发者的青睐,在跨平台应用开发渐渐成为主流的今天,具备跨平台开发能力对程序员来说就显得特别重要。传统的针对不同平台进行开发的方式常常让开发者顾此...
  • hhh901119
  • hhh901119
  • 2017年12月01日 20:02
  • 108

使用Mono让.NET程序跨平台运行

众所周知,Unity3D引擎凭借着强大的跨平台能力而备受开发者的青睐,在跨平台应用开发渐渐成为主流的今天,具备跨平台开发能力对程序员来说就显得特别重要。传统的针对不同平台进行开发的方式常常让开发者顾此...
  • qinyuanpei
  • qinyuanpei
  • 2016年05月03日 14:49
  • 12479

跨平台的.NET运行环境 Mono

  • bjash
  • bjash
  • 2013年04月09日 10:36
  • 738

跨平台的.NET运行环境Mono 2.10发布

跨平台的.NET运行环境Mono 2.10发布2011-02-18 09:58 | 5368次阅读 | 来源:博客园 【已有14条评论】发表评论关键词:2.10,Mono,.NET | 作者:itwr...
  • zenglm
  • zenglm
  • 2011年04月12日 15:59
  • 239

.NET 跨平台开源项目——Mono介绍

引文: 李维先生曾讲过,“微软在垄断操作系统,SUN在垄断语言,他们都是垄断”。人们天生喜欢自由,不喜欢垄断。以前我一直在想,如果用Delphi开发的Windows程序能运行在Linux上,哪会是一...
  • cbbbc
  • cbbbc
  • 2015年10月15日 00:17
  • 674

.NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序

在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了%26nbsp;ASP.NET 5 示例程序。在这篇博文中我们将 Ubuntu 换成 CentOS。 目前 dnx 的...
  • qq253343206
  • qq253343206
  • 2015年06月19日 00:23
  • 135

.NET跨平台:在CentOS上编译dnx并运行ASP.NET 5示例程序

在之前的博文中我们在 Ubuntu 上成功编译出了 dnx ,并且用它成功运行了%26nbsp;ASP.NET 5 示例程序。在这篇博文中我们将 Ubuntu 换成 CentOS。 目前 dnx 的...
  • qq107980942
  • qq107980942
  • 2015年06月19日 00:25
  • 92
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:非常了不起的工具iNET----------帮你实现.NET项目跨平台运行.
举报原因:
原因补充:

(最多只允许输入30个字)