Both Java and Net technologies aim at transforming software complexity in addition to moving it away from developers and making it easy for them to focus on the business logic. In order to achieve this end, Java and Net technologies offer a managed execution ground, a rich set of libraries, a technique for balanced access to data in addition to an inbuilt prop up for backward compatibility (Fisher, Lai and Sharma, 2006). Nevertheless, these two technologies employ different strategies in order to accomplish their goals.
In software architecture, the non-functional requirements are made use of in the selection of the architecture that is best suited for the limits of application among different systems (Patel, 2005). Software giants Microsoft and Sun make use of two technologies, Java and Net in software architecture (Mueller, 2005). Net is a framework comprising of a rich set of libraries, a highly powerful as well as unified development environment, and a common language runtime.
Java, on the other hand, is an open specification that describes a set of technology to generate solutions for a variety of problems that arise in the creation of enterprise applications (Fisher, Lai and Sharma 2006). As compared to Net, Java has more advantages than disadvantages. Java is developed in a special manner which instills it with the capacity to handle a variety of issues regarding software architecture. Java has the capacity to access data from DBMS and manage distributed system issues such as naming.
Java also has remote method invocation, an aspect that allows application developers to focus their attention on business logic. Java also has a Graphic User Interface based deployment tool that assists in packaging (Patel, 2005). Java, an object oriented language, is a pure language that can be utilized in creating a variety of applications. Due to the fact that all applications are created in java, even if a person who was involved in developing a part of the application leaves the project, then it is not costly for the company to replace him/her.
Java can also be made cross language compatible. Another advantage of java, as indicated by Surapaneni and Katre (2004), is that it is available in almost all platforms. It can be run on various systems as well as operating systems without further modification. Java offers maximum security because it verifies all programming before running for malicious activity. If java byte code is compatible with just in time, its performance is enhanced (Patel, 2005). One disadvantage of java is that it does not provide a way through which graphic user components and codes can be separated (Patel, 2005).
Java makes use of java swing to develop graphic user interface. Java swing is a powerful tool that requires highly skilled software developers. Java byte code is interpreted by the JVM; this interpretation takes a longer time, an aspect that reduces its performance. Due to the fact that java runs on quite a number of systems, features specific to a particular operating system cannot be implemented into java programs. Some java applications, still, may be different from the default systems of native applications in an operating system (Fisher, Lai and Sharma 2006).
Surapaneni and Katre (2004) states that Net is mainly used to deliver infrastructure that can be leveraged to pull together a wide range of solutions, from desktop to enterprise. It is a combination of the Net framework. One major advantage of Net over Java, as illustrated by Fisher, Lai and Sharma (2006), is that it offers a way through which code and components of the user interface can be separated. Net is also easier to apply in the creation of Graphic User Interface as compared to Java. Visual Basic Net is a language made use of in the creation of Graphic User Interface applications (Patel, 2005).
Net is easier to make use of as it does not call for highly skilled developers. Net provides users with various languages from which they can select the language that suits their application better. Net also allows a single application to be written in different languages. Intermediate language in Net is efficient and is compiled to native code and then executed. Due to the fact that execution of intermediate language is faster than interpreting it, Net performs in a better manner as compared to Java (Mueller, 2005).
Net framework comprises of an inbuilt prop-up for object orientation. Object oriented technology allows reusability of codes. Net have a very competent mechanism for security. Run time in Net makes use of two types of security: Role Based and Code Access Security (Patel, 2005). Net however has disadvantages associated with it as far as software architecture is concerned. One of them is that even though it allows for writing of a single application in a variety of languages maintaining, these applications in different languages is a difficult task (Surapaneni and Katre, 2004).
If a person who created a section of an application in a certain language leaves the organization, it may be very costly to replace him/her. Net cannot be made cross language compatible. One big disadvantage of net is that it is available for a limited number of platforms, only Windows related platforms. It is hard to comprehend the principles behind Net because they are many and are composed of numerous different technologies (Patel, 2005). Reference: Fisher, M. , Lai, R. , and Sharma, S. , (2006), Java EE and . NET interoperability: integration
strategies, patterns, and best practices, ISBN 0131472232: Prentice Hall PTR Mueller, J. , (2005), Mastering Web Development with Microsoft Visual Studio 2005, ISBN 078214439X: John Wiley and Sons Patel, K. , (2005), A Comparison between Java and . NET from Software Architecture, retrieved on August 19, 2010 from http://kaushalp. blogspot. com/2005/08/comparison-between-j2ee-and-net. html Surapaneni, N. , and Katre, D. , (2004), Java and NET: Guide to Interoperability and Migration, ISBN 8120324447: PHI Learning Pvt. Ltd.