经常有客户问我,到底用微软平台还是Java 平台的问题。其实这是一个永远没有结果的悖论,只能陷入空对空的空谈。不过如果抛弃个人喜好与特定客户的历史原因来客观地考虑,二者之间的确是微软平台的优势更加明显一些。 <!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:PunctuationKerning/> <w:DrawingGridVerticalSpacing>7.8 磅</w:DrawingGridVerticalSpacing> <w:DisplayHorizontalDrawingGridEvery>0</w:DisplayHorizontalDrawingGridEvery> <w:DisplayVerticalDrawingGridEvery>2</w:DisplayVerticalDrawingGridEvery> <w:ValidateAgainstSchemas/> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:Compatibility> <w:SpaceForUL/> <w:BalanceSingleByteDoubleByteWidth/> <w:DoNotLeaveBackslashAlone/> <w:ULTrailSpace/> <w:DoNotExpandShiftReturn/> <w:AdjustLineHeightInTable/> <w:BreakWrappedTables/> <w:SnapToGridInCell/> <w:WrapTextWithPunct/> <w:UseAsianBreakRules/> <w:DontGrowAutofit/> <w:UseFELayout/> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!-- [if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" LatentStyleCount="156"> </w:LatentStyles> </xml><![endif]--><!-- [if !mso]> < classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui> </object> <mce:style><!-- st1\:*{behavior:url(#ieooui) } --> <!-- [endif]--> <!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!-- [endif]-->
转载自: http://blog.youkuaiyun.com/gongfs/archive/2009/08/26/4487278.aspx
|
.Net |
J2EE |
描述 |
技术架构 |
技术架构基本相似 J 2EE 支持多平台,单一语言; .Net 支持多语言,单一平台。 J2EE是多家公司维护一个产品; .Net是一家公司维护多个产品。 |
ü 二者都支持多层分布式应用的标准架构。 ü .NET Framework 和Java 都有一个受控的运行时环境,它不但将源代码转换成中间语言,而且将这些中间语言编译成本地的可执行代码。两个环境都支持碎片整理、动态类加载和异常处理等。 ü .NET 和Java 都倡导和支持基于组件的设计、多态性、继承和接口、反射、泛型等,也提供基础类库来执行I/O 、XML 处理、带有连接池的数据库接入、文本操作与网页脚本编写。 ü .NET Framework 提供了一个跨服务器、PC 和其它设备的一致的、面向组件的模型。而J2EE 提供EJB 作为服务器端的组件模型。 ü J2EE 以Java 语言为主,但是支持多个操作系统平台;.Net 则基于Windows 平台,但是支持多种语言。 | |
稳定性 |
强 |
强 |
ü 没有明显的证据表明哪一种应用系统更加稳定。 ü 在Windows 操作系统上,.Net 应用由于提供了原生态支持,理论上反而更加稳定。 |
标准一致性 |
一致 |
不完全一致 |
ü .Net 被微软独家支持,有更好的一致性和兼容性; ü J2EE 被不同的厂家支持,没有两个厂家的标准是一致的。 |
易用性 |
好 |
相对差 |
ü Microsoft 应用良好的应用体验和成为业界标准的操作模式具有最佳的易用性。 |
可管理性 |
好 |
差 |
ü 微软公司提供了从设计开发、测试部署、运行维护一揽子的产品解决方案;可管理性好。 ü Java 则缺少这样一致性的官方产品线。 |
开发效率 |
高 |
相对低 |
ü Visual Studio 专门针对.Net 量身定制,具有大量的组件和开发框架,开发模式统一。 ü Java 则被多家公司支持,开发模式不一致,开发代码量大。 ü Visual Studio 作为最佳开发工具赢得了一系列的大奖。评估过Visual Studio 和其竞争对手的客户都说,相对于最好的Java 工具Eclipse ,Visual Studio 开发效率更高。 ü Microsoft 的产品线丰富,几乎遍及每一个角落,而且所有产品都可以相互集成,可以快速整合一个应用。 |
运行效率 |
高 |
低 |
ü Java 应用运行在虚拟机JVM 上。 ü .Net 应用运行在.Net Framework 上,而.Net Framework 是Windows操作系统的一部分。 |
实施成本 |
低 |
高 |
ü Windows Server 的许可证比三个遵从J2EE 的商业服务器中的任何一个许可都便宜很多。这个比率是12 比1 。 ü .NET Framework 开发工具的费用也更加低廉。Visual Studio .NET 是.NET 的整合开发工具,它的许可费用大大低于商业化的J2EE 销售商制定的开发工具的费用。 ü .Net 开发效率高导致开发成本低。 ü 使用.NET 维护费用更低。专家认为许可费用并不是一个项目的最大开支。典型的软件开发和维护占项目总费用的50-80% 。Middleware 公司研究表明,在.NET 上一个给定的应用程序开发相对于J2EE ,只需要1/3 的代码。代码越少就意味着维护成本更低。 |
用户体验 |
好 |
差 |
ü .Net Framework 提供了专门针对用户体验的WPF 组件,用户体验十分丰富。 ü Java 缺乏面向用户体验的开发支持。 |