J2EE vs. Microsoft.NET(5)

串口、COM、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE 一文搞定,赶紧收藏吧 阅读详情
V. Comparative Analysis 

--------------------------------------------------------------------------------

Time-to-Market Features 

When developing a commerce solution in today's marketplace, a few months of time is an eternity. Missing a small window of opportunity is the difference between a corporation that is first to market, and a corporation that must play catch-up for years. 

One way to speed time to market is to choose a Web services platform that allows rapid application development. This enables developers to write and maintain code quickly, lowering development time. 

Both Sun J2EE and Microsoft .NET provide runtime mechanisms that insulate software developers from particular dependencies. In addition to a web service-oriented XML layer of indirection between platforms, languages, and enterprise architectures, Sun J2EE and .NET offer language-level intermediation via the Java Runtime Environment (JRE) and the Common Language Runtime (CLR) respectively. 

J2EE offers several features that accelerate time-to-market which are not found in .NET. For example, state management services enable developers to write less code and not worry about managing state, resulting in a higher degree of rapid application development. State management services enable you to build components that hold state. Persistence services (entity beans) enable developers to write applications without coding data access logic, resulting in leaner, database-independent applications that are easier to build and maintain. Programmatic transactions allow you to have greater transactional control. And custom tags are extremely powerful, and empower developers and web designers to easily collaborate. 

In addition to these features that enable rapid application development, there are several features that specific vendors offer which aid time-to-market, such as business process management, E-Commerce components, XML-based legacy integration, and enhanced B2B collaboration. A warning: Customers who elect to leverage these features will sacrifice portability. This is a consequence of J2EE architecture not being all things to all people. However, it should be noted that even after taking advantage of such proprietary features, there would still be a great deal more portability in the end solution than the .NET alternative. 

Microsoft.NET offers a variety of time-to-market features not found in J2EE as well. Most notably, ASP.NET is independent of client device, and allows for user interfaces to be rendered to alternative user interfaces without rewriting code. Microsoft also offers Queued Components which are superior to MessageDriven Beans. It should be noted here that Microsoft has tried to simplify server-side programming greatly by removing support for features found in traditional enterprise applications, such as stateful servers and simple transactions. If developers need to go outside this box, their code must be made to be non-managed and reside outside the .NET Framework rather than take advantage of it. Microsoft also provides business process management and E-Commerce capabilities, which are available in some J2EE implementations but not all. 

In conclusion, we feel the ability to achieve rapid application development offered by both J2EE and .NET is definitely not equal. It is, however, comparable. The feature differences are minor and it is very difficult to make a compelling argument either way. We do not recommend organizations make their platform decision based upon them. There are larger business issues at hand that dictate the platform choice. 


Single-Vendor Solution 

When building web services, in general you should always prefer to have a single-vendor solution. A single vendor solution is usually more reliable, interoperable, and less error-prone than a two-vendor bridged solution. 

One of J2EE's strengths is that it has spawned a wide variety of tools, products, and applications in the marketplace, which provide more functionality in total than any one vendor could ever provide. However, this strength is also a weakness. J2EE tools are often-times not interoperable, due to imperfections in portability. This limits your ability to mix and match tools without substantial low-level hacking. With lower-end J2EE implementations, you need to mix and match to get a complete solution, and this is the tradeoff when choosing a less complete package. Larger vendors, such as IBM, Oracle, BEA, and iPlanet, each offer a complete web services solution. 

.NET provides a fairly complete solution from a single vendor--Microsoft. This solution may lack some of the higher end features that J2EE solutions offer, but in general, the complete web services vision that Microsoft will be providing is equal in scope to that of a larger J2EE vendor. 

Another way to look at a single-vendor solution is from a legacy perspective. Many legacy systems are written by J2EE vendors, such as IBM or BEA. J2EE offers a single-vendor solution from the legacy integration perspective, since you can re-use existing relationships with those vendors. A J2EE solution would therefore be a single-vendor solution, since you can stay with that legacy system vendor rather than inject a new vendor such as Microsoft. For users with existing Microsoft-based systems, the reverse argument applies. 


Support for Existing Systems 

Most large corporations have existing code written in a variety of languages, and have a number of legacy systems, such as CICS/COBOL, C++, SAP R/3, and Siebel. It is vital that corporations be given an efficient, rapid path to preserve and reuse these investments. After all, it is likely that businesses will have neither the funds nor the time to reinvent all existing systems. This legacy integration often is one of the most challenging (if not the most challenging) tasks to overcome when building a web service. 

There are several ways to achieve legacy integration using J2EE, including 

The Java Message Service (JMS) to integrate with existing messaging systems 
Web services to integrate with any system 
CORBA for interfacing with code written in other languages that may exist on remote machines. 
JNI for loading native libraries and calling them locally. 
But by far, the most important part of the J2EE vision for integration is the J2EE Connector Architecture (JCA). The JCA is a specification for plugging in resource adapters that understand how to communicate with existing systems, such as SAP R/3, CICS/COBOL, Siebel, and so-on. If such adapters are not available, you can write your own adapter. These adapters are reusable in any container that supports the JCA. The major vendors of existing systems are bought into the JCA. 

.NET also offers legacy integration through the Host Integration Server 2000. COM Transaction Integrator (COM TI) can be used for collaborating transactions across mainframe systems. Microsoft Message Queue (MSMQ) can integrate with legacy systems built using IBM MQSeries. Finally, BizTalk Server 2000 can be used to integrate with systems based on B2B protocols, such as Electronic Data Interchange (EDI) (the reader should note, however, that BizTalk does not serve as an access point to a proprietary network on which EDI takes place). 

In conclusion, we believe that the legacy integration features offered by J2EE are superior to those offered by .NET. The JCA market is producing a marketplace of adapters that will greatly ease enterprise application integration. Integration with packaged applications and legacy systems will become much easier--imagine integrating with a system such as Siebel, Oracle, or SAP without ever leaving the Java programming environment. There is no analog to this in the Microsoft domain; rather, there is limited connectivity to select systems provided off-the-shelf through the Host Integration Server. 


Market Perception 

When comparing two platforms, your first instinct is probably to compare the technologies. The unfortunate reality is that good technology rarely succeeds in the marketplace because it's good technology. Usually it's the technology with the best marketing that wins. 

J2EE is an extremely well-marketed platform because it is being marketed by an entire industry of 50+ assorted vendors. This network of interdependent businesses form a virtual marketing machine, and the result is a fantastic market perception for J2EE. 

.NET's marketing strength stems from the fact that Microsoft knows how to market a platform. They have put their "A" team on marketing .NET, as is apparent in the industry hype surrounding the platform. This is a powerful force not to be reckoned with. Microsoft's advantage is also that it announced it's web services strategy before the J2EE players, which gave it market perception. So in the marketing front, we give the nod to Microsoft for doing the best job in hyping their platform--so far. 


Maturity of Platform 

Organizations that adopt a web services platform must consider the maturity of the underlying platform. A less mature, earlier-generation platform is more prone to errors and problems. 

J2EE is a veneer atop existing J2EE solutions. J2EE deployments are alive and healthy, running a variety of mission-critical business problems today. However, when looking past the surface, it should be noted that there are some identifiable areas of risk where J2EE lacks maturity: 

The automatic persistence provided EJB is still immature 
The Java Connector Architecture (JCA) is new. 
All web service support is new. 
For Microsoft.NET, the story is a bit different. Some of .NET is based on Windows DNA, which also runs a variety of mission-critical web sites today and enjoys success. However: 

With the new CLR, a good portion of the underlying .NET platform has been substantially rewritten. Indeed, the platform itself is currently only available in a beta version. 
C# is new. 
All web service support is new. 
In conclusion, we must find that J2EE is the more mature platform. It is true that certain new features in J2EE are new and risky. However, the very underlying fabric of .NET, is an overhauled rewrite, and the entire C# language is brand new. This represents enormous risk compared to the new J2EE features. This best thing about .NET is that it removes the dependency on the COM Registry -- .NET will do away with DLL Hell. But the worst thing about .NET is that it tosses out the existing infrastructure. We recommend that the risk averse take a 'wait and see' approach with first-generation software such as this. 



Language Support 

J2EE promotes Java-centric computing, and as such all components deployed into a J2EE deployment (such as EJB components and servlets) must be written in the Java language. To use J2EE, you must commit to coding at least some of your eBusiness systems using the Java programming language. Other languages can be bridged into a J2EE solution through web services, CORBA, JNI, or the JCA, as previously mentioned. However, these languages cannot be intermixed with Java code. In theory, JVM bytecode is language-neutral, however in practice, this bytecode is only used with Java. 

By way of comparison, .NET supports development in any language that Microsoft's tools support due to the new CLR. With the exception of Java, all major languages will be supported. Microsoft has also recently introduced its new C# language which is equivalent (with the exception of portability) to Java and is also available as a programming language within the Visual Studio.NET environment. All languages supported by the CLR are interoperable in that all such languages, once translated to IL, are now effectively a “common” language. A single .NET component can therefore be written in several languages. 

The multiple language support that Microsoft has introduced with the CLR is an exciting innovation for businesses. It is clearly a feature advantage that .NET has over J2EE. But is the CLR a business advantage for you? This is a more interesting discussion. We are a bit concerned that the CLR may represent a poor design choice for you if more than one language is used. This is for the following reasons: 

Risk. Many existing systems are internally convoluted. Disrupting such existing systems is a risky proposition, since knowledgeable engineers, original source code, and a general understanding of the existing system are often-times unavailable. The old adage, "if it ain't broke, don't fix it" applies here. 


Maintainability. We speculate that a combination of languages running in the CLR may lead to a mess of combination spaghetti code that is very difficult to maintain. If you have an application written in multiple languages, then to fully develop, debug, maintain, and understand that application, you will need experts in different languages. The need to maintain code written in several languages equates to an increase in developer training expenditures which contributes further to an increased total cost of ownership. 

Knowledge building. With combination language code, your developers are unable to share best practices. While individual productivity may increase, communication breaks down, and team productivity decreases. 

Skills transfer. While developers using different languages may have very quickly coded a .NET system using VB.NET and C#, what happens if the new C# developers leave your organization? You have two choices. Train your VB.NET developers to understand and write code with C#, or hire other C# developers who know nothing about your code base. The resulting lack in productivity equates to a reduced time to market and a higher total cost of ownership. 
In most cases, we feel that it's much better design to standardize on a single language, and to treat legacy systems as legacy systems and integrate with them by calling them through legacy APIs, which can be achieved using either J2EE or .NET. 

We do feel the CLR still adds significant value. The value is that a new eBusiness application can be written in a single language of choice other than Java. This is useful for organizations that are not ready to embrace Java. However, again we must provide words of caution. 

It will not be seamless to transition existing developers from their familiar language into productive .NET developers. Procedural languages such as COBOL and VB are being rewritten for .NET to be object-oriented. Teaching developers object-oriented programming is much more of a stepping stone than understanding syntactical rules. 
Languages such as COBOL or VB were never intended to be object-oriented. Legacy code will not seamlessly transition into .NET. The resulting code is forever bound to .NET and can never be taken from its .NET home. 
We question the general wisdom in reinvesting in outdated technologies, such as COBOL, with new eBusiness or web services initiatives. 
In summary, there are pros and cons to both approaches to language support. Use the approach that best suits your business needs, but at least be aware of the consequences of your decision. 

2025年CSP-J复赛真题及题解:T4 多边形(polygon) 阅读详情

相关推荐

UG/NX二次开发实战:用Python脚本批量更新100个零件参数,解放你的双手

本文详细介绍了如何利用NXOpen Python API进行UG/NX二次开发,实现批量更新100个零件参数的自动化流程。通过环境配置、框架设计、核心代码实现及性能优化,帮助工程师高效完成参数化设计任务,显著提升工作效率。

weixin_28694169的博客 276

J2EE vs .NET

  前言:    当J2EE出来的时候,我觉得很好,对J2EE的理解是一套Web开发的API标准. 这个标准由Sun公司负责制定,其他公司如IBM,BEA等去实现. 以至于后来.NET出来时对它有一些抵触, 最近对.net的资料进一步的接触,才知道原来他们是各有所长.l         共同点:1.      都是基于web应用的开发.2.      都是解释性的语言3.      对象的销毁都基

riding的专栏 2042

极化码理论及算法研究4-巴氏参数、GA算法以及matlab仿真

目录 (如要找其他内容,欢迎访问我的主页寻找) #前言 #极化码概述 #极化码定义 #极化码编码 #极化码译码 #5G标准中极化码的编译码概述 #5G标准中极化码的编码 #5G标准中极化码的译码 #总结 极化码编码 ...

1万+

J2EE与.NET平台之间的差别

本文节选自美国ObjectWatch公司的一篇文章《J2EE vs .NET》文章由他人翻译,本人只是转载。如果对原文感兴趣,可以参考http://www.objectwatch.com/our_position.htmJ2EE与.NET平台之间的差别你可以看到在J2EE与.NET平台技术之间由很大的重叠。但是,如何在它们之间进行选择呢?在本节中,笔者将讨论我所看到的主要差别。 开发商

zcheny的专栏 1083

轻量级NAS的隐秘战场:比特米盒CumeBox2与CasaOS的生态融合实践

本文探讨了比特米盒CumeBox2轻量级NAS设备与CasaOS操作系统的生态融合实践。通过硬件选型、系统部署、性能优化和应用场景分析,展示了如何将CumeBox2与CasaOS深度整合,打造经济实用的家庭数据管理中心,特别适合入门级用户和小型办公环境。

rl6adventurer的博客 895

偏最小二乘结构方程(PLS-SEM)_TomatoSCI分析日记

①模型整体拟合指标(Goodness-of-Fit, GOF),这个可以看做整体的R方了,上限是1;②指标载荷的具体值;然而,当数据中包含潜变量(即由多个观测指标组合而成的综合概念)时,贝叶斯结构方程不太适用。指标过少(1-2 个)会削弱潜变量的解释力,而指标过多可能增加噪声,影响模型稳定性。如果指标较多,可考虑进一步划分潜变量,但应确保每个指标有意义。掌握这两类方法后,在处理多变量、因果或路径分析研究时,可以根据数据特点与研究需求灵活选择。对于一般的多变量研究,这两类结构方程均为常用且有效的分析方案。

qq_44684643的博客 2011

J2EE VS .NET

优快云 - 文档中心 - 其他开发语言 阅读:196   评论: 0    参与评论 标题  J2EE vs .NET     选择自 riding 的 Blog 关键字  J2EE vs .NET出处    前言:     当J2EE出来的时候,我觉得很好,对J2EE

大家学-卢卫湘 942

Splunk CVE-2018-11409认证绕过漏洞深度解析

Splunk作为主流企业级日志分析平台,其Web管理接口的认证机制直接关系到整个安全运营体系的可信边界。CVE-2018-11409本质上是REST API路由层会话校验缺失引发的未授权访问问题,根源在于`/en-US/splunkd/__raw/`路径绕过了splunkweb与splunkd之间的信任链验证,导致配置文件、用户哈希、App源码等敏感信息明文泄露。该漏洞凸显了Web接口权限模型设计失守的风险,尤其在默认配置未加固、HTTPS未启用、初始密码未修改的生产环境中危害急剧放大。结合vulfocus

weixin_30875157的博客 599

Java vs .NET,我该选择什么?

写下这个标题后,一阵心酸。出道太晚了,时代的车轮在高速前行,我却远远地看着,追之不及,惟叹息耳。  唉,年华已逝,逝者如斯啊。如果我还是一个学生,该有多好,可以自由选择,甚至多选。学习.NET已两个星期了。然而当周一接到福建那边招标文件的时候,我突然莫名地懊恼了整整一天。招标文件要求UNIX系统、J2EE架构、Oracle数据库的。我很愤怒。为什么?.NET真的只适合于中小型系统?是否干脆就象多数

下里巴人的专栏 3089

UE4打包为Framework库嵌入iOS原生工程

UE4打包为Framework库嵌入iOS原生工程

tangfuling1991的博客 1294

Python全栈入门到实战【基础篇 04】核心基础:变量与4种基础数据类型(int/float/str/bool)

本文介绍了Python编程中的变量和四种基础数据类型,作为后续所有语法的入门前提。变量是数据的“容器”,解决数据复用问题,而数据类型决定数据能进行的操作。文章详细讲解了变量的定义语法、命名规则(强制语法和推荐风格)、赋值与修改原理,并通过实操示例展示其应用场景。正确使用变量可以提升代码复用性、简化修改并增强可读性,是编程效率的核心原则。掌握这些基础知识能避免90%的新手语法错误,为学习更复杂的Python语法打下坚实基础。

那些看似不起波澜的日复一日,会在某天让你看到坚持的意义 4318

微软-最大的奸商(ASP.NET)

想起以前刚进SOVO的时候,我就面临了技术的选择。是选择J2EE还是ASP.NET呢?对于什么都不懂的我,其实当时就是被选择。当时,我被调去了学习ASP.NET,我模糊地感觉到,J2EE很深奥和出名,ASP.NET很臃肿。 从第一个项目做学校外网的美工,到做学院的视频播放系统,再到做学院的公寓管理系统,到现在做公寓管理系统的第二版。我渐渐对ASP.NET有了...

bajian7541的博客 186

Android面试指南及参考答案

【摘要】LesPark招聘Android开发工程师,要求3年以上经验,负责客户端功能开发与优化。岗位需掌握Java、多线程、网络编程(TCP/UDP/HTTP)及性能调试工具。面试重点考察:1)核心技术如网络协议选择(TCP可靠消息/UDP实时音视频)、内存泄漏分析;2)业务能力如图片懒加载三级缓存设计、启动速度优化案例;3)高阶系统原理如插件化框架设计;4)行为问题应对策略。建议候选人准备并发编程、JVM差异等深度知识,并量化项目优化成果,尤其关注社交应用相关的图片处理、实时通信等场景题。

郑伟强dev的专栏 804

关于.NET VS JavaEE平台争论的沉思录

至于ORM,.NET确实也有NH,iBatis.NET等产品,但最新的版本总是java得优先出来,.NET的版本都是感觉是没妈的孩子,话又说回来,真正把HN,iBatis.NET的用的好的有多少呢?.NET圈内好像有个不成文的约定,所有的技术或组件,优先使用微软提供的,微软只要有,那就是最好的,就一定要用。基于unix的HPC服务器也是很多年前就有了,而微软的HPC也就这两年的事,还没有怎么有大型的应用,据说有些HPC已经部署在华尔街的投行了,亚洲最快的服务器“魔方”也是用的微软的HPC。

bkYovXq8B的博客 263

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Java vs C# —— 微软DotNet平台升温

计算机世界网微软.Net平台升温■ 本报记者 李建平在所谓的平台争夺战中,微软.NET与J2EE等平台间的竞争一直是业界关注的焦点之一。为了吸引更多用户转向自己的平台,两大平台支持者均使出了浑身解数。 那么,现在谁占了上风?Gartner的调查显示,.Net企业用户已由去年7月的33%增长到今年3月的37%,而J2EE企业用户则由34%下降到27%。同时,在被调查的大型企业中,有26%将自己的系统

饮马流花河 1130

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

JavaEE与.NET技术选型:企业级开发实战对比

在企业级开发领域,技术选型是架构设计的核心环节,涉及技术生态、开发效率和业务适配性等多维考量。JavaEE(Jakarta EE)以其开放标准和庞大的中间件生态著称,特别适合需要跨厂商协作的关键业务系统,如银行核心系统和电信计费平台。而.NET(.NET Core/.NET 5+)则以高度集成的工具链和开发效率见长,尤其适合中小型项目和快速迭代场景。云原生时代,两者的模块化设计和性能表现各有千秋,JavaEE通过Spring Boot和MicroProfile实现轻量级部署,而.NET原生支持Docker和

weixin_30225755的博客 198

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

.NET vs. J2EE:谁与争锋?-[优快云]

2005年,开发平台可谓热闹非凡,重量级的软件公司纷纷推出新的开发平台和开发工具。主打.NET的微软公司在2005年第4季度,隆重推出了酝酿已久的Visual Studio 2005及其相关的软件。其发布活动将在全球90多个国家...

congbi2055的博客 175

Java vs. .NET程序员的困惑

近日看到一则新闻,OdinJobs.com最近做了一项调查,就San Francisco地区J2EE和.NET的就业市场以及薪资做了比较,从这两个技术的平均薪资来看,在Architect/Lead角色中.NET的平均薪资略高于Java/J2EE,而在Developer角色方面,Java/J2EE的平均薪资更高一些。(http://news.csdn.net/n/20081209/1216...

187

Java vs C# —— J2EE与.NET平台关于电子企业的两种设想(4)

J2EE体系结构与.NET平台相比,Sun公司的标准定义的J2EE体系结构有很少可以讨论的空间,因为就没有什么可讨论的。如果一个人注意某个具体开发商的产品,如IBM公司的WebSphere,那么就会看到其技术的最大的一部分是WebSphere专用的。比较所有开发商对J2EE的具体改进,已经超出了本文的范围,在我的经验中,大多数对J2EE作为一个平台感兴趣的公司对该标准的可移值性感兴趣。任何对可

饮马流花河 723

Microsoft Tech-Ed 2004 参加感受 之(二)

因为个人的兴趣主要在协作技术和项目开发管理,所以听的课大致分为两部份 (1) 一些有关SharePoint,Exchange,VS.NET 2k5之类的课程。 (2) 有关微软解决方案框架MSF,软件测试,项目管理之类的课程。 多多少少有些收获和心得,以流水帐的方式如下: Ÿ SharePoint2k3、Exchange2k3、InfoP...

dianpi8337的博客 191

Java vs C# —— J2EE与.NET平台关于电子企业的两种设想(1)

  Java 2企业版(J2EE) VS.NET平台关于电子企业的两种设想 Roger SessionsObjectWatch, Inc.March 28, 2001 6:59 AM     本白皮书版权归德克萨斯奥斯汀ObjectWatch有限责任公司所有。保留所有权利。禁止进行未授权的复制或再次发布。要获得复制或再次发布许可,请联系:

饮马流花河 872

J2EE与.NET平台关于电子企业的两种设想(1)

     Java 2企业版(J2EE) VS.NET平台关于电子企业的两种设想 Roger SessionsObjectWatch, Inc.March 28, 2001 6:59 AM     本白皮书版权归德克萨斯奥斯汀ObjectWatch有限责任公司所有。保留所有权利。禁止进行未授权的复制或再次发布。要获得复制或再次

netyfhome的专栏 1140

.Net vs. J2EE-----面对SOA的荒谬与误解

.NET vs. J2EE ————面对SOA的荒谬与误解 引子 n .Net与J2EE在金融行业愈来愈呈势均力敌之势,二者均宣称提供了不同于对方的、听起来很迷人的个性化应用服务。 n 理性的IT执行官们已经深刻的认识到这样的一个事实:无论是.Net还是J2EE,将来必将在SOA理念的应用中占有各自的一席之地。 n Microsoft的.Net技术在今天的金融市场面前,显得商机...

爱.NET 130
上一篇: J2EE vs. Microsoft.NET(4)
下一篇: J2EE vs. Microsoft.NET(6)
programlover
博客等级 码龄26年 1粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值