.NET与Java的这种类似为网站管理系统的开发提供了便当,如果您把握了C#,那么,把握Java这个语言简直是不费什么力量的,须要破费工夫的只不过就是相熟彼此的类库。.NET是.NET Framework,Java是J2SE。学习这两者的实践根底都是面向对象实践。所以,一名有着面向对象实践根底的人是很容易把握.NET和Java的。
简介
.NET是微软推出的一种新的软件运行平台,它包含一整套利用范畴宽泛的技术,旨在迎接Java所带来的挑战。.NET给网站管理系统开发带来了很多新的技术,尤其是它的“混合语言”开发方式,是第一个反对多种语言混合开发的软件运行平台,下一代Windows--LongHorn的外围将会看到.NET的身影。如果读者学过Java,那么您会发现,.NET与Java切实是太象了。尤其是C#,如果给你一段代码,有的时候还真难分辨出是用Java还是C#写的。
Java是上世纪九十年代诞生的一种面向对象语言,它汲取了C++的许多短处,其最大的个性是“跨平台”,因为它很好地满足了网络时代信息系统对高级语言的要求,因此在实践中失去广泛应用。Java通过近十年的倒退,目前已在企业信息系统开发畛域占据了支流位置,造成了一整套残缺的技术体系,获得了微小的胜利。
平台的构架
JAVA平台包含JAVA语言,以及一套虚拟机——如JVM、KVM、CVM等——通过它们实现在PC机,手提电脑或是嵌入式零碎上运行JAVA的字节码。同时,JAVA平台还定义了一整套覆盖面很广的API,它们被用来与微软的API协调或是相互竞争。如JDBC对ODBC,JTAPI对TAPI,JDO对ADO等等。因而,简要来说,JAVA平台包含语言,虚拟机,以及API库。因为应用虚拟机机制,所以JAVA语言在所有的平台上只有惟一的版本,因而它应用RMI协定进行近程通信;微软则在.NET框架中应用DCOM——正在逐渐演变为SOAP。SUN最后对JAVA的宣传是“一次性代码编写,所有环境下运行”,但在推出了“J2EE”和“J2ME”后不得不发出了它最后的宣传,因为“一种尺码的鞋适宜所有的脚”的解决方案并不能很好的工作。
.NET框架包含C++, http://VB.NET和C#等一系列语言;与JAVA虚拟机相似的一套运行时环境;以及一套偏向与WINDOWS体系的API接口。其中的运行时环境可能存在于一个浏览器、或是一个WEB SERVER、或是在操作系统中。未来兴许在SQL SERVER中也可能存在这样的运行时环境。另外须要提及的是微软的SOAP协定,它在继承了DCOM的一些个性的根底上倒退起来,基于XML格局通过HTTP进行传输。
加密法:概论
.NET的加密法次要基于CryptoAPI 和相干扩大。大多数无关加密的类都在System.security.Cryptography, X509Centificates 和XML中。.NET利用基于流的模型来实现加密传输,所有的算法都被默认为最高的安全级别。.NET也容许用户本人在 machine.config 中定义本人的算法。JAVA平台的加密算法分二个局部:Java Cryptography Architecture和 Java Cryptography Extension。 JCE的进口受到无关法律的限度。如果要应用用户本人的加密算法,必须失去认证机构的认证。
加密法:算法
.NET为网站管理系统次要提供了上面几大类加密算法:非对称算法、HASH算法、对称算法、随机数生成法。JAVA提供的加密算法更多,然而较少第三方厂商能够在JAVA中提供本人的算法。
平安配置
两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于解决平安配置体系的形式不同。在.NET平台,有图形接口和命令行二种形式来批改平安配置参数。Mscorcfg.msc是图形接口方式,Caspol.exe提供了命令行形式,实用于批处理或配置文本。JAVA平台只提供了图形接口的工具policytool.exe。和.NET不同的是,它的指标对象(配置文件)的名字和地位不是固定的。.NET定义了不同范畴的平安配置文件:零碎范畴,本机范畴,本用户范畴。在配置有抵触时,原则上小范畴的参数有优先权。JAVA和J2EE的外围配置文件都保留在固定地位,但扩大配置文件随厂家不同而不同。
平安通信
SSL曾经是事实的传输平安的工业规范了。JAVA和.NET都反对最新版本 SSL 3.0。
平安通信:平台
.NET只在基于IIS的利用中应用SSL来爱护HTTP传输,对于非IIS利用,.NET不能爱护传输中的数据。在JAVA中,JSSE提供了平台级的服务,保障基于TCP/IP的通信安全。除了IIS,.NET没有提供任何其它平台级的通信爱护的规范计划,然而JAVA在这方面提供了全套的解决方案。
平安通信:利用
.NET通过WSA和 WSE包来提供最新的WEB服务平安保障,JAVA目前还没有提供这方面的反对。在加密办法上,JAVA和.NET根本没有太大的差异;在通信爱护方面,JAVA 比.NET提供了更多的抉择计划;然而在WEB服务安全性上,JAVA显著比.NET落后一些。
代码封装:测验
JAVA 和.NET 的Common Library Runtime都履行内存平安或类型平安的爱护机制,在这些平台开发的利用的安全性也是能够测验的。他们的实现机制有很大的不同。在.NET, CLR总是执行编译好的代码,它不解释代码。然而在两头语言被编译之前,编译器会有验证和测验的步骤。第一步是查看文件的构造和代码完整性;第二步包含一些扩大的查看,内存平安、堆栈跟踪、数据流剖析、类型查看等。在运行阶段,由VES来负责安全性检查和出错意外状况解决。在JAVA平台,JAVA虚拟机(JVM)负责类的载入、链接、测验和执行。对于曾经编译和优化的代码,JVM也用二个无条件调用堆栈来保留最后的字节代码信息。
代码封装:利用隔离
在.NET, 域隔离建设在内存平安机制的根底上,不同的域不能间接拜访彼此的地址空间,只能通过.NET近程通信机制拜访。在JAVA平台,利用隔离是通过ClassLoaders 和 ProtectionDomains 相结合来实现的,安全类加载是JVM平安机制的基石。.NET的 AppDomains 就象操作系统的过程一样,应用起来比JAVA的 ProtectionDomains 更间接、容易一些。
代码封装: 语言特色
两个平台基本上差不多,.NET在灵活性上略微好一点。
倒退历程
JAVA最后来源于SUN的一套为机顶盒设计的语言,过后的名字是OAK,SUN将之更名,并将它放在INTERNET上作为开放源码共享。随着专门为网页设计的JAVA APPLET的呈现,JAVA语言迅速在INTERNET上流行起来。过后的浏览器次要是NETSCAPE。当微软发现今天市场的主宰可能是浏览器而不是桌面零碎时,开始着手对NETSCAPE进行收买,在收购计划失败后微软倒退了本人的浏览器IE。过后的INTERNET须要一种语言,而JAVA适时的呈现了,因为它与C++的许多类似的语法,使得很多程序员转向了JAVA。而它的确具备很多劣势,以至于在98年秋,它的反对者微软在MSDN中都声称,JAVA是编写COM组件的最佳语言。随着JAVA一起呈现的还有LINUX操作系统和APACHE服务器。这三者的联结在服务器端的利用体现出弱小的威力,以至WINDOWS NT在企业级服务器市场受到了很大的冲击。
展望未来
当初,咱们能看到到还只是一个很凌乱的场面。而在将来,咱们将看到.NET的成熟,以及它和JAVA的交融。JAVA将持续放弃它的特点:跨平台的服务器端利用,如WAP服务器,或者是电信畛域的如JAIN,同时它在嵌入式零碎中将持续放弃它的劣势,象智能卡、移动电话、PDA等。而咱们还将看到.NET的成熟,当然这种成熟须要工夫,可能是相当长的一段时间,就好象当年JAVA成长那样。
非微软产品,包含服务器,桌面或是便携式设施的操作系统如Solaris, Linux和Palm OS的.NET接口。与JAVA外围的整合。SQL SERVER 或是ORACLE 等数据库产品中整合的VES 引擎。由中立的第三方开发的开放源码的,欠缺的.NET平台。能够预见到,微软将会资助一些开放源码的我的项目,以使.NET 向UNIX 平台扩大,而这将有助于一些开放源码组织缩小它们对JAVA的偏爱。