Feature J2Ee
Feature J2Ee
J2EE
.NET
Standard
Product
Middleware Vendors
30+
Microsoft
Interpreter
JRE
CLR
JSP
ASP.NET
Middle-Tier
Components
EJB
Database access
JDBC SQL/J
ADO.NET
SOAP, WSDL,
UDDI
Yes
Yes
Implicit middleware
(load-balancing, etc)
Yes
Yes
Type of technology
Microsoft.NET
J2EE
Key differentiators
C# and Java both derive from C and C++. Most significant features
(e.g., garbage collection, hierarchical namespaces) are present in
both. C# borrows some of the component concepts from JavaBeans
(properties/attributes, events, etc.), adds some of its own (like
metadata tags), but incorporates these features into the syntax
differently.
C# programming
language
Java programming
language
.NET common
components (aka the
".NET Framework
SDK")
Java ServerPages
(JSP)
ASP+ will use Visual Basic, C#, and possibly other languages for
code snippets. All get compiled into native code through the
common language runtime (as opposed to being interpreted each
time, like ASPs). JSPs use Java code (snippets, or JavaBean
references), compiled into Java bytecodes (either on-demand or
batch-compiled, depending on the JSP implementation).
Java Virtual
Machine and
CORBA IDL and
ORB
Java Swing
Existing J2EE code will translate into a J2EE web services system without major rewrites.
Not true for Windows DNA code ported to .NET.
.NET web services are not interoperable with current industry standards. Their BizTalk
framework has proprietary SOAP extensions and does not support ebXML.
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.
J2EE lets you use Java, which is better than C# due to market-share and maturity. According
to Gartner, there are 2.5 million Java developers. IDC predicts this will grow to 4 million by
2003. 78% universities teach Java, and 50% of universities require Java.
We would not want to use any language other than C# or Java for development of new
mission-critical solutions, such as a hacked object-oriented version of C, VB, or COBOL.
We are finding most ISVs and consulting companies going with J2EE because they cannot
control their customers' target platforms. We believe this application availability will result
in J2EE beginning to dominate more and more as time goes on.