1 软件开发框架的概念

在企业应用软件开发领域,往往存在两种选择,那就是SUN公司的SUN ONE 框架平台和 .NET Framework(一般业内简称.Net框架平台) 。

J2EE只是SUN ONE平台下的一个概念性的开发应用平台而已。跟.NET框架平台不是一个级别性的东西,只有一般不了解技术的人才把一个架框平台和一个开发平台进行比较。

一般来说,Windows .NET Framework是Microsoft的Windows系统中经过精心定义的技术框架,微软所有开发系统产品的多年的整合,而J2EE则是一个书面的协议,只是一个技术要领。如果不局限于学术方面的讨论,换句话说,就是在几个应用平台上讨论这个话题的商业价值,没有任何意义。仅仅于技术初学者在学习技术的初级阶段寻找一个的指导方向而已,能够让技术的入门者确定寻找工作的目标。

2 .NET框架平台和J2EE介绍

2.1 .NET框架平台介绍

.NET全称Windows .NETFramework来自于微软,是一套全能的框架平台,支持C++、C#、J++、VB、ASP等语言,能够解决C/S、B/S和单机等结构的软件开发需求。.NET平台将这些语言编译成CLR语言,使它们可以无差别的运行在.NET Framework上,是2000年以后微软最为重要的软件开发套件产品。.NET框架入门门槛较低、使用方便,并且微软对其提供了良好的文档支持和在线服务。

.NET框架平台的目标是“多种语言共享一种平台”,把所有的企业开发应用统一到一个架框里来。

2.2 J2EE介绍

J2EE 基于各个软件组件的企业服务应用平台。需要专业成熟的软件公司花费大量的精力和时间去布署才能发挥J2EE架构的企业级应用组件功能。就是JAVA语言为主要的开发语言。

Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。

J2EE应用平台的目标是“ 在多种平台上使用一种语言”,不兼容企业现在已经使用的其他软件。

3 .NET架框平台和J2EE的优劣比较

3.1 .NET架框平台

1.技术来自于一家公司。所有标准统一。

2.支持多种语言,目前主流的有C#,VB.Net,Delphi等等各个开发程序都加入这个开发语言陈容。

3.支持多种操作平台,多种移动设备。可以充分利用Windows技术资源,Mobile移动设备智能平台,WINCE等PDA系统。

4.以框架开发者为主导的设计。

5.门槛很低,使用方便,学习成本较低。

6.强大的公司团队技术的更新。

7.XML WEB标准由微软制定。所以公司以此标准进行开发布署。

8..Net比Java出来晚,微软公司吸取了了Java所有的优点,并且具有更先进的系统架构体现。

9.封装了WCF构架, 整合了原来的.Net Remoting,Asp.Net Xml WebService,MSMQ,WSE,Enterprise Servie等多项分布式技术。

10..NET侧重于软件的实际应用。

3.2 J2EE开发平台

1.技术来自于多家公司,各个公司标准不统一,配置复杂,需求高成本配置,对用户要求高。

2.支持一种语言Java语言。

3.开源产品众多,免费框架居多,硬件和中间件需付费。各个中间件都由不同的供应商提供,需求付费。整个平台构成由若干的公司产品组成。

4.平台移植性比较好,能够支持多种操作系统,但支持Windows系统平台需要性降低性能访问。无法与WINDOWS系列平台实现美完结合。

5.门槛较高,由于多且杂,需要开发人员花费很长时间才能熟悉整个体系。。

6.这一阵营技术更新很快,新技术新标准层出不穷,适合技术爱好者。

7.软件布署时间长。需求各种配置清单。配置清单标准不一,布署成本和周期过高,对于软件的布署周期一般一年以上才能成熟稳定。

8.软件侧重于开发模式。

4.NET和J2EE在安全功能的比较

4.1 配置

    两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。

4.1.1 .NET框架平台

    在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。Mscorcfg.msc是图形接口方式,Caspol.exe提供了命令行方式,适用于批处理或配置文本。

    .NET定义了不同范围的安全配置文件:系统范围,本机范围,本用户范围。在配置有冲突时,原则上小范围的参数有优先权。

4.1.2 J2EE应用平台

    JAVA平台只提供了图形接口的工具policytool.exe。和.NET不同的是,它的目标对象(配置文件)的名字和位置不是固定的。

    JAVA和J2EE的核心配置文件都保存在固定位置,但扩展配置文件随厂家不同而不同。

  两个平台基本上差不多,.NET在灵活性上稍微好一点。

4.2 代码封装

4.2.1 .NET框架平台

    在.NET, 域隔离建立在内存安全机制的基础上,不同的域不能直接访问彼此的地址空间,只能通过.NET远程通信机制访问。

4.2.2 J2EE应用平台

    在JAVA平台,应用隔离是通过ClassLoaders和ProtectionDomains 相结合来实现的,安全类加载是JVM安全机制的基石。

        .NET的 AppDomains 就象操作系统的进程一样,使用起来比JAVA的 ProtectionDomains 更直接、容易一些。

4.3 加密和通信

4.3.1 加密法
4.3.1 .NET框架平台

        .NET的加密法主要基于CryptoAPI 和相关扩展。大多数有关加密的类都在System.security.Cryptography,X509Centificates 和XML中。.NET利用基于流的模型来完成加密传输,所有的算法都被默认为最高的安全级别。.NET也允许用户自己在machine.config 中定义自己的算法。

4.3.2 J2EE应用平台

        JAVA平台的加密算法分二个部分:Java CryptographyArchitecture (JCA) 和 Java Cryptography Extension (JCE)。 JCE的出口受到有关法律的限制。如果要使用用户自己的加密算法,必须得到认证机构(SUN 或 IBM)的认证。

4.4 安全通信

4.4.1 .NET框架平台

        .NET通过WSA (Web Service Architecture)和 WSE (Web Service Extension) 包来提供最新的WEB服务安全保证,

4.4.2 J2EE应用平台

        JAVA目前还没有提供这方面的支持。

4.5 加密和通信总结

    在加密方法上,JAVA和.NET基本没有太大的差别;在通信保护方面,JAVA 比.NET提供了更多的选择方案;但是在WEB服务安全性上,JAVA明显比.NET落后一些。

5 数据处理

        JAVA和.NET本身并参与数据库的数据处理过程,所以的数据处理由数据库完成。语言只处理数据的传输,保证数据的传输安全,传输效率,最大效率发挥数据库的性能。

国外最专业的JAVA论坛Javalobby曾经对数据1000个数据,100000个数据做过内存,访问,排序的对比。最后得出结论。.NET比JAVA处理数据快大约1.5左右。