The Microsoft .NET initiative is all-encompassing, ever-present, and in certain ways, brand-new—but the underlying technologies have been with us for some time. In this article, we’ll explore the evolutionary process that made .NET possible, from MS-DOS and the iterations of Windows to ActiveX. It’s all come together to culminate in .NET.
DOS carved its spot in computing history as the innovation that let regular folks use computers. Prior to that, no one user ever operated a computer. It was always operated by a team of users.
When DOS came out in 1981, a couple of companies (most notably, Novell) built software to let teams work on bundles of computers—the first PC-based networks. Other companies built products like Telix, PCBoard and Wildcat, enabling the building of the first distributed public networks. The DOS world was great, but everything changed when Microsoft invented Windows.
Next came Windows, a GUI even your grandmother could use. The old standby, MS-DOS, was still with us working in the background behind Windows. The first widely accepted iteration of this revolutionary product was Windows 3.1; networking was introduced with 3.11. Users could share files and folders graphically and even send e-mail without having to use the cryptic command-line tool.
With Windows making the PC easier to use, suddenly it became simple to access huge, legacy databases. All this easy access began to tax the resources of mainframes. More efficient use of valuable network resources was needed.
Microsoft learned early that regular and recurring releases raise revenue. No product can be everything to every user, and bugs needed to be fixed, so constant upgrades and new product releases were necessary. With each release, new features (and bugs) were introduced.
The first release of Win32 was Windows 95. This was a big change, moving from a 16-bit system in Windows 3.x and MS-DOS to a 32-bit operating system in Windows 95. This new version contained robust networking features and tools out of the box. This included standard TCP/IP support and wizards to automate network access/setup.
About the same time, and between Microsoft’s planned releases, the World Wide Web blew onto the scene. To effectively support the networking features required to connect users to their ISPs, Microsoft released a couple of service releases and, finally, Windows 98.
Activate the Internet (ActiveX)
When Bill Gates takes one of his famous reading vacations, the result usually affects the course of information technology for years to come. Gates had made a fortune producing operating systems and software for the PC; now he realized another fortune could be made in producing software for the Internet. Upon returning from a mid-1990s reading vacation, he handed down a decree to Microsoft employees: Activate the Internet. Thus, ActiveX technologies were born.
ActiveX is a reworking of Microsoft’s component format, the OLE/COM technology found in all Microsoft products. ActiveX, which emerged as the cornerstone of Microsoft’s plans (at the time), encompassed all of the current Internet technologies in “objects.” Object-oriented programming was all the rage, requiring different components to work well with and within each other. ActiveX would extend that model to include the object’s context (such as a desktop application or a Web script) or the environment in which it would run (e.g., over a slow network).
For a time, it looked like Microsoft was going to make the Sun Java technologies a subset of ActiveX. Such a partnership would undoubtedly have benefited both. A few dozen lawsuits and an antitrust case later, however, the split is complete.
Dot Net (.NET)
The advent of .NET brings us to the present. The .NET initiative continues the evolution of the Microsoft technologies including ActiveX and the doomed DNA product. Its extensive support for open standards constitutes an apparent paradigm shift for Microsoft.
Microsoft software has the lion’s share of almost every software market out there, but the market is changing fast. The key to remember here is that .NET is a server technology initiative. It doesn’t matter what client software you’re using; it doesn’t even matter if you’re running a cell phone, PDA, wristwatch, or toaster instead of a PC. The client market has become a commodity system. The important stuff is on the server… or servers.
Building an application that tracks an individual or organization’s personal, professional, and other information is easy. Any MCSD, MCDBA, Perl, or Java guru can do it in a flash and for a song. Building a suite of applications, with different physical and conceptual architectures, availability requirements, and resources, is a whole other ballgame. The adoption of both existing and emerging open standards like XML promises to ease the burden of integrating disparate systems. This is one of the goals of the .NET framework.
The coming battle between proprietary server architectures is apparent: It’s Sun’s Java vs. Microsoft’s .NET. In order to level the playing field, and to head off any future critical interoperability problems, a couple of international standards have emerged—XML/SOAP, UDDI, and WSDL. As long as development projects support these protocols, they are assured of being widely usable for a long period of time. These protocols form the foundation of .NET.
The .NET products
Microsoft’s implementation of the Web services protocols comes in its .NET suite of developer tools and server systems. While we don’t have room to cover every .NET product, what follows is a quick rundown of some of the most important ones.
Most of us first became aware of it when Microsoft’s AutoUpdate feature upgraded our MSN Messengers and required us to set up a Passport.NET profile. Beginning with XP, users of Microsoft’s operating systems will need to set up a profile to get technical support.
VS.NET comes with support for the .NET Framework, ADO.NET, VB.NET, and C#. Now, instead of servers using memory and CPU-intensive DLLs, they will use the more efficient .NET Framework class libraries.
We’ve provided a brief overview of the technological path Microsoft has followed in taking us from stand-alone, command-line PCs to the .NET suite of Web service products. From DOS to .NET, it has been a steady evolution, one in which each iteration takes lessons from the previous and creates new challenges to be faced in the next release.