Well, this blog is not about which technology is better nor about listing the advantages / dis-advantages of each one.
More often we face situations where we have to propose solutions to our clients and during that time we have to decide on the technology platform for our solution. How do we determine whether it’s Java or Microsoft .NET? What are some of the critical factors which will make us lean either way?
Below are few factors which will influence our decision:
1. Total Cost of Ownership [TCO]
The total cost of ownership of the product should take into account the licensing cost of the Operating system, tools, frameworks and any other 3rd party software you are going to use in building the product. As we know, Java is free and has a rich set of open source tools / libraries.
On the other hand .Net applications run on Windows platform. There is a licensing cost involved in using Windows & any of the tools like Visual studio etc.
So if the client is tight on budget then Java will score over .Net.
2. Integration with Microsoft Products
The solution you are proposing, if it requires any integration with Microsoft products like Exchange server, Active Directory [ADS] or Biz talk servers etc. then the choice of technology could be .Net. It is easier to integrate .Net application with other Microsoft products.
On the other hand Java can be integrated with Microsoft products but we may have to rely on 3rd party libraries and we may run into many issues during integration.
So if the solution requires integration with Microsoft products then .NET scores over Java.
3. Vendor Lock-in
As we know, .Net runs on Microsoft Windows platform and Java is platform agnostic. Java applications can run Windows, Linux or UNIX as well as different application servers like JBoss, WebLogic, and WebSphere etc.
There will be a vendor lock-in to Microsoft for .Net applications and the future direction of .Net will be determined by Microsoft. On the other hand Java is defined through a community process and the same application can be ported to different platforms with minimal effort.
So, if the client does not have issues with vendor lock-in then both Java & .Net will score but vendor lock-in is an issue then Java will score over .Net.
Apart from the above factors, there are other factors like customer preference, skill set of our development team etc. needs to be considered. Properly weighing all these factors will enable us to choose either Java or .Net.