Java is a platform-free and object-dependent programming language. At the heart of Java technology rests the Java virtual machine, which is the abstract computer on which every Java programs runs. Although the concept "Java" has normally been used to refer to the programming language, there is a lot more to Java than just the language. Java's architecture arises out of four unique but correlated technologies, these are the Java programming language, the Java application Programming interface and the Java virtual machine as well as the Java class file format. It is these that operate together with the language to make Java programs function. Therefore while writing and running the Java program, in essence it is tapping the power of the above four technologies.
.NET, is a Microsoft operating system platform that integrates applications, a set of tools and services and a modification in the infrastructure of the company's Web stratagem. It is a new technology that is revolutionary and it allows its users to do things that were previously considered as impossible such as integrating email, data storage, fax, phone services and harmonizes all of users' computing devices to be routinely updated.
The architecture of Microsoft .NET is made up of four major components, the common Language Specification (CLS), Framework Class Library (FCL), Common Language Runtime (CLR), and NET Tools .
As opposed to interacting with a single website or application,.NET makes a user access an array of computers and services that will exchange and merge objects and data.
.NET is dependent on the four standards of Internet namely HTTP, XML, SOAP and UDDI.
2. What are the similarities and differences between .net and java?
There are as many differences between .NET and Java as there are similarities between the two. There are three similarity between Java and .NET the first is that both provide a structured way to build an application, the second similarity is that they have languages that accumulates to an instantaneous code, finally the two provide a broad library of APIs for application development. Nevertheless, there are noteworthy differences in the platforms.
Conceptual Difference, Java is made up of two things the Java platform that is runtime and APIs and the Java language. The function of the platform is to support applications written in the Java language and registered to Java byte code. The ideal of Java has entirely been a single language on multiple platforms. .NET also comprises of two things the .NET Framework that is, runtime and APIs as well as the excess of supported programming languages. The objective of the NET Framework is to offer support to applications expressed in any language and compiled to MSIL. The goal of .NET is a single platform shared by several languages. This is the primary difference between the two platforms, and its effects are far-reaching.
Multi-language this is the clearest difference between the two platforms. While writing to the Java platform, one is writing the code in Java. Its virtual machine was designed primarily to execute the Java code. Efforts have been made to accommodate other languages' but these efforts haven't bore fruits..NET applications, on the contrary, can be written in any language that supports .NET these three languages are C#, Visual Basic .NET, and Jscript .NET. Microsoft also offers J# .NET and C++ with managed extensions. Third party languages include COBOL, Eiffel, Perl, Python, Pascal, and many others. There currently are over 20 languages all of which support .NET.
In terms of Performance .NET outshines Java especially in its ability to fine-tune application behavior and performance. Its core application building blocks are designed for scalability and high throughput. In addition, the .NET application architecture is designed to be faster. .NET performance against Java is not only better in single-user scenarios, but also in massively multi-user scenarios.
Another difference can be expressed in terms of security. Security is more pronounced in .NET as opposed to in Java. With its APIs for cryptography, secure cookies, and authentication, there is also a rich and extensible mechanism for assigning different levels of permissions to different sets of users, based on where the code came from.
3. How does code transform into an executable for both .Net and Java? If possible, use a graphic to clarify your explanation
In order to transform code into an executable, there must be a utility that does not require Java to be pre-installed, and such a utility would either have to precompile, everything something that is not always applicable in Java or include the Java Virtual Machine and JRE libraries in the executable which would produce an executable. In the other option all that is required is a Java Runtime Environment (JRE), which must be installed on the system for it to work, it must be available on the machine in order for java application to run. This is the cost for Java's' platform independency. It generates a wrapper around the JAR file. A jar file with an appropriate manifest file is an executable, and should run perfectly on any platform. The exact approach for starting the application may differ. While working on MS/Windows or we double click on the .jar or write its name as a command in a console window and we might need to do some OS setup adjustments to set it up correctly. This is a huge problem for deploying Java desktop apps and it's probably a major factor why more desktop apps are not done in Java.