IV. Microsoft's .NET Platform
--------------------------------------------------------------------------------
Microsoft.NET8 is product suite that enables organizations to build smart, enterprise-class web services. Note the important difference: .NET is a product strategy, whereas J2EE is a standard to which products are written.
Microsoft.NET is largely a rewrite of Windows DNA, which was Microsoft's previous platform for developing enterprise applications. Windows DNA includes many proven technologies that are in production today, including Microsoft Transaction Server (MTS) and COM+, Microsoft Message Queue (MSMQ), and the Microsoft SQL Server database. The new .NET Framework replaces these technologies, and includes a web services layer as well as improved language support.
The developer model for building web services with Microsoft.NET is shown in Figure 4.
Figure 4 Developing web services with Microsoft.NET
Briefly, Figure 4 is explained as follows:
The .NET application is hosted within a container, which provides qualities of service necessary for enterprise applications, such as transactions, security, and messaging services.
The business layer of the .NET application is built using .NET managed components. This layer performs business processing and data logic. It connects to databases using Active Data Objects (ADO.NET) and existing systems using services provided by Microsoft Host Integration Server 2000, such as the COM Transaction Integrator (COM TI). It can also connect to business partners using web services technologies (SOAP, UDDI, WSDL).
Business partners can connect with the .NET application through web services technologies (SOAP, UDDI, WSDL, BizTalk).
Traditional 'thick' clients, web browsers, wireless devices connect to Active Server Pages (ASP.NET) which render user interfaces in HTML, XHTML, or WML. Heavyweight user interfaces are built using Windows Forms.
The .NET Framework
Microsoft.NET offers language-independence and language-interoperability. This is one of the most intriguing and fundamental aspects of the .NET platform. A single .NET component can be written, for example, partially in VB.NET, the .NET version of Visual Basic, and C#, Microsoft's new object-oriented programming language.
How does this work? First, source code is translated into Microsoft Intermediate Language, sometimes abbreviated MSIL, sometimes IL. This IL code is language-neutral, and is analogous to Java bytecode.
The IL code then needs to be interpreted and translated into a native executable. The .NET Framework includes the Common Language Runtime (CLR), analogous to the Java Runtime Environment (JRE), which achieves this goal. The CLR is Microsoft's intermediary between .NET developers' source code and the underlying hardware, and all .NET code ultimately runs within the CLR.
This CLR provides many exciting features not available in earlier versions of Windows DNA, such as automatic garbage collection, exception handling, cross-language inheritance, debugging, and "side-by-side" execution of different versions of the same .NET component.
.NET Servers
The .NET platform includes the following .NET Enterprise Servers. Many of these are repackagings of existing products under a common marketing term:
SQL Server 2000 is Microsoft's relational database.
Exchange 2000 Server is a messaging and collaboration platform useful in developing and running core business services and is now tightly integrated with Windows 2000.
Commerce Server 2000 offers you quicker and less complicated development and deployment of customizable online e-commerce solutions.
Application Center Server 2000. Application Center Server 2000 lets you manage clustered servers.
Host Integration Server 2000. Host Integration Server 2000 gives you access to selected legacy systems running on other platforms (primarily IBM-based).
Internet Security and Acceleration (ISA) Server 2000 offers firewall and Web caching capabilities.
BizTalk Server 2000 is Microsoft's XML-based collaborative e-business solution for integrating applications, trading partners and business processes via the Internet.
Other .NET Products and Services
A new version of Visual Studio, another of Microsoft's flagship products, has been released as Visual Studio.NET, an integrated development environment for the .NET platform. All languages supported by Visual Studio prior to the release of .NET (except for Java) are still supported by Visual Studio.
Visual Studio.NET also provides support for Microsoft's new C# language which is semantically equivalent to Java, with just a few minor syntactical differences.
Hailstorm9 is Microsoft's portfolio of building block web services. Microsoft and possibly Microsoft partners will host the Hailstorm web services. Some Hailstorm web services will be available on a subscription basis, and others will be free. For example, Microsoft's Passport service is now freely available as a web service-oriented universal identification mechanism.
Web services such as Microsoft's Passport offer a shared context in that many other web services can depend upon Passport for identity and security credentials. User's need not have their contextual information spread across and possibly duplicated across multiple web sites. "Islands" of information can now be located in a single repository and then shared by user-centric web services regardless of the invoking client device.
Privacy of information is focal point in Hailstorm web servicing. In fact, users of Hailstorm web services are empowered to manage the availability of their personal information through "affirmative consent".
Understanding J2EE and .NET by analogy
To help you understand both models, we offer analogies between J2EE and .NET technologies in Table 1. This table only showcases the similarities--we will get to the differences in a few moments.
Feature | J2EE | .NET
=======================+===================+=========================
Type of technology | Standard | Product
-----------------------+-------------------+-------------------------
Middleware Vendors | 30+ | Microsoft
-----------------------+-------------------+-------------------------
Interpreter | JRE | CLR
-----------------------+-------------------+-------------------------
Dynamic Web Pages | JSP | ASP.NET
-----------------------+-------------------+-------------------------
Middle-Tier Components | EJB | .NET Managed Components
-----------------------+-------------------+-------------------------
Database access | JDBC SQL/J | ADO.NET
-----------------------+-------------------+-------------------------
SOAP, WSDL, UDDI | Yes | Yes
-----------------------+-------------------+-------------------------
Implicit middleware | Yes | Yes
(load-balancing, etc) | |
Table 1 Analogies between J2EE and .NET