.NET, if Microsoft has its wish, is meant to be a dynasty. What Ming was to porcelain is what Microsoft wants .NET to be when it comes to Web services “inspired Web applications.
.NET is meant to encompass all of Microsoft s initiatives that pertain to XML, Web services, and post-Y2K e-business. With .NET, Microsoft is borrowing a concept that for so long was quintessentially IBM s. This is the concept of a blueprint or marketecture la IBM s Systems Application Architecture (SAA) in 1987, the Networking Blueprint in 1992, or the more recent WebSphere framework. .NET is in effect Microsoft s Web services “oriented SAA for the first decade of the twenty-first century ” where, ironically, the one big difference is that IBM, a decade ahead of Java, was trying to promote the concept of applications that could run on disparate platforms, whereas with .NET Microsoft is assiduously promoting a platform-specific solution.
.NET is not a single product. It is an umbrella term , which, like IBM s WebSphere, spans a plethora of products ”in this case Microsoft software offerings for clients (both desktop and mobile), servers, application suites (e.g., Microsoft Office XP), services, and software developer systems. .NET Framework is the program execution layer of .NET.
The .NET Framework, Microsoft claims, is the first software environment built from the ground up to provide native support for XML Web services, in addition to other more traditional types of applications, so much so that Microsoft has a graphic, as shown in Figure 3.10, which depicts the .NET Framework as a sausage machine for delivering Web services.
To realize the intended native support for Web services, .NET Framework is tightly and fully integrated into the latest Windows operating systems ”namely, Windows 2003 Server family, Windows 2000 (with Service Pack 3 or 4), or Windows XP. It is thus a Windows component. The .NET Framework (which was at Version 1.1 as of June 2003) includes everything you need to run applications built using the .NET Framework, including the Common Language Runtime (CLR) and the necessary class libraries.
Having .NET Framework integrated into Windows thus obviates the need for a separate application server to run .NET-compliant applications and Web services. This is one of Microsoft s main value propositions for .NET ”that is, the supposed elimination of costly middleware (e.g., IBM s WebSphere Application Server) to run Web services or applications making use of Web services. The problem here, however, is that .NET only supports applications and Web services developed using .NET-compliant products. It does not support Java applications. To run Java applications, especially J2EE-based Java applications, one would typically need to install a Java application server.
If an older Windows 2000 or Windows XP system does not have the .NET Framework installed, Microsoft provides a free and easy download of the .NET Framework 1.1 as a part of the now-standard Windows Update process. You can check whether the .NET Framework is installed on a Windows system by using the standard Add or Remove Programs control panel ”as illustrated in Figure 3.11.
There is also a free, downloadable Software Development Kit (SDK) Version 1.1, which includes everything one needs to write, build, test, and deploy .NET Framework applications. This SDK 1.1 consists of documentation, application samples, command-line tools, and compilers. Since the .NET Framework 1.1 (or greater) is required to run any application, including Web services developed by others using a .NET Framework 1.1 (or greater) offering, it is best to have .NET Framework installed.
Microsoft describes the .NET initiative as being software that connects information, people, systems, and devices. Within that overall context, the .NET Framework becomes the programming model of the .NET environment for building, deploying, and running Web-based applications, smart client applications, and XML Web services. .NET, per Microsoft, will take care of much of the software plumbing (i.e., interfacing and necessary service location), thus enabling software developers to focus on the problem-solving aspects of their programs.
.NET, which spans clients, servers, application suites, and development tools, is made up of (at a minimum):
The .NET Framework
A set of servers
A repertoire of clients
A group of services
The .NET Framework is .NET s universal application execution environment. .NET-centric XML Web services, as well as other applications, are tested , deployed, and run on the .NET Framework of a Windows system ” whether that Windows system is installed on a server or client. On the server side, .NET is supported on Windows 2000 (with SP3, SP4, or later), and Windows 2003. However, support for .NET is also included in other related server products, particularly Microsoft s BizTalk Server and Microsoft SQL Server. In all cases, .NET functionality as it relates to executing, operating, and managing XML Web services and other Web-centric applications is integrated with the Microsoft server code in the form of the .NET Framework.
On the client side, .NET is embraced by Windows XP, Windows CE .NET 4.2 (for non-PC devices, such as cash registers, automated teller machines, and medical recording systems that require an embedded OS), and Windows Mobile 2003 for Pocket PCs. Note the absence of Windows ME and the still widely used Windows 98, but this makes sense. Windows XP, based on the Windows NT code set, is indubitably the most stable and resilient release of Windows to date.
Until now, I was never a big proponent of upgrading Windows on client systems just because a newer version was available. However, Windows XP is so palpably superior that I am willing to concede that upgrading to XP, where possible, is worth the trouble and cost ”and should typically result in a positive ROI within a year just from the minimization of lost opportunity costs (i.e., downtime), without even factoring in the inevitable increase in user satisfaction.
On the development tool front, the flagship Microsoft offering when it comes to .NET is the Visual Studio .NET ”which in its latest incarnation is known as Visual Studio .NET 2003. Visual Studio, like all the other point-and-click, drag-and-drop software development studios on the market, is a GUI-based integrated development environment (IDE). It has obviously been optimized to ensure developer productivity when developing Web services or other applications to be deployed to run on the .NET Framework. Visual Studio .NET is discussed in more detail next .
Microsoft, predictably, classes Microsoft Office XP as a .NET-compliant application. This is a bit of a stretch, but, to be fair, Microsoft, as earlier pointed out, has imbued significant XML capabilities into the pertinent applications ”in particular, Excel and Word. Based on these criteria, one would have thought that Microsoft would have mentioned the XML Notepad as another .NET application, but Microsoft appears to have abandoned this freeware product, as mentioned in Section 2.7. One assumes that Microsoft and its partners will label other germane applications as being .NET-compliant down the road.
As of the summer of 2003, there were at least four Microsoft services that fell, albeit loosely, within the category of .NET-related services. These were as follows :
MSN Messenger Connect
Microsoft MapPoint Web Service
Microsoft .NET Alerts has evolved from a real-time, e-mail-based change in flight status notification system (i.e., flight delayed or flight canceled ) that Microsoft postulated in early 2001 as a part of its HailStorm initiative (discussed later). Since then, Microsoft has expanded this concept of real-time notification to encompass any type of high-priority, critical information (e.g., dramatic swing in the price of a stock, news on a merger or acquisition). Microsoft s .NET Alerts, as such, are time-sensitive notification messages that service providers can send to customers, in real time, at the customer s request ”in the event that something of interest and value to that customer transpires. Not surprisingly, changes in flight status, including notification of possible upgrades, continue to be a major application for this service ”with United Airlines, for one, supporting .NET Alerts. Users can receive .NET Alerts on their desktop computers through Windows Messenger (i.e., an instant messenger [IM] scheme), in e-mail, or on a mobile device, such as a phone or PDA.
.NET Passport, which is described in more detail in Section 3.4, is Microsoft s now star-crossed user authentication scheme to facilitate a common single sign-on to multiple Web sites, portals, and services. The goal of Passport, as with any single sign-on scheme, is to eliminate the need for users to maintain (and remember) multiple user IDs and passwords for different sites, applications, and services. Most other single sign-on schemes (e.g., IBM s Express Logon feature on its host integration products) focus on providing single sign-on at an enterprise or data center basis (i.e., on an intranet or extranet basis).
Passport, on the other hand, set out from the get-go to offer single sign-on across organizations, Web sites, and even countries . It was to be the strategic single sign-on scheme for the Web. According to Microsoft, at the beginning of 2003, there were more than 200 million Passport accounts (i.e., users) around the world ”and more than 3.5 billion Passport-based authentications were being made each month. Nonetheless, Passport, always an obvious target for security attacks, has of late (i.e., 2002 onward) been beset by major, high-profile security exposures. Though Microsoft has scrambled to fix each of these incidents, it suffices to say that Passport s credibility continues to be undermined.
The Liberty Alliance Project was initiated in September 2001 by such super heavyweights as AOL, Sun, H-P, Novell, VeriSign, Sony, General Motors, American Express, Nokia, and Fidelity Express to provide an open , standards “based alternative to Passport. The problem here is that whereas Passport, for all its flaws, is a tangible , operational offering, the Liberty Alliance, at least as of the time of this writing, only deals in specifications and draft standards. Consequently, there is really no viable alternative to Passport. A single sign-on, despite its usefulness , may as yet be too premature for the Web. Though inconvenient, maintaining separate user IDs and passwords for different Web sites and services may still be the best, if not the only, option for those who value their privacy and are concerned about the security of their personal information.
Microsoft Network (MSN) Messenger Connect for Enterprises is in essence a variation of the .NET Alert services. It enables companies to interact with their customers in a secure and audit trail “ maintained manner using MSN Messenger instant messaging (IM). Companies can gainfully use it to share time-sensitive information with their customers and process transactions in real time. All messages are authenticated so that recipients can be assured of their bona fide nature. All messages are also logged so that they could be audited in the future if there is ever a need to check a particular set of communications. Ironically, this might not be as attractive as it may first appear. Following all of the recent lawsuits involving corporations, including the antitrust case against Microsoft, where archived e-mail correspondence was unearthed to be used as evidence, many corporate executives have resorted to using IM as a no paper trail mechanism to communicate sensitive or provocative information.
Microsoft s nascent MapPoint Web Service is a good example of Web service technology in practice. It is a programmatic XML Web service for integrating maps, driving directions, distance calculations, proximity searches, and other geographic location “related intelligence into new applications. All of you are probably very familiar with the hot links to MapQuest (or equivalent) available on many Web pages when referring to a street address (e.g., a restaurant or hotel) or geographic location so that you can click on it to get a map of the area in question. MapPoint now offers this capability as a Web service, as opposed to a hot link, so that mapping services can be seamlessly integrated into new applications. This, as discussed in Chapter 1, is what Web services are all about.
The .NET Framework is now an important and strategic new integrated component within the Windows family of operating systems ”whether for servers, PC clients, mobile clients, or non-PC terminal clients running an embedded Windows OS (i.e., Windows CE 4.2 or greater). Though it is the native execution environment for XML Web services and other Web applications, it is meant to be unobtrusive , to the point of transparency, as far as end users are concerned. End users will just be running a relatively new version of Windows (e.g., Windows XP or Windows Mobile 2003 Software for Pocket PCs). Most will not be aware that they also have .NET Framework running on their Pocket PCs or smart phones.
The .NET Framework, as illustrated in Figure 3.12, consists of two key subcomponents, namely:
The Common Language Runtime (CLR)
A unified set of class libraries referred to as the .NET Framework Class Library
CLR is a Windows-specific execution environment. You could even think of it as a virtual machine, la a Java Virtual Machine (JVM) or Java container, but in this instance for .NET applications ”including Web services. As with a VM or Java container, it provides all the common services required by .NET applications. Some of the key services provided by the CLR include language integration, security, memory allocation, process control, thread management, and unified error handling. It also provides development time services to applications being developed within the .NET Framework ”particularly to facilitate cross-language integration.
Microsoft claims that it and its vast network of partners provide .NET Framework “compliant compliers for over 20 programming languages. These languages include C, C++, C#, COBOL, Microsoft Visual BASIC, FORTRAN, RPG, Pascal, Perl, APL, Python, and Microsoft Jscript. Microsoft also claims that over 350 tools are already available from third-party vendors to aid in .NET Framework “centric software development, including nearly 250 add-ons for the Visual Studio .NET.
The .NET Framework Class Library includes prepackaged software components that application developers can use to expedite and simplify their software development process and cycle. Software functionality available as base class components include those for input/output handling, string manipulation, security enforcement, networking, thread management, text processing, and GUI design.
The .NET Framework Class Library is made up of the following three key subcomponents:
ASP.NET, Active Server Pages (ASP) software functionality to facilitate the development of server-based Web applications and Web services
ADO.NET to provide XML-based database interaction, including search and translation functionality, through OLE DB, ODBC, Oracle, and Microsoft SQL Server interfaces
Windows Forms software classes, which are made available to help developers create GUIs for smart clients