Title: 'NET vs J2EE A Comparative Analysis
1.NET vs J2EE A Comparative Analysis
- Michele Arpaia
- IT Professional
2/Agenda
What software architecture is
A typical eBusiness scenario
.NET Architectures
J2EE Architectures
Similarities Differences between J2EE .NET
Conclusive considerations
30/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 needs - Be more objective without fighting a religious
war!
4What architectures are
- Michele Arpaia
- IT Professional
51/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 following - 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 its 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
61/Architecture definition
- More formally we can define a software
architecture as - an abstract representation of a systems
components and behaviors. Ideally, architecture
does not contain details about implementation
(thats 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
71/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
81/Layering
- 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 modules - 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 -
91/Tier
- 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
101/Framework
- 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 Accentures got ACA.NET GRNDS!
111/Architecture capabilities
12A typical scenario
- Michele Arpaia
- IT Professional
132/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 investment.
142/A typical eBusiness scenario
A typical multitiered architecture where software
is placed on different processes
152/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) capabilities. - Considering MVC Pattern, this tier plays the View
role
162/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.
172/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.
18.NET architectures
- Michele Arpaia
- IT Professional
193/Microsoft-based Architectures
.NET is Microsofts 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.
203/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.
213/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
PC. Calling services from other applications or
even other enterprises can leverage the business
functions provided by the application. Presentatio
n 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.
223/Microsoft-based Architectures
ASP.NET is Microsofts 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
233/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 signature. - Consider a rich client if your application runs
in a controlled environment, must work offline,
uses local APIs, or uses peer-to-peer technology.
243/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.
253/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 (RDMS). - 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.
263/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
languagesincluding Microsoft Visual Basic .NET,
Microsoft Visual CÂ .NET, Microsoft Visual
CÂ .NET, and Microsoft Visual JÂ .NET.
273/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.
283/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.
293/Microsoft-based Architectures
- PROs
- End-to-end technology vendor can provide all
the integrated components - 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 VB.NET
- CONs
- Platform dependence .NET must currently run on
proprietary Microsoft systems - Security must be sure to perform strict audit
and apply all updates
30Knowledge Capital
- Resources
- 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/
31Java based architectures
- Michele Arpaia
- IT Professional
324/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.
334/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.
344/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 platform. - 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 enterprises business-critical data. This
data and the systems that manage it are at the
inner-core of the enterprise.
354/Java-based Architectures
- The J2EE-based Application Architecture consists
of four main tiers
364/Java-based Architectures
The JavaServer Pages (JSP) technology provides an
extensible way to generate dynamic content for a
Web client.
- 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 lt and
end with gt. 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 application. - 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 benefits.
374/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 arent 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.
384/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 characteristics
- 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
39Session 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 beans container crashes, any uncommitted
information or processing is lost.
404/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 persistence). - 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.
414/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 messages. - 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 dont require a
reply. - Message-driven beans typically call other EJBs
(Session or Entity) to perform their operations. - Message-driven beans and JMS are becoming
increasingly popular in Web Services and other
service-oriented architectures. They allow
applications to receive messages even if some
backend systems are down. When the systems come
back up, messages will be pulled from the queue
and processed by the bean.
424/Java-based Architectures
- A services 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 transactions - J2EE Connector Architecture (JCA) - defines
interfaces for the integration of enterprise
applications (ERP, CRM, etc.) with Java-based
applications
434/Java-based Architectures
- PROs
- 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
- CONs
- Complexity
- Possible integration of multiple vendor solutions
- Longevity of vendors
- Skill set of individuals
444/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
45Similarities Differences between J2EE .NET
- Michele Arpaia
- IT Professional
465/Strategic Comparison
475/Strategic Comparison
Java and Microsoft .NET have very similar
conceptual architectures.
.NET
Java
Source Code
VB, C, C, COBOL, others
Java
Compiler
Compiler
Intermediate Code
MSIL (Microsoft Intermediate Language)
Java byte code
- CLR (Common Language Runtime)
- Wintel platform today, but likely to be ported
- JRE (Java Runtime Env. aka JVM)
- Many OS (Sun, IBM, HP, Linux, Wintel )
- Many App servers (BEA, Apache, IBM, Sun )
Run Time
Current Platform Support
- Intel x86
- When CLR is ported then other .NET applications
will run on other platforms
Intel x86, Sun, HP, IBM
485/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. Lets hear what Paul
Harmons admits - 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.
495/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.
505/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.
515/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 WebGains Visual Café, IBMs VisualAge for
Java, Borlands 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, Microsofts 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, .NETs GUI
component set.
525/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.
535/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 its
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.
54Conclusive considerations
- Michele Arpaia
- IT Professional
556/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
- Both technologies provide a rich set of class
libraries for networking and Internet integration
Excellent
Excellent
- Java is more mature and is available on more
platforms - Both provide solid reliability
Good
Excellent
- Both Java and .NET offer good performance
- Both Java and .NET introduce some overhead due to
their reliance on a Runtime layer
Very Good
Very Good
- Java and the .NET programming languages are rich
object oriented languages with many built-in
classes to re-use - Microsofts Integrated Development Environment
(IDE) is ahead of those offered by the Java
community
Excellent
Very Good
- Java and .NET both improve on the ability to
build and deploy applications that are easier to
maintain and support
Good
Good
566/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 CLRs 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 Manufacturers 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 Property
576/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
586/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 mind-share - .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
applications - .NET benefits from being strongly interweaved
with the underlying operating system
596/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 environments. - 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.
606/Conclusive considerations
- My opinion
- The .NET vs. Java debate is not good versus bad.
Its 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 players. - 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.
61Questions and Answers
Any questions?
62(No Transcript)
63(No Transcript)