未来的标志 .NET成熟的里程碑
非微软产品,包括服务器,桌面或是便携式设备的操作系统如Solaris,Linux和Palm OS的.NET接口。与JAVA核心的整合。比如说,针对CLI(Common Language Infrastructure)的JAVA编译器,针对JAVA虚拟机的C#编译器。
SQL SERVER或是ORACLE等数据库产品中整合的VES引擎。由中立的第三方开发的开放源码的,完善的.NET平台。
可以预见到,微软将会赞助一些开放源码的项目,以使.NET向UNIX平台扩展,而这将有助于一些开放源码组织减少它们对JAVA的偏爱。
JAVA的命运
JAVA的一个主要目标是通信设备提供商,如NOKIA就在它的WAP SERVER应用了JAVA。类似于70年代和80年代初,PC销售时硬件供应商将最终的应用程序绑定在操作系统中一起销售,JAVA现在也被绑定于通信设备中被销售。
它的另一个主要方向是JAIN(Java API for Advanced Intelligent Network),它主要是定义一套与协议(如CDMA,GSM,IMT2000)无关的API,以便于基于开放市场的组件开发。这使得ISV(独立软件供应商)可以以插件的形式提供通信服务,如可自动转接至最近的可拨通的国际呼叫中心的800免费电话。当然,JAIN也遇到了对手,想微软和不列颠通信提出的Parlay计划——它也被业界所支持。
另外,JAVA在嵌入式设备中也保持着领先的地位,如smart 3G和GPRS,在这里的移动电话系统采用的是J2ME(Java 2 Micro Edition),但是如果它不能很好的解决一些固有的问题,如载入时的延迟等,也许,很快,它就将被C#代替,如果.NET能提供快速的运行环境,和广泛的业界支持。
.NET和JAVA的整合
无论从商业角度,还是开发者角度,甚至是源码开放组织的角度,.NET和JAVA的整合都显得很有必要,下面就二者的整合做出一个提前的估计(所有的相关项目被分为A、B、C三个组,以便于看清它们之间的关系,当然这些项目也完全可以被独立的操作):
JVM to CIL compiler (Group A)
Java API bridge for .NET API and lib. (Group A)
Java compiler for CLI (Group A)
CLI ports for Palm OS, Linux and Solaris (Group B)
.NET API and lib. bridge for Palm OS API (Group B)
.NET API and lib. bridge for POSIX (Group B)
CIL compiler to JVM (Group C)
.NET API and lib. bridge for Java API (Group C)
C# compiler for JVM (Group C)
A组的项目
该组项目的主要目的是使现有的JAVA二进制代码能够在.NET平台上被执行。这意味着JAVA的二进制码(后缀为class的文件)不用再从源代码进行重编译就能运行于.NET平台了。当然这些class文件在安装或执行时会被编译,就好象微软的运行时和JIT对微软中间语言所做的那样。
JVM to CIL compiler
一个编译器,输入JAVA字节码,输出MSIL代码——它将被编译为可执行文件(如EXE,DLL,MSI等)Java API bridge for .NET API and lib在这里,JAVA API与每一个相应.NET API之间将建立一个映射,比如Java API中的java.io.File将被映射到.NET的System.IO.File类。相对于比较简单的IO类的映射,还有一些映射比较复杂,比如java.net包到.NET的SYSTEM.NET的映射。这里存在的一个问题是:该项工作如果在C#中进行开发会比较方便。而假如在JAVA中实现,则需要有一个直接指向CLI(Common Language Interface)的编译器,它能生成符合CLS(Common Language Specification)标准的CIL(Common Intermediate Language)代码。
可以通过编写一个向导式的工具来避免一些烦琐的工作,例如,可以利用C#或JAVA来编写一个基于XML格式的对象描述,用它生成一个框架代码,然后根据需要向其中手写添加其他代码。如果你确实打算进行这样的操作,在http://xml.apache.org站点你可以找到很多有用的资料。微软的过时的JAVA SDK中也有类似的工具可供参考——一个用来生成Jdirect(JDirect was the Microsoft's hack for implementing native interfaces)代码的工具,利用它可以实现访问本地WIN32 API。SDK中有该工具的源代码。顺便提一句,由于这里涉及到微软的一套独特的JAVA扩展标记,因此SUN和微软一直就此问题打着官司。
Java compiler for CLI
它将JAVA源代码(使用.NET框架API)编译为可执行文件的格式,如EXE,DLL等,这个工作是在最高的层面上对JAVA和.NET框架进行整合。这将为今后直接利用JAVA在.NET框架下创建应用打好基础。
对现有JAVA编译器的代码生成部分重写,将是此项工作一个比较便捷的解决方案。就我个人的意见,SUN会根据开放源代码的标准,开发这样的一套编译器。当然,这样的一些改造计划需要对一些JAVA类进行调整。
B组的项目
该组的项目将主要致力于为其他的平台如PALM OS、SOLARIS以及LINUX平台开发.NET框架的端口。这些端口应该用C来编写以适应速度和控制上的需要,另外采用C来开发还可以保留进行操作系统相关的系统级编程。
CLI ports for Palm OS, Linux and Solaris.
这部分内容事实上分为两个独立的部分:一、针对PALM OS;二、针对UNIX系统。
对于PALM OS来说,解决方案比较简单,开发可以在PC环境下进行,然后利用数据线或是蓝牙传输到PALM设备上。与之相关的.NET框架针对PALM OS设计的API将在下个部分详述。
UNIX部分将利用JAVA开发,最后将PE(Portable Executeable)文件编译为COFF(Common Object File Format)格式,一种UNIX可执行文件的格式。编译将在安装或是载入时进行。
.NET API and lib. bridge for Palm OS API.
这个.NET API bridge应该以一种优化的方式被映射到PALM OS API上。连接器和装载设备的映射表驻留在PC的网关上。
| 共3页: 上一页 [1] 2 [3] 下一页 | ||
|