In this chapter, you will gain a broad view of .NET by learning more about the vision behind it. This chapter provides an overview of .NET, including its vision and promise. Once you have this in mind, I expect your cranial cogs will start understanding how .NET addresses the challenges set forth in Chapter 2, "Challenges of Software." The opportunities .NET affords should begin to become clearer. The chapter begins with the vision and the promise of .NET.
The Vision and Promise
.NET, as the name suggests, is Internet-oriented. It is not some technology or framework that has been rewired and "Internet-enabled." If you come from pre-Internet COM days, this is not COM repackaged into ActiveX as an Internet solution. Nor is .NET like Citrix WinFrame or MetaFrame products, which promise to let you run and manage applications over the wire as if it were a native solution. Based on the Internet and for the Internet, the .NET architecture is a first-class Internet citizen.
The manner in which .NET achieves its ability to integrate seamlessly with the Web is because it is built using the same open and commonly accepted standards that grease the cogs of the Internet machine, including:
The Hypertext Transfer Protocol (HTTP)
The eXtensible Markup Language (XML)
The Simple Object Access Protocol (SOAP)
The HyperText Markup Language (HTML)
Universal Description Discovery Integration (UDDI)
Web Service Description Language (WSDL)
Simple Mail Transfer Protocol (SMTP)
Multipurpose Internet Mail Extensions (MIME)
While some of these technologies have been in use for years, others, such as WSDL and UDDI, are very recent standards. But the greatest strength of the .NET Platform is perhaps that not only are these technologies in use but they are directly available to you to use. XML is probably the greatest example of thisnot only does .NET communicate data internally and externally in XML but it lets you use the same plumbing to build your own custom solutions.
.NET was designed not only for building Internet solutions, but also for building Internet-enabled applications and services. Imagine traditional desktop or server applications that can dynamically, and without user involvement, connect to the Web as needed in a controlled and secure fashion. Although enabled solutions are possible, the architecture and development model and tools by no means dictate this; you can still build your traditional Windows style applications using the platform.