What Are the Pieces of .NET?
As we have mentioned, .NET is an overall strategy for deliveringand helping others to deliversoftware as a service. But what are the physical pieces that make up .NET? This actually turns out to be a difficult question to answer. For instance, try your luck with the following multiple-choice question:
Microsoft .NET is a
a. Point of view advocating software as a service
b. Series of software development tools
c. Set of server products (like Windows 2000)
d. Marketing and branding strategy initiated by Microsoft
e. Evolution of Microsoft's recommended way to design and build software
The answer? All of the above! Now you can begin to understand the problem in identifying all the different pieces of .NET.
Generally speaking, Microsoft considers the pieces of .NET to focus on three different areas: tools and languages for .NET-based software development, building block services and products for programmers and non-programmers alike, and third-party developed services. Right now, the major pieces you should be familiar with fall under the first two categories: software development tools and building block services. Third-party services will be in more evidence after .NET is initially rolled out.
Software Development Tools
Most of the current, visible thrust of .NET has been concentrated on the .NET development tools. Microsoft realizes that to accomplish the vision of creating software as a service, programmers must first have tools that directly support that vision. Microsoft .NET offers a suite of tools and technologies that will help software developers write software as a service. These tools are a culmination of Microsoft's many years of experience in writing and designing software applications.
These are the latest releases of Microsoft's programming products, rewritten specifically to support the .NET paradigm.
ASP stands for Active Server Pages. This technology allows programmers to quickly infuse Web sites with dynamic content and functionality. By allowing developers to intersperse HTML with an actual programming language, developers can write Web pages that span the spectrum from simple (showing the current time and date) to complex (accepting and processing mortgage loans online). ASP.NET represents a serious step forward for the ASP technology.
Microsoft Visual Basic.NET
Visual Basic .NET represents a complete overhaul of the previous Visual Basic products from Microsoft. While introducing new components that make .NET programming easier than ever, it faithfully adheres to its past goals of allowing developers to build quality programs quickly.
Microsoft Managed Extensions for C++
This is the latest incarnation of Microsoft's acclaimed C++ development environment. Visual C++ has an important difference from the other .NET languages: It is the only language in which you can write code that doesn't run inside .NET!
C# is a new language created by Microsoft. It is meant to appeal specifically to C and C++ developers, while at the same time allowing the same rapid development of applications that Visual Basic programmers have enjoyed.
The .NET Framework
In conjunction with these programming languages, Microsoft is delivering something called the .NET Framework. This is the actual plumbing of .NET, along with a set of prebuilt software, that developers can use to access core operating system functionality such as sending e-mail and opening a Web page. The Framework is complex and includes a Common Type System, Common Language Runtime, Common Type Specification, and a class library (see the glossary at the end of this document for explanation of all these terms).
All these technical items can be distilled down to this: The Framework provides the base structure necessary to write .NET programs. It is the starting line for .NET development.
One of the great benefits of the .NET Framework is that it is language agnostic. This means that the way you program within the Framework doesn't change regardless of which .NET language you're using! In other words, the language you use to talk to the Framework might change, but what you say with that language remains constant. This is a huge productivity benefit for programmers.
Building Block Services
Part of the expected benefit of .NET is the ease of integrating other pieces of software that have already been written. The software industry still struggles with this concept; a concept that other industries have down to a science. For instance, a newly built home might be assembled from a complete, modular staircase made by a company in Canada, a deck composed of preassembled timber from a company in Minnesota, and front and side frames from a company in Illinois. More often than not, architects and builders leverage work done by other firms when designing and raising the walls of a house.
It is just such a business model that the software industry has been pursuing: one in which companies are free to build the "blocks" that they have the most experience and expertise with, and then sell them (as a service) multiple times, creating a commodity item.
Traditionally, this has been difficult to do with software because the process of taking someone else's code and making it work inside, or in conjunction with, your own code was a technically challenging and risky proposition. It is definitely not as easy as integrating that staircase from Canada in your house: a few nails, some sweat, and you have a structurally sound set of stairs! Software integration typically involves data format incompatibilities, and discrepancies in architecture and design.
Some of the building block services that have already been announced include
Identity servicesThese include such things as login and password verification and electronic wallets. These services represent a secure and safe way to verify someone's identity and then act accordingly.
Notification and messaging servicesBuilding on technology already employed for things such as Hotmail (Microsoft's free e-mail service) and Microsoft Instant Messenger (Microsoft's free messaging software), these services aim to provide e-mail, fax, and voice mail to and from almost every device from a PC to a handheld device.
Personalization servicesTargeted squarely at companies that are interested in catering to the individual, these services manage the rules and preferences necessary to show people only what they want to see on a Web site or other computer system.
Calendar servicesCalendar services allow for the integration and management of personal, work, and home calendars. They enable people to track their time and appointments intelligently, and collaborate with others doing the same.
Directory and search servicesA means of cataloging and then searching a variety of things: people, places, and so on; exposes a virtual Yellow Pages of information that can be queried for specific, relevant information.
These all represent common items that programmers need in their programs. .NET promises to make it easy and straightforward to use these services, saving programmers from reinventing the wheel with every piece of software!
.NET Enterprise Server and Office Products
To accelerate the introduction, development, and propagation of service-based software, Microsoft is rapidly infusing its core product lines with .NET technology, positioning them as yet another building block layer of helper services, all with the same goal of easing development of software as a service.
Application Center 2000
Application Center 2000 is a management tool designed to simplify the management of groups of servers. Using Application Center makes it much easier to administer and maintain Web applications that span multiple machines. How? This product enables you to treat a group of servers as one server.
BizTalk Server 2000
When different companies have to exchange data between their systems, problems inevitably arise. Most of the issues revolve around the fact that, typically, different companies store their data in different formats. An average scenario involves trading partner hubscompanies passing invoices, purchase orders, and inventory information back and forth. Because it is unrealistic to expect every company involved in such an exchange to change its data format to some common, central format, the solution is data mapping. Quite simply, data mapping is the processing of mapping one piece of data to another. What one company calls a SKU, another company might call an inventory control number; one company might allow alphanumeric SKUs, whereas another allows only numeric control numbers. To help companies map their data and overcome these obstacles, BizTalk implements a simple drag-and-drop interface.
Microsoft is also customizing BizTalk specifically for certain vertical industries.
Commerce Server 2000
Commerce Server provides all the things necessary to build and deploy an e-commerce Web site. It aims to reduce the complexity of publishing products onto the Web for sale. Commerce Server is a comprehensive solution that covers business to business (businesses selling or buying from other businesses) and business to consumer (the traditional retail model of commerce; customers buy products) models.
Exchange Server 2000
Exchange Server is Microsoft's premiere collaboration and messaging tool. It gives a company the capability to store and easily share information through e-mail and other mediums such as real-time conferencing, workflow, and instant messaging.
Host Integration Server
One of the premises that .NET applications are built on is the ability to "talk" between software applicationseven if they reside on different types of machines. Host Integration Server is Microsoft's product to enable just that. This is a substantial revision of Microsoft's prior product, called Microsoft SNA Server. Host Integration Server provides a gateway for talking to many different varieties of systems, both mainframe-based and PC-based.
Internet Security and Accelerator Server
The Internet has been a great vehicle for progress, enabling unprecedented communication between individuals and companies. This same ease of communication, however, comes with a downside: It is all too easy for predators to maliciously destroy information, steal identities, and, in general, make life a mess for those on the receiving end of a hacker's attack. Internet Security and Accelerator Server is a software-based firewall. It sits between a company's machines and the Internet to guard against intrusion and criminal activity. This server also offers another benefit: By storing copies of Web pages, images, and other data, it can substantially speed up Web surfing.
Mobile Information Server
One of the big goals of .NET is to bring software services to all sorts of devices: personal computers, handheld computers, even cell phones! Mobile Information Server helps to extend the reach of software and data to mobile devices. It enables users to access their personal data (e-mail, faxes, appointments, tasks, and so on) in real-time, wherever they happen to be. This is a key enabler for wireless applications in the .NET world.
Office.NET is an example of a .NET product that starts to extend services right onto a user's personal desktop. Details of this product are still sketchy because it hasn't been released yet. It is expected that Microsoft will finally make its popular Office products, such as Excel, Word, and PowerPoint, available as a service for a monthly fee instead of as shrink-wrapped software. It is important to note that Microsoft does not see this method of distributing Office as the only method. This will become just another option or choice for consumers on how they want to pay for and use typical functionality such as word processing and spreadsheet management.
SQL Server 2000
SQL Server 2000 is a complete database and data management package. One of its key .NET characteristics is its ability to support queriesrequests for dataacross the Internet in a variety of different formats, including XML. SQL Server is designed to be self-tuning; that is, it can monitor its own performance and functions and make changes on its own without human interaction.
Windows 2000 Server, Advanced Server, and Data Center Server
Last, but certainly not least, is the Windows 2000 family of operating systems. These are multipurpose operating systems for businesses of all sizes. These operating systems are responsible for implementing services that computer users usually take for granted: sharing files, printing, hosting Web sites, and running applications such as Office.NET. As part of the .NET strategy, Windows 2000 was built with all the technologies to enable software as a service to become reality. Windows XP will continue this trend even further.