Java
Java is an open source implementation of the Java Platform, developed by Sun Microsystem (bought over by Oracle). Its Java programming language is a lightweight programming language that can be run on any operating systems such as UNIX, Linux, Windows and etc. with the help of JVM (Java Virtual Machine). Source programs that are written in Java, is first compiled to machine independent code, called bytecode. During run time, the virtual machine reads the bytecode and executes it by translating it to target machine instructions for the operating system.
.NET
.NET is a software framework developed by Microsoft. It runs primarily on Microsoft Windows Operating System. The .NET framework consists of two key components: .NET Framework Class Library, and Common Language Runtime (CLR). The .NET Framework Class library has a collection of programming languages that are capable of developing different types of software applications such as desktop, server, and mobile applications. These include support for simple data types, I/O functionalities, database support, Graphical User Interfaces (GUIs) and etc. Common Language Runtime provides support for Microsoft Intermediate Language (MSIL) code execution, by providing features such as code checking and compilation.
After having a basic understanding of each of them, I will be providing a comparison between them. I will first compare them based on their similarity, then follow by their difference in terms of developing different types of software application such as desktop, web and mobile applications.
Similarities
Both are capable of developing quality and high-end application software.
Both have programming languages that serve different types of software application needs.
Both have a collection of APIs for development purposes.
Differences in Desktop Application Development
Java AWT (Abstract Window Toolkit) and Swing Library are used to develop Java Desktop Application. To develop a more interactive Desktop Application like Adobe Flash, developers may use JavaFX.
.NET has a popular desktop development platform that uses the Windows Forms, Windows Presentation Foundation, and Silverlight.
Both platforms, Java and.NET provides drag and drop features for implementing a desktop application in their Integrated Development Environment (IDE)
Differences in Web Application Development
Competition between the use of Java Enterprise Edition and Microsoft ASP.NET in developing dynamic web application software.
JEE mainly uses Apache Tomcat as their application server and Microsoft ASP.NET uses Internet Information Services (IIS).
The difference in Mobile Application Development
Competition between Java Mobile Edition (Java ME) and.NET Compact Framework.