The debate whether .NET Development is better or Java Development is better continues unabated with fans of each technology pronouncing the decline of each other.
Java being the predecessor of all other programming languages is open source and on top of that is platform independent. Being platform independent has made it the preferred choice of amateurs and professionals alike. Being open source, Java API's can easily be accessed by developers unlike .NET which is proprietary software and which API's are not accessible. Java, being open source, users do not have to grapple with hefty license fees each year, something which is mandatory in case of proprietary software.
Java being a very old technological platform is being taught in universities for a number of years. Therefore, there is an abundance of talent when it comes to developing applications in Java. There is however a significant shortage of developers who are acquainted with the .Net platform in the developed world. You would need to offshore your application development work to a low cost location like India where you would find a significantly higher number of developers acquainted with .NET technologies.
Some developers are of the opinion that ASP. NET is just an improved version of JAVA and has been developed by overcoming shortings of Java. Supporters of .NET technologies claim that java is a language while .Net is language independent. Opting for .Net does not bind you to a single language as .Net supports multiple languages. It even supports Java as J # is very close to Java.
Another major advantage of using .Net is the ease with which it allows the exchange of data between various software applications. This occurs because the dot net platform allows different programs to exchange data via a common set of exchange formats, to read and write the same file formats and to use the same protocols. Such features make ASP.NET the preferred programming language for developing database driven websites and applications. .Net proves to be useful when applications stored on remote systems have to communicate with each other through standard internet protocols like XML, SOAP.
In my opinion, you should always develop applications on such a platform which does not get obsolete in the next five or even ten years. In simple words, you should avoid the upgrade treadmill offered by proprietary software's who ask you to upgrade every few years.