Is .NET another framework promising to heal the world's software ills? No, but
it goes a long way toward curing the complexities of implementing distributed
computing. The framework, in fact, is not .NET, but only the foundation of
Microsoft's .NET vision. That vision, encapsulated in a single phrase, is
software that can be executed any time, in any place, and on any device. A more
technical definition is transparent application collaboration in a
device-independent, distributed environment. From a developer's perspective,
this vision is constructed on a foundation of the following five elements:
tools, technologies, servers, services, and smart devices.

Tools

Visual Studio .NET will certainly be the preeminent tool for .NET developers.
The integrated development environment (IDE), familiar to so many developers, is
now a truly integrated environment to seamlessly create Windows- or Web-based
applications or middle-tier infrastructure. Visual Studio .NET (VS.NET) will
ultimately be released in three versions: Professional, Enterprise Developer,
and Enterprise Architect. Numerous other tools also exist to aid in the
generation of such things as Web service proxies (wsdl.exe) and C# wrappers for
Component Object Model (COM) objects (tlbimp.exe). Finally, there are two
software development kits (SDKs) at present-the framework SDK and the Mobile
Internet SDK-and an interesting third offering on the horizon. Currently in
pre-beta, the ObjectSpaces SDK uses an Extensible Markup Language (XML)
vocabulary to convert objects into sets of database tables. It supposedly will
support inherited, nested, and contained objects. As .NET matures, you can
expect a wave of tools and SDKs to flood the market.

Technologies

The technologies figuring most prominently in the .NET vision are six key
protocols or technologies that the World Wide Web Consortium (W3C), the European
Computer Manufacturers Association (ECMA), Microsoft, and IBM have already
accepted or are currently considering as standards.

XML, the W3C standard for formatting structured data according to a set
of rules, lies at the core of .NET. Configuration files use XML. Five namespaces
in the .NET class library are devoted to creating and querying XML streams and
documents. (A namespace is a string identifier, wrapping classes to reduce the
potential of class name conflicts across multiple dynamic-link libraries or
DLLs.)

Simple Object Access Protocol (SOAP), a proposed W3C standard built on
XML, is designed to define communication between loosely coupled applications
across any platform. .NET's Web services implement SOAP over Hypertext Transfer
Protocol (HTTP) as the default protocol.

Web Services Description Language (WSDL), another proposed W3C standard,
describes what functionality a Web service provides and what arguments and
methods are available to the consumer.

Universal Description, Discovery and Integration (UDDI) is a means for
providing a directory of Web services. It allows providers to advertise Web
services and consumers to locate them. There are plans to submit this
specification, which IBM and Microsoft have adopted, to a standards body in the
future.

C# is the new and premier programming language of .NET. Heavily
influenced by C++ and Java, it is a powerful, object-oriented language that will
feel familiar to developers migrating from those languages. Proof of the
elegance of C# will be evident through this book.

The Common Language Infrastructure (CLI), which is currently before the
ECMA for acceptance, is an umbrella that covers the definition of .NET and
numerous subspecifications that make up the comprehensive, robust framework. As
this is the heart of the chapter, the CLI and its various components will be
dealt with in detail in subsequent sections.

Servers

The servers are a suite of enterprise applications to administer and facilitate
business functions. The following servers are available for supporting or
hosting the .NET Framework:

.NET My Services, formerly HailStorm, is Microsoft's strategy to secure revenue
on a subscription basis. The vision encompasses a set of Web services that can
be invoked over the Internet by any subscribing client's application. It
promises to deliver enhanced convenience and utility to business and to the
consumer. This new approach to using the Web is largely untried and unproven.

Microsoft currently offers two services in this manner. The first, .NET
Passport, is a suite of authentication and encryption services that has
single-point access over the Internet. The Passport .NET and the .NET Framework
9 client, using any device, is granted access to any Passport Web site without
requiring a login. Required authentication takes place in the background,
between the Passport Web site and the Passport server.

The second service, .NET Alerts, is an opt-in, push notification service. An
Alerts client, for example, who requests a notification if a specified stock
reaches a stated price, would automatically be notified by his broker when that
price is reached. Used in conjunction with the Passport service, the Alerts
server is aware of the devices associated with the client and sends notification
through the device currently in use-for example, it calls a client who is on the
phone or sends e-mail notification to a client who is typing on a laptop.

It is important to understand the distinction between a Web site, a Web service,
and .NET My Services. A Web site is the presentation of an application that
users can interact with over the Internet. A Web service, on the other hand, is
a new, innovative interaction between two or more applications over the
Internet. Web services (covered extensively in Chapter 13) are based upon XML
and SOAP messages using HTTP as the transport mechanism. Finally, .NET My
Services is primarily a Microsoft business strategy that happens to use Web
services as a medium.

Smart Devices

Smart devices access and present data in the appropriate form for a
particular device anytime and anywhere. In reality, the device is as thick as a
brick; the software is smart. Microsoft's vision of smart devices has ambitions
to be hardware and software smart. The following capabilities are among the
components that make up that ambition:

The logged-on user's preferences are understood. Alerts and information are tailored to location and type of device in use.

The device responds to bandwidth constraints, to take advantage of the type of Internet connection when sending and receiving information.

Information can be accessed anytime and anywhere in a device-appropriate form.

When a device detects another device, it can send information in the format that is most appropriate to that device. Devices interrogate each other to determine which services are available.

Conclusion

Hope this article would have helped you in understanding .NET, .NET Framework
and other technologies related to .NET. See my other articles on the website on
.NET and VB.NET.