ASP.NET网站制作之JAVA 和.NET在平安功能的对照仓酷云
有理由相信是能提供更出色的性能。很多平台无法支持复杂的编译器,因此需要二次编译来减少本地编译器的复杂度。当然可能做不到net网页编程编译器那么简易。本文依据DenisPiliptchouk的文章翻译、摘录而来,有些术语翻译不太好了解,还请参考原文。第一部分平安设置和代码封装
平安设置
两个平台的设置都是经由过程XML或纯文本文件,两个平台最年夜的区分在于处置平安设置系统的体例分歧。
在.NET平台,有图形接口和命令行二种体例来修正平安设置参数。Mscorcfg.msc是图形接口体例,Caspol.exe供应了命令行体例,合用于批处置或设置文本。
JAVA平台只供应了图形接口的工具policytool.exe。和.NET分歧的是,它的方针对象(设置文件)的名字和地位不是流动的。
.NET界说了分歧局限的平安设置文件:体系局限,本机局限,本用户局限。在设置有抵触时,准绳上小局限的参数有优先权。
JAVA和J2EE的中心设置文件都保留在流动地位,但扩大设置文件随厂家分歧而分歧。
代码封装:查验
JAVA和.NET的CommonLibraryRuntime(CLR)都实施内存平安或范例平安的回护机制,在这些平台开辟的使用的平安性也是能够查验的。他们的完成机制有很年夜的分歧。
在.NET,CLR老是实行编译好的代码,它不注释代码。可是在两头言语(IL)被编译之前,编译器会有考证和查验的步骤。第一步是反省文件的布局和代码完全性;第二步包含一些扩大的反省,内存平安、仓库跟踪、数据流剖析、范例反省等。在运转阶段,由VES(VirtualExecutionSystem)来卖力平安性反省和堕落不测情形处置。
在JAVA平台,JAVA假造机(JVM)卖力类的载进、链接、查验和实行。关于已编译和优化的代码,JVM也用二个无前提挪用仓库来保存最后的字节代码信息。
小结:和.NET分歧,JVM的默许设置是不查验当地代码。别的,JVM保存最后的字节代码供运转时反省,而.NET把静态剖析和运转时拔出查验代码相分离。
代码封装:使用断绝
在.NET,域断绝创建在内存平安机制的基本上,分歧的域不克不及间接会见相互的地点空间,只能经由过程.NET远程通讯机制会见。
在JAVA平台,使用断绝是经由过程ClassLoaders和ProtectionDomains相分离来完成的,平安类加载是JVM平安机制的基石。
小结:.NET的AppDomains就象操纵体系的历程一样,利用起来比JAVA的ProtectionDomains更间接、简单一些。
代码封装:言语特性
两个平台基础上差未几,.NET在天真性上略微好一点。
总结:
JAVA在平安设置上有较多的上风,.NET在代码封装的选择性和易用性好一些。
第二部分加密和通讯
加密法:概论
.NET的加密法次要基于CryptoAPI和相干扩大。年夜多半有关加密的类都在System.security.Cryptography,X509Centificates和XML中。.NET使用基于流的模子来完成加密传输,一切的算法都被默许为最高的平安级别。.NET也同意用户本人在machine.config中界说本人的算法。
JAVA平台的加密算法分二个部分:JavaCryptographyArchitecture(JCA)和JavaCryptographyExtension(JCE)。JCE的出口遭到有关功令的限定。假如要利用用户本人的加密算法,必需失掉认证机构(SUN或IBM)的认证。
加密法:算法
.NET次要供应了上面几年夜类加密算法:非对称算法、HASH算法、对称算法、随机数天生法。
JAVA供应的加密算法更多,可是较少第三方厂商能够在JAVA中供应本人的算法。
平安通讯
SSL已是现实的传输平安的产业尺度了。JAVA和.NET都撑持最新版本SSL3.0。
平安通讯:平台
.NET只在基于IIS的使用中利用SSL来回护HTTP传输,关于非IIS使用,.NET不克不及回护传输中的数据。
在JAVA中,JSSE(JavaSecureSocketExtensions)供应了平台级的服务,包管基于TCP/IP的通讯平安。
除IIS,.NET没有供应任何别的平台级的通讯回护的尺度计划,可是JAVA在这方面供应了全套的办理计划。
平安通讯:使用
.NET经由过程WSA(WebServiceArchitecture)和WSE(WebServiceExtension)包来供应最新的WEB服务平安包管,JAVA今朝还没有供应这方面的撑持。
总结:在加密办法上,JAVA和.NET基础没有太年夜的不同;在通讯回护方面,JAVA比.NET供应了更多的选择计划;可是在WEB服务平安性上,JAVA分明比.NET掉队一些。
我之所以想学。NET,是因为一直觉的BILLGATES好厉害,希望有一天能去微软,虽然现在还距离遥远,呵呵:) 使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。 众所周知,Windows以易用而出名,也因此占据不少的服务器市场。 ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。 比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。 业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。 由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。 Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。 ASP.NET可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括MicrosoftVisualStudio.NET)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。微软为ASP.net设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。 是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。 它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。 ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。 ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。 市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。 现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。 我觉得什么语言,精通就好,你要做的就是比其他80%的人都厉害,你就能得到只有20%的人才能得到的高薪。 ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。 弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
页:
[1]