.NET vs J2EE
With the advent of .NET, Microsoft introduced an enterprise computing platform able to compete toe-to-toe with Sun Microsystems' J2EE (Java 2 Platform, Enterprise Edition). Much debate at the moment revolves around which language works better --.NET's C# or Java?
When thinking of the Java 2 Platform, Enterprise Edition, the key word is platform. Java represents more than just a programming language, as it encompasses the Java Virtual Machine (VM) technology that lets compiled Java programs run unaltered on various machine architectures; tools to compile, analyse, debug, and deploy Java programs; and other components, such as browser plug-ins, rich media, and more.
The three faces of Java:
-- The Java 2 Platform, Micro Edition (J2ME), for handheld and other lower-end devices
-- The Java 2 Platform, Standard Edition (J2SE), targeted at desktop machines
-- The Java 2 Platform, Enterprise Edition (J2EE), installed on servers and responsible for the heavy lifting in the Java world.
Although it's something of a simplification, you can think of J2ME as a subset of J2SE and J2EE as a superset of J2SE.
So what exactly is J2EE? J2EE is a Java-based technology stack, built on top of J2SE, that provides developers with the development tools and runtime capabilities necessary to build enterprise applications meeting rigorous uptime, security, scalability, and maintainability requirements.
On the other hand, Microsoft's .NET framework is based on its CLR, which is composed of a specification for Microsoft Intermediate Language code and a runtime environment that provides memory management (including automatic garbage collection), security and threading. Although this is analogous to the Java Virtual Machine architecture, the difference is that code targeted for the CLR can be written in any language that supports the CLR's component model (whereas only Java supports the Java Virtual Machine)
Visual Studio.NET comes with the Microsoft languages Visual Basic, Visual C++ and Visual C#. C# is an object-oriented language that is a fundamental piece in Microsoft's new .NET strategy. C# builds on the syntax and object-oriented features of C++ and adds functionality to make it more Web services friendly.
Although C# is similar to Java, it is also different. Both languages share many of the same benefits, such as being fully object-oriented, but the languages diverge on features such as operator overloading and enumerations.
The .NET development framework can therefore be subdivided into three parts:
-- A CLR run-time engine.
-- A set of extensive class libraries, written from the ground up, that comprise practically any functionality you could ask for.
-- Two top-level development "arenas" -- one for Web applications (ASP.NET, Active Server Pages) and another for regular Windows applications.
Microsoft has some 13 products in its .NET server line up. Such products include Commerce Server, Content Management Server, BizTalk Server, SQL Server and Windows .NET Server 2003.
Microsoft shipped Release Candidate 1, a near complete version of Windows .NET Server, in late July. Windows.NET Server 2003 is the successor to Windows 2000 Server operating system. It is Microsoft's first server operating system that will ship with native support for the .NET Framework. Windows .NET Server 2003 provides many services that a developer may use to create their loosely coupled applications, says Michael Leworthy, Windows server product manager. "Loosely coupled means that my application can utilise other Web services, and they do not have to be included in my code. I do not have to understand how they work or what system they run on, I can just send them data or requests, and expect certain information from them." This is the great advantage of XML Web services, he says.
Microsoft will ship Content Management Server 2002 by the year's end, adding new support for XML content management and Web services. This product manages content on the Internet and within intranets. One key addition to the software is its integration with Microsoft Word. Users will be able to author content in a Word document with text and graphics and publish that content directly to Content Management Server 2002. In such a case, users will have an option in the File menu in Word that brings up a wizard to help format and set parameters for publishing content to the Web.
Smart client software: Software for running a variety of smart clients, from personal computers (Windows XP), to small-footprint devices like PDAs (Windows CE .NET), to set-top devices (Windows XP Embedded).
XML Web services: lets applications share data and consume services provided by other applications without regard to how those applications were built, what platform they run on, or what devices access them. .NET includes implementations of the latest accepted Web service standards, such as the XML Schema standard. In addition, Microsoft plans to provide many commercially available foundation services, called My Services, to serve as application building blocks. As a recent example, the MapPoint.NET Web service integrates maps and driving directions into applications. (That effort, however, has recently lost some momentum because partners have been slow to jump on board.)
Enterprise servers: products that support enterprise applications by addressing different parts of the overall solution. Among the offerings in the mix are Application Center for deploying and managing Web applications, BizTalk Server for coordinating XML-based business processes across applications and organisations, and the SQL Server database application.
Development tools and the runtime environment: includes Visual Studio .NET, a single integrated development environment for building .NET applications, along with the .NET Framework, which in turn includes, ASP.NET (a new Web development environment for building Web applications and XML Web services), an extensive set of framework class libraries and the Common Language Runtime (CLR).
The CLR basically enables a developer to extend their developmental power with the new classes and objects which are available within the .NET Framework, and develop Web services, just as easily, whether using C, Perl or Cobol.
Edited by Howard Dahdah and David Williams. Computerworld US, JavaWorld and InfoWorld reporters contributed to this guide.