J2EE vs. Microsoft.NET
A comparison of building XML-based web services
Conclusions of the Paper:
The J2EE verses .NET battle will be the soap opera of the decade for geeks to watch. But there are
promises and realities about both platforms. For example, J2EE is a rather brilliant move on the vendors'
part, but should not be seen as an altruistic initiative. All vendors that participate in J2EE are after
financial gains, as well as an effective weapon against Microsoft. J2EE enables these vendors to
collaborate together and stand ground. Many of these vendors have undergone recent mergers and
acquisitions themselves, and so organizations must exercise good judgment when choosing such a
As far as Microsoft.NET, that is far from an altruistic initiative. It is a monopolistic initiative dressed in
altruism. Microsoft has been claiming that .NET is about open and interoperable web services, when in
reality Microsoft is already making their web services closed and proprietary. Microsoft will likely increase
the costs of their solutions if a monopoly can be achieved, and innovation will be slowed down
So what's a company like yours to do? Both platforms are useful, and both can lead you to the same
destination. Which platform is right for you? When deciding, we recommend you concentrate on the
larger business issues. Think about your existing developer skillsets, your existing systems, your existing
vendor relationships, and your customers. Those almost always drive the decision, not the minor features.
Arguments supporting both platforms
• Regardless of which platform you pick, new developers will need to be trained (Java training for
J2EE, OO training for .NET)
• You can build web services today using both platforms
• Both platforms offer a low system cost, such as jBoss/Linux/Cobalt for J2EE, or Windows/Win32
hardware for .NET.
• Both platforms offer a single-vendor solution.
• The scalability of both solutions are theoretically unlimited.
Arguments for .NET and against J2EE
• .NET has Microsoft's A-team marketing it
• .NET released their web services story before J2EE did, and thus has some mind-share
• .NET has a better story for shared context today than J2EE
• .NET has an awesome tool story with Visual Studio.NET
• .NET has a simpler programming model, enabling rank-and-file developers to be productive
without shooting themselves in the foot
• .NET gives you language neutrality when developing new eBusiness applications, whereas J2EE
makes you treat other languages as separate applications
• .NET benefits from being strongly interweaved with the underlying operating system
Arguments for J2EE and against .NET
• J2EE is being marketed by an entire industry
• J2EE is a proven platform, with a few new web services APIs. .NET is a rewrite and introduces
risk as with any first-generation technology
• Only J2EE lets you deploy web services today
• Existing J2EE code will translate into a J2EE web services system without major rewrites. Not
true for Windows DNA code ported to .NET.
• .NET web services are not interoperable with current industry standards. Their BizTalk
framework has proprietary SOAP extensions and does not support ebXML.
• J2EE is a more advanced programming model, appropriate for well-trained developers who want
to build more advanced object models and take advantage of performance features
• J2EE lets you take advantage of existing hardware you may have
• J2EE gives you platform neutrality, including Windows. You also get good (but not free)
portability. This isolates you from heterogeneous deployment environments.
• J2EE has a better legacy integration story through the Java Connector Architecture (JCA)
• J2EE lets you use any operating system you prefer, such as Windows, UNIX, or mainframe.
Developers can use the environment they are most productive in.
• J2EE lets you use Java, which is better than C# due to market-share and maturity. According to
Gartner, there are 2.5 million Java developers. IDC predicts this will grow to 4 million by 2003.
78% universities teach Java, and 50% of universities require Java.
We would not want to use any language other than C# or Java for development of new missioncritical
solutions, such as a hacked object-oriented version of C, VB, or COBOL.
• We are finding most ISVs and consulting companies going with J2EE because they cannot
control their customers' target platforms. We believe this application availability will result in
J2EE beginning to dominate more and more as time goes on.
In conclusion, while both platforms will have their own market-share, we feel most customers will reap
greater wins with J2EE. We feel the advantages outweigh those offered by Microsoft.NET. That is our
preferred architecture, and we stand behind it.