J2EE vs .NET by usr10478

VIEWS: 348 PAGES: 63

									Mens et Opera (®)

 .NET vs J2EE
A Comparative Analysis

     Michele Arpaia
     IT Professional
                                                 .NET vs J2EE

                 What software architecture is

                  A typical eBusiness scenario

                      .NET Architectures

                      J2EE Architectures

         Similarities & Differences between J2EE & .NET

                   Conclusive considerations

                                                   .NET vs J2EE
                                                0/Key Take-aways

After completing this presentation, you should be able to:

 • Understand what architectures are
 • Identify all key concepts related to architectures
 • Discuss architecture design goals and principles
 • Describe .NET platform
 • Describe J2EE platform
 • Describe all similarities and differences between .NET and J2EE
 • Choose which is the most convenient platform depending upon your
 • Be more objective without fighting a religious war!

  Mens et Opera (®)

What architectures are

     Michele Arpaia
     IT Professional
                                                           .NET vs J2EE
                                               1/Architecture definition
Software architecture is one of those terms that everyone claims to
   understand but no one can define precisely!

Before giving a formal definition, we can say that most
  definitions involve references to one or more of the
    - Static structure of the software = relationship among elements
    - Dynamic structure of the software = relationships that change over the
      lifetime and determine what the software looks like when it’s running
    - Composition, that refers to the type of significant but smaller pieces
      that can be part of the software
    - Layers & Tiers and iteraction among them
    - Rationale for the software
    - Functionality of the software
    - Reuse, performance, scalability and so on

                                                      .NET vs J2EE
                                          1/Architecture definition

More formally we can define a software architecture as:

   an abstract representation of a system’s components and
  behaviors. Ideally, architecture does not contain details about
  implementation (that’s left for the developers, or engineers). The
  architect gathers information about the problem and designs a
  solution, which satisfies the functional and nonfunctional
  requirements of the client and is flexible enough to evolve when the
  requirements change

and is additionally concerned with:

  ...usage, functionality, performance, resilience, reuse,
  comprehensibility, economic and technological constraints and
  trade-offs, and aesthetics [Krutchen, 1999]

                                                        .NET vs J2EE
                                                 1/Why Architecture?

The following list contains a few reason why it is important
  to focus on software architecture:

 An ad hoc approach to software will eventually lead to a system that is
  brittle and hard to change
 Decomposition into smaller piecies makes software easier to understand,
  manage, develop and maintain
 Improve scalabilty, resilience, estensibility,...
 Better reuse thanks to layering approach
    •   Component oriented
 Having a well documented architecture makes it easier to communicate
  the intent and the substance of the system
 Security, performance,...becomes predictable factors that can be well
  managed from the start

                                                                  .NET vs J2EE

Layering creates a separation of concerns by abstracting
  specific type of funcionality into functional layers and
  providing conceptual boundaries between set of services

Layering is a pattern for decomposition

    decomposition leads to a logical partitioning of the system into subsystems and
    decomposition helps define and clarify interfaces between different pieces of a system
    decomposition provides a natural partioning of the development tasks
    in UML decomposition is modeled via packages, modules and subsystems

                                                                    .NET vs J2EE

Tiers are layers with specific well-defined responsabilities,
   meaning they fulfill a specific role in the overall scheme
   of things. They are concerned with distribution of a
   software system over multiple, separate processes.

Type of application
 One-tiered application: Mainframe and dumb terminals
 Two-tiered application: LAN-based client-server systems
 Three-tiered application: web-based with separation of presentation logic, business
  logic and data logic

N-tiers apps introduce
 Communication efficency between tiers
 Extensibility: changes to the user interface or to the application logic are largely
  independent from one another, allowing the application to evolve easily to meet
  new requirements.
 Easy maintenance
 Separation of responsabilities

                                                              .NET vs J2EE

A framework is a set of cooperating modules that make up
a reusable design for a specific domain.
A framework provides a superset of the features which are
needed for a system.
A framework dictates the system architecture.

Technically speaking,
framework has to do with ―vertical‖ architecture for specific domains. For
example financial, healthcare, mechanical CAD and so on...

There are a lot of frameworks in the marketplace and Accenture’s got

                                                                     .NET vs J2EE
                                              1/Architecture capabilities

System Quality Definition
Availability    The degree to which a system is accessible. The term 24×7 describes total
                availability. This aspect of a system is often coupled with performance.
Reliability     The ability to ensure the integrity and consistency of an application and its
Manageability   The ability to administer and thereby manage the system resources to ensure
                the availability and performance of a system with respect to the other
Flexibility     The ability to address architectural and hardware configuration changes without
                a great deal of impact to the underlying system.
Performance     The ability to carry out functionality in a timeframe that meets specified goals

Extensibility   The ability to extend functionality.

Scalability     The ability to support the required availability and performance as transactional
                load increases
Reusability     The ability to use a component in more than one context without changing its
Security        The ability to ensure that information is not accessed and modified unless done
                so in accordance with the enterprise policy.

  Mens et Opera (®)

A typical scenario

     Michele Arpaia
     IT Professional
                                                          .NET vs J2EE
                                  2/A typical eBusiness scenario

• MoneyBroker is a made-up business used only for illustrative
  purposes. Let's say the purpose of MoneyBroker is to allow on-line
  payment of bills. Customers can deposit money in a MoneyBroker
  account and then use that money to pay bills on-line.

• Customer can pay bills either directly or indirectly.
    – Direct payment occurs at the MoneyBroker web site where customers
      log on and arrange for bill payment.
    – Indirect payment occurs through MoneyBroker partners.

• MoneyBroker makes its profit by investing outstanding customer
  balances. Its profit is the difference between the interest rate it
  pays its account holders and the interest rate it makes on its

                              .NET vs J2EE
            2/A typical eBusiness scenario

A typical multitiered architecture where software
is placed on different processes
                                                               .NET vs J2EE
                                        2/A typical eBusiness scenario

Presentation tier

•Is responsible for working with clients.

•With the MoneyBroker application, this tier works with thin browser-based bill
paying clients.

•The presentation tier accepts an HTTP requests from a web browser and returns
an HTML page that browser can then display.

•Different browsers have different display capabilities, so the presentation tier
must often tailor the HTML to the specific browser (or other thin client device)

•Considering MVC Pattern, this tier plays the View role

                                                               .NET vs J2EE
                                         2/A typical eBusiness scenario

Business Tier

•   For MoneyBroker, this includes the logic that maintains the customer
    accounts and the logic that transfers money as bills are paid.

•   The presentation tier communicates with the business tier through a
    method transport protocol. For the .NET platform, this protocol is usually
    either DCOM or SOAP. For J2EE, it is RMI/IIOP.

•   Business logic often requires expensive resources, such as database
    connections, threads, TCP/IP connections, and message queue
    connections. These resource requirements would normally make it difficult
    to support a large number of clients at any one time, a requirement of
    most eCommerce applications.

•   To address this problem, both the J2EE and the .NET framework business
    tier include a sophisticated middle tier infrastructure that supports
    resource sharing among clients. This infrastructure is critical to supporting
    large numbers of clients, and thereby achieving high system throughput.
    In J2EE, this middle tier infrastructure is called Enterprise JavaBeans
    (EJB). In the .NET framework, it is called COM+.
                                                               .NET vs J2EE
                                        2/A typical eBusiness scenario

Database Tier

•   Is where actual data is stored. For our MoneyBroker system, this is where
    we store customer account information and histories of bill payments.

•   The business tier is the primary client of the data tier, although most large
    corporations also have internal applications (not going through the
    eCommerce architecture) that also make use of databases residing on the
    data tier.

•   Communication between the business tier and the data tier use a specific
    API, ADO.NET for the .NET framework and JDBC for J2EE.

 Mens et Opera (®)

.NET architectures

    Michele Arpaia
    IT Professional
                                                     .NET vs J2EE
                         3/Microsoft-based Architectures
  .NET is Microsoft’s next generation model for
  developing enterprise applications that can be
  connected anytime, anywhere using XML web services.
  .NET provides developers all the components including
  smart clients, Web Services, servers, and developer
  tools to build enterprise applications.

...technically speaking,
is a development and execution environment that allows different
programming languages & libraries to work together seamlessly to create
Windows-based applications that are easier to build, manage, deploy, and
integrate with other networked systems.
                                                           .NET vs J2EE
                          3/Microsoft-based Architectures
Microsoft .NET provides architects and developers all the technology
and tools to build multi-tier enterprise applications. With built-in
support for industry standards including Web Services, .NET
applications can also integrate with non-Microsoft systems.

                                    Smart clients are devices powered by
                                    Microsoft software including the standard PC,
                                    Pocket PC, SmartPhone, XBox, and Tablet PC.
                                    Web Services let applications share data, and
                                    invoke functions from other applications without
                                    regard to how those applications were built,
                                    what operating system or platform they run on,
                                    and what devices are used to access them.
                                    Windows Server System products have built-in
                                    security technologies, support for XML, and the
                                    ability to scale out to meet increased demands.
                                    Developer tools like Visual Studio .NET allow
                                    developers to build, debug, and deploy
                                    applications and Web Services.

                                                            .NET vs J2EE
                           3/Microsoft-based Architectures
The .NET-based application architecture provides four main layers and
focuses on distributed, service-oriented architectures.
                                   Users may be on a thick client, a web
                                   application, or a mobile device such as a Pocket
                                   Calling services from other applications or
                                   even other enterprises can leverage the
                                   business functions provided by the application.
                                   Presentation may be HTML, XML, WAP, or
                                   some other application specific format.
                                   Business logic is encapsulated as .NET
                                   components and can easily be shared with other
                                   applications using XML web services.
                                   Data from many sources and platforms can be
                                   accessed using industry standards such as
                                   ODBC built into .NET.
                                   Services provided by other sources can be
                                   incorporated into the application.
                                                                        .NET vs J2EE
                                   3/Microsoft-based Architectures
ASP.NET is Microsoft’s technology for building Web applications and
services. Developers create applications using server-based Web Forms
and Controls.
 Web Forms are the User Interface (UI) elements that give Web applications their look
  and feel. Web Forms provide properties, methods, and events for the controls that are
  placed onto them. However, these UI elements render themselves in the appropriate
  markup language required by the request, for example, HTML. Visual Studio .NET
  provides a drag-and-drop interface to create the UI for a Web application.

 ASP.NET and Web Forms have the following benefits:
     •   Separation of HTML interface from application logic-no more ―spaghetti code‖
     •   A rich set of server-side controls that can detect the browser and send out
         appropriate markup language such as HTML
     •   Less code to write due to the data binding capabilities
     •   Event-based programming model
     •   Compiled code and support for multiple languages
     •   Allows third parties to create controls that provide additional functionality

                                                                     .NET vs J2EE
                                 3/Microsoft-based Architectures
Windows Forms is a .NET technology that enables developers to build
Windows-based applications. Similar to Web Forms, Windows
applications are created using forms and controls.
 Windows forms drastically decrease the complexity of creating user interfaces for
  Windows clients. This type interface delivers a rich, flexible, performant, and easy-to-
  use desktop application.

 .NET rich client applications can be deployed using a web server and automatically
  update themselves when new versions are available. Traditional deployment on a CD,
  DVD, floppy, etc. is also supported.

 The Code Access Security model in .NET ensures that code downloaded from the
  Internet is not allowed to cause harm to the client. There is a fine-grained security
  system that will trust code depending on its origin and credentials, such as a digital

 Consider a rich client if your application runs in a controlled environment, must work
  offline, uses local API’s, or uses peer-to-peer technology.
                                                                    .NET vs J2EE
                                 3/Microsoft-based Architectures
Microsoft .NET is built from the ground up to support the development
and operation of XML Web Services. XML Web Services are the
fundamental building blocks in the move to distributed computing on the
Internet. Open standards such as XML and SOAP and the focus on
communication among applications have created an environment where
XML Web Services are becoming the platform for application integration.

 ASP.NET is the preferred technology for implementing Web Services. It supports
  service requests using SOAP over HTTP, as well as HTTP GET or POST. ASP.NET
  Web Services automatically generate WSDL files.

 The .NET Framework SDK also provides tools to generate proxy classes that client
  applications can use to access Web Services.

 Microsoft Visual Studio .NET provides additional tools to help you build, deploy, and
  consume Web Services. For example, the IDE generates client-side proxies from
  WSDL files.

                                                                  .NET vs J2EE
                               3/Microsoft-based Architectures
Almost all applications must access an external data store, and Microsoft
.NET provides a powerful and extensible framework for data access.
ADO.NET allows consistent access to a number of data sources.

  ADO.NET supports the accepted industry standard ODBC and OLE DB which allow
   .NET applications to access virtually an relational database management systems

  ADO.NET Manager Providers provide direct, low-level access to an RDMS using a
   consistent client API. Microsoft provides a Manager Provider for SQL Server, Oracle,
   OLE DB, and ODBC.

  Extensible Data Provider framework allows 3rd party vendors to create optimized data
   providers for their specific systems.

  ADO.NET has native support for XML that allows data sets to be easily serialized for
   transport or persistence.

                                                                    .NET vs J2EE
                                3/Microsoft-based Architectures

Visual Studio .NET is an end-to-end tool for designing, developing,
debugging, and deploying secure applications for Microsoft Windows, the
Web, and mobile devices.

 Build a broad range of applications for Microsoft Windows, the Web, and devices.

 Contains intuitive visual designers, data access tools, client- and server-side visual
  designers, and inherent support for XML Web Services.

 Provides a unified integrated development environment (IDE) and a choice of
  programming languages—including Microsoft Visual Basic .NET, Microsoft Visual
  C++ .NET, Microsoft Visual C# .NET, and Microsoft Visual J# .NET.

                                                                    .NET vs J2EE
                                 3/Microsoft-based Architectures
The Microsoft Windows Server System provides the infrastructure for
building, deploying, and operating applications and Web Services. Key
Windows Server System products include:
  Microsoft Application Center 2000 for scale-out technologies optimal for Web applications.
  Microsoft BizTalk Server 2002 for XML-based business process orchestration across
   applications, services, and companies.
  Microsoft Commerce Server 2000 for online e-commerce.
  Microsoft Content Management Server 2001 to build and deploy content-driven Web sites.
  Microsoft Exchange Server 2000 for email and collaboration.
  Microsoft Internet Security and Acceleration Server 2000 to provide a firewall.
  Microsoft Host Integration Server 2000 for integrating mainframe data.
  Microsoft Mobile Information Server 2002 for delivering data to wireless devices such as
   mobile phones.
  Microsoft Operations Manager 2000 to deliver solutions for operations management.
  Microsoft SharePoint Portal Server 2001 for finding, sharing, and publishing business
   information through corporate intranets.
  Microsoft SQL Server 2000 for storing and retrieving data.

                                                             .NET vs J2EE
                            3/Microsoft-based Architectures

Microsoft offers a wide range of client operating systems that power
devices ranging from desktop computers to smart phones. These
products support both XML and industry standards for wireless
communication. Microsoft operating systems include

 Windows XP - The fastest and most reliable version of Windows that works
  seamlessly with .NET-connected software.

 Windows 2000 Professional - The Windows operating system for business
  desktop and laptop systems.

 Windows CE .NET - The operating system that enables developers to build the
  next generation of mobile and small footprint devices.

 Windows Smartphone 2002 - The mobile phone that lets you operate in the .NET
  universe, communicating by means of voice and text.

                                                         .NET vs J2EE
                         3/Microsoft-based Architectures

 End-to-end technology vendor – can provide all the integrated
 Productivity – tools and technologies are easy to use
 Strong alliance with Accenture – excellent support from Microsoft
 Vendor solvency – ~60 billion in cash
 Multi-language support – choose from several including C# and

 Platform dependence – .NET must currently run on proprietary
   Microsoft systems
 Security – must be sure to perform strict audit and apply all updates

                                        .NET vs J2EE
                                    Knowledge Capital


•   https://mso.accenture.com/
•   https://se.accenture.com/
•   http://www.microsoft.com/net/
•   http://msdn.microsoft.com/
•   http://www.gotdotnet.com/
•   http://www.asp.net/

   Mens et Opera (®)

Java based architectures

       Michele Arpaia
       IT Professional
                                                          .NET vs J2EE
                                          4/Java-based Architectures

 Java-based architectures rely on standardized, modular
 components built with the Java language. They provide a
 complete set of services to those components, and handle
 many details of application behavior automatically, without
 complex programming.

The J2EE platform takes advantage of many features of the Java 2 Platform,
Standard Edition (J2SE), such as "Write Once, Run Anywhere" portability,
JDBC API for database access, CORBA technology for interaction with existing
enterprise resources, and a security model that protects data even in internet
applications.                                                                    32
                                                  .NET vs J2EE
                                    4/Java-based Architectures

There are 3 different flavors of Java:

J2ME – Micro Edition for Java-enabled phones, PDAs, etc.
J2SE – Standard Edition for common services and thick client apps
J2EE – Enterprise Edition for web applications, Web Services,
messaging, XML, etc.

J2EE provides a set of standards for developing modular, multi-tier
enterprise architectures.

J2EE is a specification – not a product. Sun and the Java community
rely on vendors to create products that adhere to the specification.

                                                       .NET vs J2EE
                                        4/Java-based Architectures

• J2EE provides developers with a specification for
  developing multi-tier enterprise applications.
• The J2EE application model partitions applications the work
  needed to implement a multi-tier service into two parts: the
  business and presentation logic to be implemented by the
  developer, and the standard system services provided by the Java

• To better control and manage these applications, the business
  functions to support these various uses are conducted in the
  middle tier.

• Java-based applications often rely on the Enterprise Information
  System (EIS)-Tier to store the enterprise’s business-critical data.
  This data and the systems that manage it are at the inner-core of
  the enterprise.

                                         .NET vs J2EE
                              4/Java-based Architectures

• The J2EE-based Application Architecture consists of
  four main tiers:

                                                          .NET vs J2EE
                                          4/Java-based Architectures

                      The JavaServer Pages (JSP) technology provides an
                      extensible way to generate dynamic content for a Web

•JSP technology mixes standard, static HTML with Java code to
dynamically generate content. The Java code for the dynamic portions is
enclosed in special tags, most of which start with ―<%‖ and end with ―%>‖.
These sections of embedded code are typically called Scriptlets.

•JSP technology allows developers to extract commonly used scriptlets
into external objects called Custom JSP Tags. Custom Tags allow
developers to write logic once, and then reuse it across their entire

•Similarly, the Servlet 2.3 specification introduced a collection of reusable
tags called JSP Standard Tag Libraries (JSTL). These tags cover the
most commonly used scriptlets and provide significant performance
                                                      .NET vs J2EE
                                       4/Java-based Architectures

                    Java Servlets were designed as a means of extending
                    the functionality of a Web Server.

• Servlets are a portable platform- and web server-independent means
  of delivering dynamic content to a web client.

• Servlets receive a request from a client, dynamically generate the
  response (possibly querying business services to fulfill the request),
  and then send the response containing an HTML or XML document to
  the client.

• Servlets aren’t just for web applications. They are also commonly used
  as interfaces to Java-based Web Services because they are simple to
  code, and because they can accept and return XML messages.
                                                          .NET vs J2EE
                                           4/Java-based Architectures
                    •   Enterprise JavaBeans (EJB) is a server-side
                        technology for developing and deploying
                        components containing the business logic of an
                        enterprise application. EJBs contain the following
• EJBs are scalable and transactional and are more resource intensive than
  regular Java objects, therefore, their use should be limited to situations
  where their benefits are truly required – especially when high performance
  is critical

• EJB server provides system-level services such as transaction
  management, concurrency control, and security.

• EJB technology provides a distributed component model that enables
  developers to focus on solving business problems while relying on the EJB
  server to handle complex system-level issues.
• There are three types of EJBs:
   – Session beans
   – Entity beans
   – Message-Driven beans                                                  38
                                                     .NET vs J2EE
                                                   Session Beans

                • One of the three types of Enterprise
                  JavaBeans is a session bean.

• A session bean provides some service on behalf of a requesting
  client, and usually represents a business process. For example, a
  session bean can perform complex calculations or make changes to
  a database.

• Session beans can be stateless or stateful (i.e., maintain
  conversation context across methods and transactions). There is a
  performance and scalability cost to stateful session beans so
  stateless EJBs are more commonly used.

• Session beans are transient, therefore if a session bean’s container
  crashes, any uncommitted information or processing is lost.
                                                        .NET vs J2EE
                                         4/Java-based Architectures

                       The second type of Enterprise
                       JavaBeans is an entity bean.

• An entity bean is a persistent object that represents data maintained
  in a data store and usually represents a business entity. An entity
  bean can manage its own persistence (bean-managed persistence)
  or it can delegate this function to its container (container-managed

• Entity beans are not transient, therefore, if the container in which an
  entity bean is hosted crashes, the entity bean, its primary key, and
  any remote references survive the crash.

• Container-managed persistence usually comes at a very high
  performance cost due to the object-relational mapping complexities.
                                                       .NET vs J2EE
                                        4/Java-based Architectures

                     The third type of Enterprise
                     JavaBeans is a message-driven bean.

• Message-driven beans are similar to Session Beans in that they
  typically perform services, however, they are only accessible via

• Message-driven beans act as listeners on message queues. They
  are typically used in conjunction with JMS (Java Messaging Service)
  when asynchronous processing is required. Asynchronous
  messages are those messages that are ―pushed‖ to the application,
  but don’t require a reply.

• Message-driven beans typically call other EJBs (Session or Entity) to
  perform their operations.                                               41
                                                        .NET vs J2EE
                                         4/Java-based Architectures

                  •   A service’s middle-tier business functions must access
                      and update the information in the EIS-tier. Several
                      standard Java service APIs provide basic access to
                      these systems:

• JDBC™ - the standard API for accessing relational data from Java
• Java Naming and Directory Interface™ (JNDI) - the standard API for
  accessing information in enterprise name and directory services
• Java™ Message Service (JMS) - the standard API for sending and
  receiving asynchronous messages
• Java API for XML Parsing (JAXP) - supports processing of XML
  documents using DOM, SAX, and XSLT.
• Java Transaction API (JTA) - the standard interface for demarcating
• J2EE Connector Architecture (JCA) - defines interfaces for the
  integration of enterprise applications (ERP, CRM, etc.) with Java-based
  applications                                                                 42
                                                      .NET vs J2EE
                                    4/Java-based Architectures

 Platform independence
 Scalability to meet demand variations
 Simplified architecture and development due to split of
   presentation and dynamic content
 Multivendor support
 Flexible security model
 Functionally complete standard libraries

 Complexity
 Possible integration of multiple vendor solutions
 Longevity of vendors
 Skill set of individuals

                                              .NET vs J2EE
                                         4/Knowledge Capital

Java Resources

•   http://java.sun.com
•   http://webdeveloper.com/java/
•   http://www.theserverside.com
•   http://dev2dev.bea.com
•   http://www.ibm.com/developerworks/
•   http://www.apache.org

Accenture Resources

•   https://se.accenture.com/
•   https://experts.accenture.com
•   https://onesource.accenture.com
•   https://webservices.accenture.com

    Mens et Opera (®)

Similarities & Differences
  between J2EE & .NET

        Michele Arpaia
        IT Professional
                                                                .NET vs J2EE
                                                   5/Strategic Comparison

               Technology                 .NET                          J2EE
Presentation tier
Infrastructure                 IIS                          not specified
Programming model              ASP.NET                      Servlets, JSP

Middle tier
Infrastructure                 COM+                         EJB
Programming tool               Visual Studio.NET            not specified
Security API                   COM+ Security Call Context   JAAS
Message Queue API              MSMQ                         JMS 1.0
Asynchronous components        Queued (COM+)                Message driven beans (EJB 2.0)
Naming and Directory Service   ADSI                         JNDI

Database tier
Distributed transaction        MS-DTC                       JTS
Relational DB API              ADO.NET                      JDBC 2.1

Database storage               SQLServer**                  -
Mainframe DB                   connectivityHIS*             Java Connectors
                                                                       .NET vs J2EE
                                                            5/Strategic Comparison
 Java and Microsoft .NET have very similar conceptual architectures.
                                 .NET                                     Java
               VB, C++, C#, COBOL, others                     Java

               Compiler                                       Compiler

Intermediate   MSIL (Microsoft Intermediate Language)         Java byte code

Run Time       CLR (Common Language Runtime)                  JRE (Java Runtime Env. – aka JVM)
               • Wintel platform today, but likely to be      • Many OS (Sun, IBM, HP, Linux,
                 ported                                         Wintel …)
                                                              • Many App servers (BEA, Apache,
                                                                IBM, Sun …)

Current        Intel x86                                      Intel x86, Sun, HP, IBM
Platform       • When CLR is ported then other .NET
Support          applications will run on other platforms

                                                                 .NET vs J2EE
                                                    5/Strategic Comparison
You can see that there is tremendous overlap between the J2EE and .NET
platform technologies. How, then, does one choose between them?
 Vendor Neutrality
Sun technologies are supposed to be vendor neutral. But the neutrality
nowdays is still far from being a reality. Let’s hear what Paul Harmons*
        ―The reality, at the moment, is that if you want to develop an
        EJB application, you should stick with a single vendor ”

On the other hand, .NET is concivied to be not neutral at all.

 Framework Support
When building a large, eCommerce solution, it goes without saying that
one does not want to start from scratch. One wants to build on top of a
well defined and tested eCommerce framework. The use of such a
framework can dramatically reduce development costs, probably by a
factor of at least 10.
The .NET platform includes such an eCommerce framework called
Commerce Server. At this point, there is no equivalent vendor-neutral
framework in the J2EE space.
                                                                 .NET vs J2EE
                                                     5/Strategic Comparison

 Overall Maturity
J2EE deployments are alive and healthy, running a variety of mission-critical
business problems today. However, when looking past the surface, it should be
noted that there are some identifiable areas of risk where J2EE lacks maturity:

    • The automatic persistence provided EJB is still immature.
    • The Java Connector Architecture (JCA) is new.
    • All web service support is new.

For Microsoft.NET, the story is a bit different. Some of .NET is based on Windows
DNA, which also runs a variety of mission-critical web sites today and enjoys
success. However:

    • With the new CLR, a good portion of the underlying .NET platform has been
    substantially rewritten. Indeed, the platform itself is currently only available in
    a beta version.
    • C# is new.
    • All web service support is new.
                                                         .NET vs J2EE
                                              5/Strategic Comparison

 Market Perception
When comparing two platforms, your first instinct is probably to compare
the technologies. The unfortunate reality is that good technology rarely
succeeds in the marketplace because it's good technology. Usually it's
the technology with the best marketing that wins.
J2EE is an extremely well-marketed platform because it is being
marketed by an entire industry of 50+ assorted vendors. This network of
interdependent businesses form a virtual marketing machine, and the
result is a fantastic market perception for J2EE.
.NET's marketing strength stems from the fact that Microsoft knows how
to market a platform. They have put their "A" team on marketing .NET, as
is apparent in the industry hype surrounding the platform.
Microsoft's advantage is also that it announced it's webservices strategy
before the J2EE players, which gave it market perception.

So in the marketing front, we give the nod to Microsoft for doing the best
job in hyping their platform--so far.
                                                           .NET vs J2EE
                                                5/Strategic Comparison

 Tools
The Sun J2EE Product Portfolio includes Forte, a modular and extensible Java-
based IDE that pre-dates both Sun J2EE and .NET. Developers who prefer other
IDEs for Java development are free to use WebGain’s Visual Café, IBM’s
VisualAge for Java, Borland’s JBuilder, and more. Numerous 3rd party
tools and open source-code products are available.

Microsoft has always been a strong tools vendor, and that has not changed. As
part of its launch of .NET, Microsoft released a beta version of the Visual
Studio.NET integrated development environment. Visual Studio.NET supports all
languages supported by earlier releases of Visual Studio - with the notable
exception of Java. In its place, the IDE supports C#, Microsoft’s new object-
oriented programming language, which bears a remarkable resemblance to Java.
Visual Studio.NET has some interesting productivity features including Web
Forms, a web-based version of Win Forms, .NET’s GUI component set.

                                                              .NET vs J2EE
                                                   5/Strategic Comparison

 Performance
A platform performs if it yields an acceptable response time under a specified
user load. The definition of what is 'acceptable' changes for each business
problem. To achieve acceptable performance, it is important that the underlying
infrastructure empowers you to build high-performing systems.

In general J2EE offers many tactics to cope with performance issues altought this
flexibility requires well-educated developers.

Microsoft .NET tends to perform better because framework is tailored around a
well-known server infrastructure. In any case there are no opportunities for
developers to introduce errors into systems so it is less flexible.

                                                              .NET vs J2EE
                                                   5/Strategic Comparison

 Migration from previous platform
A J2EE does not impose many migration problems. The Java Connector
Architecture (JCA) as well as the web services support in J2EE is brand new and
will require new code, but those are minor overall.

Although Microsoft.NET is based on MTS and COM+, we are concerned that the
migration to .NET will be taxing compared to J2EE. First off, .NET is based on the
―managed code‖ framework, which steals a lot of ideas from COM+ and MTS, but
it’s still an entirely new infrastructure based on an entirely new
code base – CLR. Taking advantage of the most valuable aspects of the CLR
impose one-time frictions.

For example to accommodate a Common Type System (CTS) which standardizes
on data types used between languages, the original Visual Basic data types have
been dismissed. Consequently, code dependent upon those original Visual Basic
data types will break, and there is currently no migration tool.

Mens et Opera (®)


  Michele Arpaia
  IT Professional
                                                                     .NET vs J2EE
                                             6/Conclusive considerations
Both Java and .NET are big improvements over the preceding generation of
systems development technologies. This is a general comparison of the
basic “abilities.”
                               .NET       Java        Comment
• Interoperability           Excellent   Excellent   • Both technologies provide a rich set of class
                                                       libraries for networking and Internet integration

• Availability/Reliability     Good      Excellent   • Java is more mature and is available on more
                                                     • Both provide solid reliability

• Performance                Very Good   Very Good   • Both Java and .NET offer good performance
                                                     • Both Java and .NET introduce some overhead
                                                       due to their reliance on a Runtime layer

• Developer Productivity     Excellent   Very Good   • Java and the .NET programming languages are
                                                       rich object oriented languages with many built-
                                                       in classes to re-use
                                                     • Microsoft’s Integrated Development
                                                       Environment (IDE) is ahead of those offered by
                                                       the Java community

• Cost of Ownership            Good        Good      • Java and .NET both improve on the ability to
                                                       build and deploy applications that are easier to
                                                       maintain and support

                                                           .NET vs J2EE
                                        6/Conclusive considerations
Microsoft Position:

Choose your programming language (C#, C++, VB) – they all work together
Today you are limited to a Windows OS and Intel compatible hardware
The specifications for Microsoft Intermediate Language (MSIL) and the
 Common Language Runtime (CLR) are in the public domain so other vendors
 are free to develop their own CLR’s and language compilers that support the
 .NET framework
   Microsoft has submitted C#, the Common Type System (CTS) and the
    Common Language Specification (CLS)specifications to the European
    Computer Manufacturer’s Association (ECMA) standards body and both
    were ratified in December 2001
   Fujitsu has developed a .NET COBOL compiler
   Ultimately the .NET framework could support many platforms and many
    development languages
.NET represents a major strategy shift for Microsoft with regard to Intellectual
                                                        .NET vs J2EE
                                       6/Conclusive considerations

Sun Position:

Use the Java programming language – ―Write it once, run it everywhere‖
Choose your OS and Hardware platform
Applications are portable across OS and Hardware platforms
Choose your favourite IDE
Choose your Application Server J2EE compliant (30+)
Recent releases of Java have focused on enhancements for Servers and
 Wireless devices -- not GUI and desktop enhancements

                                                           .NET vs J2EE
                                         6/Conclusive considerations

Arguments for .NET and against J2EE

.NET has Microsoft's A-team marketing it
.NET released their web services story before J2EE did, and thus has some
.NET has a better story for shared context today than J2EE
.NET has an awesome tool story with Visual Studio.NET
.NET has a simpler programming model, enabling rank-and-file developers
 to be productive without shooting themselves in the foot
.NET gives you language neutrality when developing new eBusiness
 applications, whereas J2EE makes you treat other languages as separate
.NET benefits from being strongly interweaved with the underlying operating

                                                             .NET vs J2EE
                                          6/Conclusive considerations
Arguments for .J2EE and against .NET

J2EE is a proven platform, with a few new web services APIs. .NET is a
 rewrite and introduces risk as with any first-generation technology
J2EE is a more advanced programming model, appropriate for well-trained
 developers who want to build more advanced object models and take
 advantage of performance features
J2EE lets you take advantage of existing hardware you may have
J2EE gives you platform neutrality, including Windows. You also get good
 (but not free) portability. This isolates you from heterogeneous deployment
J2EE has a better legacy integration story through the Java Connector
 Architecture (JCA)
J2EE lets you use any operating system you prefer, such as Windows,
 UNIX, or mainframe.
Developers can use the environment they are most productive in.
According to Gartner, there are 2.5 million Java developers. IDC predicts
 this will grow to 4 million by 2004. 78% universities teach Java, and 50% of
 universities require Java.                                                     59
                                                           .NET vs J2EE
                                         6/Conclusive considerations

My opinion:

The .NET vs. Java debate is not good versus bad. It’s about what is more ―fit
 for purpose.‖ They are both excellent technologies and developer tools.
A .NET GUI application for desktop Windows is consistent with the strategies
 being implemented by other software vendors and other major industry
Java is commonly used to build server based application components for large
 scale, high volume web sites. However, .NET is gaining momentum in this
  area as well.

                  .NET vs J2EE
           Questions and Answers

Any questions?

.NET vs J2EE

.NET vs J2EE


To top