This article explains the approaches each of them take to solve the enterprise problem. It introduces different components of an enterprise application and how Microsoft pits against Java in deploying enterprise application. It touches upon the other factors like cost and ease of use that impact enterprise solutions.
Microsoft and Java community approach to solving business problems with different schools of thought:
To address enterprise deployment problems Java community has come up with a set of standards and specifications which come under Java 2 Enterprise Edition (J2EE) umbrella. J2EE is driven by Sun and supported by vendors like BEA Weblogic, IBM Websphere and JBoss
To address enterprise deployment problems Microsoft community has come up with a set of tools and products which come under Enterprise Application Development Platform umbrella. You can develop the enterprise components in any programming language. However as of today to take advantages of Windows platform, Microsoft services components has to be developed in C++.
Components of an enterprise application, how Microsoft pits against Java in deploying enterprise application?:
- Web application service: ASP.Net -> Java Server Faces
- Common interface to connect to database: ADO.Net -> JDBC
- Management services like transaction, security, object lifecycle (component management): COM+ -> EJB/JTS
- Messaging service: MSMQ -> JMS
- Directory service: ADSi -> JNDI
- Orchestration and integration (B2B and EAI) service: Biztalk -> JCA/PD4J
- Portlet service: MS Sharepoint server -> Java Portlet specification (JSR 168)
We categorize cost into,
- Product and tools cost for development
- Product and tools cost for deployment
- Implementation cost
Product and tools cost for development:
Eclipse IDE is one of the well known open source tool. It includes goodies like JSP Lombard editor, JDBC compliant DB client, code refactoring tool, check style tool to impose coding style across the products, ant integration tool, Junit integration tool, integration with CVS ,UML class modeler and the list goes on.
VS.Net is the IDE of choice to develop MS solutions. It just has an IDE. All the other add-ons which are supported by Eclipse are also available as add-ons in VS.Net but they incur cost. VS.Net-2005 does have all these add-ons but is very expensive.
J2EE: BEA Application server costs anywhere between $100k plus per CPU.
As you can see Microsoft enterprise solutions deployment cost is cheap compared to J2EE based solution.
Ease of use is very relative. For windows users Unix/Java are hard to understand for Unix users windows is difficult to use. Windows has maximum user base, so the perception is the deployment of enterprise solutions is easier in Windows platform. That being said, I don’t have any facts or figures to support them except the experience.
From the above discussion, for enterprise applications J2EE is a standard from Sun backed by vendors like BEA, IBM, JBoss and others. Microsoft addresses these using a set of products and tools. Java tools are not very expensive to develop, thanks the Eclipse, but product and tools for deployment cost vary from free in the case of JBoss to close to $300k if you use BEA Weblogic. Microsoft development tools are expensive, but the tools used in deployment costs are as low as $50k; most of the enterprise components are bundled with Windows Server 2003. I also feel that Microsoft has a clear edge over Java in implementation cost because of ease of deploy.
As an ending note, I haven’t seen a single enterprise deployment using Microsoft technologies in real world, so I cannot comment on how they pit against Java in factors like scalability, performance, throughput etc. I keep hearing that there are live deployments, but I don’t have any facts on this. Let me do some research and get back to you on this.
Similar discussions on this topic at The Server Side: