This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
In discussion about different types of software frameworks available for Enterprise Application Development Java and .Net Framework takes the foremost pales in any developers mind.
Java platform refers to a number of computer software products and specifications from Sun Microsystems that together provide a system for developing application software and deploying it in a cross-platform environment. For that they provided 3 platforms as Java ME (Java Platform, Mobile Edition), Java SE (Java Platform, Standard Edition), and Java EE (Java Platform, Enterprise Edition). Java EE is the platform related to Enterprise application development and this platform is widely used for server programming in the Java programming language. The Java EE differs from the Java SE in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier Java software, based largely on modular components running on an application server.
Java EE is build on the solid foundation of Java SE and is the industry standard for implementing enterprise-class service-oriented architecture (SOA) and web applications. It includes several API specifications, such as JDBC (Java Database Connectivity), RMI (Remote Method Invocation), e-mail, JMS (Java Messaging service), web services, XML, etc, and defines how to coordinate them. Java EE Platform consists of several programs, each of which provides a distinct portion of its overall capabilities. For example, the Java compiler, which converts Java source code into Java bytecode, is provided as part of the Java Development Kit (JDK). The Java Runtime Environment (JRE), complementing the JVM with a just-in-time (JIT) compiler, converts intermediate bytecode into native machine code on the fly. Also supplied are extensive libraries, pre-compiled in which are several other components, some available only in certain editions and also has many integrated frameworks writhing it such as Ajax, Spring, Hibernate, Bean Scripting, etc. Java EE also features some specifications unique to Java EE for components. These include Enterprise JavaBeans, servlets, portlets (following the Java Portlet specification), JavaServer Pages and several web service technologies. This allows developers to create enterprise applications that are portable and scalable, and that integrate with legacy technologies. A Java EE application server can handle transactions, security, scalability, concurrency and management of the components that are deployed to it, in order to enable developers to concentrate more on the business logic of the components rather than on infrastructure and integration tasks.
As for the Microsoft .Net framework, it is a software framework that can only be installed on computers running Microsoft Windows operating systems. It includes a large library of coded solutions to common programming problems and a virtual machine that manages the execution of programs written specifically for the framework. .Net framework's Base Class Library provides a large range of features including user interface (GUI), data and data access (XML, Linq, Xpath), database connectivity, cryptography, web application development (ASP .Net), numeric algorithms, and network communications. The class library is used by programmers, who combine it with their own code to produce applications. .Net framework is Language neutral, meaning that in what ever .Net language the developer creates his program module, it is possible to run it within other Modules created in different .Net languages. This is due to Common Intermediate Language (CIL or best know as Microsoft Intermediate Language - MSIL or IL code), at compile time all code written in different languages will be turned in to CIL code. CIL is a CPU- and platform-independent instruction set that can be executed in any environment supporting the .NET framework. CIL is then assembled into bytecode and a .NET assembly is created.
The produced applications then can be executed in a runtime environment that manages the program's runtime requirements. This run time environment is also a part of the .NET Framework and it's known as the Common Language Runtime (CLR). The CLR provides the appearance of an application virtual machine so that programmers need not consider the capabilities of the specific CPU that will execute the program. The CLR also provides other important services such as security, memory management, and exception handling. The class library and the CLR together constitute the .NET Framework.
The main principal design features of the .Net Framework are Interoperability, Common Runtime Engine, Language Independence, Base Class Library, Simplified Deployment, Security, and Portability. And when it comes to Enterprise application development the .Net Framework will facilitate best practices in core areas of programming including data access, security, logging, exception handling and others.
In my opinion both java and .Net framework facilitates many features for Enterprise application development. In almost, both frameworks facilitate equal functionalities to do a certain task in different ways using different technologies. But the Framework that will be used in developing an application must be determined by the user requirements, development time, development capabilities and the environment in witch it will be deployed in mind.
The main services provided by the .Net Frameworks
Because interaction between new and older applications is commonly required, the .NET Framework provides means to access functionality that is implemented in programs that execute outside the .NET environment. Access to COM components is provided in the System Runtime Interop Services and System Enterprise Services namespaces of the framework; access to other functionality is provided using the P/Invoke feature.
The .NET Framework introduces a Common Type System, or CTS. The CTS specification defines all possible data types and programming constructs supported by the CLR and how they may or may not interact with each other. Because of this feature, the .NET Framework supports the exchange of instances of types between programs written in any of the .NET languages.
Common Runtime Engine
The Common Language Runtime (CLR) is the virtual machine component of the .NET framework. All .NET programs execute under the supervision of the CLR, guaranteeing certain properties and behaviors in the areas of memory management, security, and exception handling.
Base Class Library
The Base Class Library (BCL), part of the Framework Class Library (FCL), is a library of functionality available to all languages using the .NET Framework. The BCL provides classes which encapsulate a number of common functions, including file reading and writing, graphic rendering, database interaction and XML document manipulation. This kind of built in libraries allow developers to rapid develop applications. Developers only have to code on the business logic of his application, other parts are provided with the framework.
.NET has its own security mechanism with two general features: Code Access Security (CAS), and validation and verification
The design of the .NET Framework allows it to theoretically be platform agnostic, and thus cross-platform compatible. That is, a program written to use the framework should run without change on any type of system for which the framework is implemented. Hear the CIL code of a program becomes portable form one platform to another. By using the CLR the CIL code can be converted in to the native code.
ClickOnce Deployment introduces a powerful new deployment mechanism that allows a Windows based application to be deployed in such a way that it receives the same benefits as Web based applications. By using this technology developers can publish Applications or updates of a working application with in a central application server. ClickOnce enables the user to install and run a Windows application by clicking a link in a web page hosted at the application server. The core principle of ClickOnce is to bring the ease of deployment of web applications to the Windows user. This type of application deployment is more favorable for Enterprise Applications. It will reduce the time and effort wasted in installation, updates or application setting management. A working Application will be deployed in to the server along with all the connectivity settings to databases and resources.
Data access typically refers to software and activities related to storing, retrieving, or acting on data. In more recent days, standardized languages, methods, and formats, have been created to serve as interfaces between specific languages and methods. Such standards include SQL, ODBC, JDBC, ADO.NET, XML, XQuery, XPath, and Web Services.
The main services provided by Java
Enterprise JavaBeans (EJB)
EJB is a managed, server-side component architecture for modular construction of enterprise applications. The EJB specification is one of several Java APIs in the Java Platform, Enterprise Edition. EJB is a server-side model that encapsulates the business logic of an application.
Servlets are Java programming language objects that dynamically process requests and construct responses. The Java Servlet API allows a software developer to add dynamic content to a Web server using the Java platform. The Servlet container will provide security, concurrency, life-cycle management, transaction, deployment, and other services. Hence this is use for Enterprise Application development.
The Java Portlet Specification defines a contract between the portlet container and portlets and provides a convenient programming model for Java portlet developers. Portlets are pluggable user interface software components that are managed and displayed in a web portal. Portlets produce fragments of markup code that are aggregated into a portal page.
Java Server Pages
Java Server Pages (JSP) is a technology that allows software developers to create dynamically generated web pages, with HTML, XML, or other document types, in response to a Web client request. The technology allows Java code and certain pre-defined actions to be embedded into static content.
This technology is designed to support interoperable machine-to-machine interaction over a network. Web services are services that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services.
IDE (Integrated development environment) plays an important role in utilizing frameworks for Enterprise Application Development. Here the two most powerful IDE's, Visual Studio and NetBeans play an important roll in Enterprise Application development.
Microsoft Visual Studio is design to work with.Net Framework. It provides the developer to use the .Net Frameworks features in a graphical manner. This is also similar with the NetBeans IDE too. It also provides the features of java platforms (java ME, java SE, java EE). When it comes to Enterprise Developments, developers tend to work with robust products and .Net Frameworks and Java EE are well known frameworks for developing Enterprise Applications. Developers only have to uses the included features of the frameworks or extend existing features. The business logic is the only thing developers have to worry about, all other aspects such as network connectivity, security, data access, logging, exception handling will be handled by the Framework. Because the tested vigorously prior to there publication by there providers, developers do not need to worry about for told aspects. IDE's provide a user friendly environment for developers to do there work in.
" Microsoft Visual Studio can be used to develop console and graphical user interface applications along with Forms applications, web sites, web applications, and web services in both native code together with managed for all platforms supported by Microsoft Windows, Windows Mobile, Windows CE,.NET Framework, .NET Compact Framework and Microsoft Silverlight. Visual Studio includes a code editor supporting IntelliSense as well as code refactoring. The integrated debugger works both as a source-level debugger and a machine-level debugger. Other built-in tools include a forms designer for building GUI applications, web designer, class designer, and database schema designer. It allows plug-ins to be added that enhance the functionality at almost every level - including adding support for source control systems (like Subversion andVisual SourceSafe) to adding new toolsets like editors and visual designers for domain-specific languages or toolsets for other aspects of the software development lifecycle (like the Team Foundation Server client: Team Explorer)." When it comes to Enterprise Application Development, developers tend to use tools and techniques that comes with the Framework and the IDE's such as, class designer, database schema designer, msDebugger, etc.
For example let's take class designer. The Visual Studio Class Designer lets a developer visualize the structure of classes and their relationships, create new classes using a visual design environment, and easily refactor classes. Process of creating classes this way is much easier and takes less effort, though planning is a must.
MS Debugger is another tool use in development process. With it the developers can find out possible warnings, errors, floss and mistakes. It will provide what the mistake or errors with the location and provide a hint what the error is about.
Visual studio web application server is another tool provided to test web applications prior to deploying in a web server. Developers can test or simulate there projects using this server. By using this technology it reduces the time effort used to deploy and test the application on a real web server.
By using this kind of tools rapid development of application become possible and it became a must in developing Enterprise Applications because of its ease. Because of these kind of IDE's the aspects that dominate Enterprise Development such as Productivity, Maintaining Security and Response to Demand can be answered.