This article has been excerpted from book "Visual C# Programmer's Guide"
Introduction to .NET
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.
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.
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.
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:
Windows XP Advanced Server, or Windows 2000 Advanced Server, is the .NET platform to host Microsoft's suite of enterprise servers.
SQL Server 2000 is Microsoft's fully XML-enabled relational database.
Exchange Server 2000 handles messaging and collaboration.
Host Integration Server 2000 is the result of the evolving SNA Server to access mainframe applications and databases.
Commerce Server 2000 builds e-commerce Web applications.
Application Center 2000 deploys and manages Web applications.
BizTalk Server 2000 accelerates the building of business processes and document interchange.
Internet Security and Acceleration Server 2000 provides Web caching and firewall services.
Mobile Information Server 2001, the latest of the .NET servers, provides wireless access to information.
.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 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.
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 C#.