Microsoft's .Net

What exactly is .Net? (May 2002 issue)

At heart, .Net is an architecture for distributed computing. In the late 1970s and early 1980s, distributed computing was a hot topic. Hewlett-Packard offered software for its HP-3000 minicomputers that allowed an application running on one machine to talk to an application running on one or more remote machines. The machines were typically connected via dialup modems. In a typical environment, the local application might be a corporate management-reporting program, and the remote program might be a division inventory database inquiry program. The former would ask for data from the latter in order to generate an up-to-the-minute report. The protocols used between the two programs were proprietary to HP.

Now skip ahead 20 years. The Internet replaces the dialup modems; pieces of code running on PCs, servers and handhelds replace the dedicated application programs; and industry standards such as XML and SOAP replace the proprietary protocols. In a typical environment, the local application might be an inventory-lookup program, and the remote program might be a corporate inventory management system. The latter publishes a "web service" that allows the former to make a remote procedure call to check real-time inventory levels. The vocabulary is entirely different, but the end goal is the same - distributed computing.

More of the Iceberg

Suppose you are a user on the local system, and you want to use the inventory-lookup program to check on the inventory of an item at corporate. Before you can access the corporate inventory levels, you must be authenticated. Authentication is the process of accepting credentials from a user and validating those credentials against a designated authority. Microsoft's Passport (the thing that everyone's upset about) is a centralized authentication service that offers a single logon facility and membership services for participating websites (in this example, the website where the real-time inventory web service is published). In this example, the only information stored in Passport would be whatever the corporate website requires for access to inventory levels - at least a user name and password, and perhaps additional fields such as division or department codes.

As an example of web services that's much closer to home, today you can use Excel to check stock quotes using the "Delayed Stock Quote" web service, one of many web services provided by Xmethods. An article published in the MSDN library provides the details.

Looking at the forest instead of the trees, it's clear that computers, communications, applications and services are no longer separate things, but are really parts of a larger environment. The environment has many characteristics, including data (e.g., email & pictures), preferences (e.g., buddy lists & network priorities), notifications (e.g., events & people presence), and security (e.g., multiple accounts & passwords). .Net is a concept that spans this environment and provides technologies and tools to access it and interact with it.

Protocols One of the basic building blocks of the .Net architecture is a set of standard protocols that allow all network entities to interact. .Net makes use of four key standards, as follows:

HTTP: Hyper Text Transfer Protocol, the underlying protocol used by the World Wide Web. It defines how messages are formatted and transmitted, and what actions Web browsers and servers should take in response to various commands.

XML: Extensible Markup Language, a specification developed by the World Wide Web Consortium (W3C). XML is a system for organizing and tagging elements of a Web document. Because it allows designers to create their own customized tags, it enables the definition, transmission, validation and interpretation of data between applications and organizations.

SOAP: Simple Object Access Protocol, a way for applications to communicate with each other over the Internet, independent of platform. SOAP relies on XML to define the format of the information to be communicated, and then adds HTTP headers to send it.

UDDI: Universal Description, Discovery and Integration, an XML-based distributed Web directory that enables businesses (services) to list themselves on the Internet and discover each other. UDDI is similar to a traditional phone book's yellow and white pages. UDDI uses WSDL (Web Services Description Language) to describe a Web service's capabilities as collections of communication endpoints capable of exchanging messages. [Source: http://www.webopedia.com]

Program Development Tools

If you read about developing software under .Net, you'll see frequent references to the term ".Net Framework." The .Net Framework is an application development and execution environment optimized for use in distributed computing. It represents an entirely new programming model for Windows CE applications. It consists of two main components, the common language runtime (CLR) and a class library. The CLR manages code at execution time, handling memory management, thread management, remoting and exception handling, while enforcing type safety and other forms of code accuracy. (The CLR uses about 2 MB of memory.) Code produced by .Net compilers that target the CLR is called "managed code"; code that targets the Windows CE OS directly is called "unmanaged" or "native" code. Native code runs faster but is much less portable. A "Compact" version of the .Net Framework that's designed to run on resource-constrained devices such as handhelds is currently in beta; final release is planned for mid-2002.

One of the main benefits of the .Net Framework is that it allows developers to use the same tools, languages, APIs and programming models to create an application, regardless of the device on which it runs -- PC, server, handheld device, set-top box, or whatever. This is a big change from the present situation, where different tools are required for each environment. The result is an increased ability to develop applications and services that span devices (think of the forest and all those trees again).

Visual Studio .Net is Microsoft's latest development tool. It's the primary tool that developers use to create applications on CE .Net. One of the toolkits in this product-the Mobile Internet Toolkit-sounds particularly promising. Using it, drag-and-drop construction of a Visual Basic application can produce a graphical, interactive Web page that is immediately accessible by wireless link from a Pocket PC. Smart Device Extensions (SDE), an add-on to Visual Studio .Net due for beta release later in 2002, will allow developers to easily create Pocket PC or other CE .Net device applications which can access and use Web services.

The programming languages supported by Visual Studio .Net when developing for CE .Net devices include Visual Basic .Net 4.0, Visual C++ .Net 4.0, and Visual C# .Net 4.0 ("C Sharp" is a new programming language designed specifically to take advantage of the .Net Compact Framework). These are all-new language compilers; the existing compilers are not supported under CE .Net. In fact, applications created with the current eMbedded Visual Basic (3.0) won't run at all under CE .Net, since it's an interpreted language, while the new Visual Basic .Net is a complied language. It's also interesting to note that applications created with these new compilers won't run on CE 3.0. No pain, no gain.

What If

Because the .Net concept is so far-reaching, writers and analysts are fond of playing "what if" with ideas that flow from the .Net concept. The following are a few of the ideas about .Net that are often explored in print:
  • The .Net user will be connected to an array of computers and services that will communicate among themselves, exchanging and combining objects and data to meet the user's needs (can the network become sentient?).
  • As a logical outgrowth of web services, all software will be rented as a hosted service over the Internet, instead of purchased on a store shelf. The Internet will house all applications and data (is this a return to the "glass house" of mainframe computing?).
  • .Net users will have access to all the information on the Internet from any device, anytime, anywhere (what is the optimum device for this application?).
  • .Net will include new ways to interact with application data, such as speech and handwriting recognition (is .Net going to make this finally happen, after all these years?).

Baby Steps

.Net is still in its infancy. Building devices and applications that work reliably on any device, anytime, anywhere is very complex. Here's a simple example: Suppose you're walking around the campus with your smart device connected via wireless LAN. Suppose that the application on your smart device is connected to a web service that plays chess with you while also displaying your company's real-time stock price in a corner of the screen (see http://www.xmethods.net/). As you walk out of range of one wireless network and into range of another wireless network, your IP address changes. Because DNS (Domain Name Service) was never designed to handle changes in IP addresses more often than once per day, your connection to the web service gets lost when your IP address changes. It's a journey of a thousand steps, and CE .Net is somewhere around step #142.

For More Information

Windows .Net Home
Got Dot Net Home

Comments/Questions?

Geoff Walker


All contents ©1995-2002 Pen Computing Magazine, Inc. All rights reserved.
Unauthorized reproduction in any form is strictly prohibited.
Contact the Pen Computing Publishing Office for reprint information
.