The Composition of .NET

Simply stated, Microsoft is reinventing its company around the concept of delivering software as a service across the Internet. Its ambition is to connect islands of information and functionality into a collaborative, rich, and coherent experience for users.

In order to realize this vision, Microsoft is recreating its development tools, server software, operating systems, user applications, and Web browser. It is creating new tools and applications and helping to define new Internet standards. This all revolves around the concept of providing software as a service.

It all starts with the development platform. That is the core of the .NET platform and the focus of this book.

But what are the physical pieces that make up .NET? This is a difficult question to answer. For instance, try your luck with the following multiple-choice question:

Microsoft .NET is a

  1. Point of view advocating software as a service

  2. Series of software development tools

  3. Set of server products (like Windows 2000)

  4. Marketing and branding strategy initiated by Microsoft

  5. 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 with identifying all of the different pieces of .NET. Generally speaking, Microsoft considers the pieces of .NET to focus on three different areas:

  1. Tools and languages for .NET-based software development

  2. Building block services products for programmers and non-programmers

  3. Third-party developed services

Right now, the major pieces to consider fall under the first two categories: software development tools and so-called building block services. Third-party services will be in more evidence after .NET has been broadly adopted.

Microsoft .NET Timeline

Table 1.1 outlines the products and parts that make up Microsoft's .NET initiative.

Table 1.1. .NET Timetable
 2000 2001 2002+
Experiences  Windows XP Additional .NET Experiences
  bCentral  
  MSN  
Clients Windows CE Windows XP Tablet PC
 Windows NT Embedded Windows XP Embedded Other smart devices
 Windows 2000 Talisker  
  Stinger  
  XBox  
Services  Hailstorm Additional Services
Tools Visual Studio .NET Beta 1 Visual Studio .NET  
 SOAP Toolkit Beta .NET Framework  
 MSDN Online .NET Compact Framework  
Servers Windows 2000 Server Mobile Information Server Additional Servers
 SQL Server 2000  Whistler Server Embedded
 BizTalk Server 2000  Whistler Server

Tools and Languages

Most of the visible thrust of .NET has been concentrated on the .NET development tools. In order to accomplish the vision of creating software as a service, programmers must first have tools that directly support that vision. .NET offers a suite of tools and technologies that will help you write distributed software.

The .NET Framework

The .NET Framework represents the actual plumbing of .NET; it is a set of services and pre-built classes that you can use to access core operating system functionality such as sending e-mail or output to the printer. That is, in fact, the focus of this book: the .NET Framework Class Library. This runtime environment allows us to write robust code more quickly, efficiently, and to manage and deploy the code more easily.

Along with these classes, the framework includes such things as the Common Type System (CTS), Common Language Runtime (CLR), and the Common Type Specification (CTS). These items will be explained in detail later in this chapter.

The framework can be broken down to the following definition: The .NET Framework is the base structure necessary to write .NET applications. Without it, there is no .NET and no .NET applications.

One of key aspects of the .NET Framework is that it is language agnostic. The way you program with it does not change depending on the .NET language you are using. This is a huge productivity benefit for programmers and finally creates a level playing field for all Windows developers.

Visual Studio .NET

Visual Studio .NET is the flagship IDE for .NET development. Finally, all Microsoft development shares a single IDE! No more VB for this, InterDev for that; .NET consolidates design, development, and debugging into one cohesive environment. Of course the IDE is fully customizable and extensible. Look for third parties to offer extensions or versions of the IDE. And of course, the object model is exposed for you to write custom extensions.

Another powerful technology is .NET enterprise templates. These templates allow team leaders to control features and access portions of the IDE. For example, you can restrict certain team members to only be able to create forms or do UI design. At the same time, other developers might only be able to create components using a specific language. .NET enterprise templates give managers control over the capabilities of specific team members.

Microsoft ASP.NET

Since the introduction of IIS (Internet Information Server) in late 1997, ASP (Active Server Pages) has been the principal technology for Microsoft developers to deliver Web content. As we all know, ASP forced developers to embed script and logic inside of UI (HTML) code. While this was simple enough and relatively easy to use for basic tasks, it quickly became cumbersome to program against and support as applications grew in scale and complexity.

The .NET version of Microsoft's ASP finally separates user interface (HTML) from script. ASP.NET implements a feature that Microsoft calls code-behind. This feature allows you to write HTML and code into separate files; the HTML file simply maintains a link to its associated code file. Sounds simple enough, and it is; it is remarkable how much easier it makes life for developers. The paradigm is equivalent to the win-forms paradigm (in fact, it is called Web Forms) where developers create a form using drag-and-drop and write code behind the various controls. Additionally, the code behind Web Forms can be written in any .NET language.

Another problem from which ASP suffered is slow performance due to the scripting code being processed at runtime. ASP.NET automatically compiles code files when deployed or first accessed. There is no longer a performance difference between a script class and one written and compiled into a DLL! However, ASP.NET does not take away your ability to promote code simply by copying over a file in a directory. Thanks to the JIT (just-in-time) compiler, a file can be replaced and it will simply be recompiled by the system as need be.

Note

ASP developers of old, don't fret; both the Response and the Request objects are still available.


ASP.NET allows programmers to quickly infuse Web sites with dynamic content and functionality. It represents a serious step forward for the ASP technology.

Microsoft Visual Basic .NET

After 10 years, VB is finally moving from a cool technology with which to build applications to an actual, first-class programming language. 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. Chapter 2, “Evolution of VB .NET,” will further explore the new Visual Basic language.

Microsoft-Managed Extensions for Visual C++

The latest incarnation of Microsoft's acclaimed C++ development environment, Visual C++ .NET differs from the other .NET languages: It is the only language in which you can write unmanaged code. Unmanaged code does not run inside the .NET runtime, whereas .NET code is “managed” by the runtime.

Microsoft C#

Microsoft decided to launch .NET with a new language—C#. There were multiple reasons for creating C#. For one, the language keeps the syntax of a typical C++ application while providing some of the simplicity of Visual Basic. Microsoft's hope is that C# will become the language of choice for those developers hooked on C++. Secondly, C# provides developers with a Java-like alternative. It is no secret that the .NET architecture shares some of Java's design concepts; C# is the Java of .NET. Of course, .NET will have a Java story (Rational and others will make sure of that) but Microsoft hopes that C# is compelling enough to lure Java developers over to the .NET camp. Finally, Microsoft wrote most of the .NET Framework code using C# thus solidifying it as the language of .NET.

Building Block Services

One of the many benefits of .NET is the ease with which you can integrate legacy applications and software written on disparate systems. The software industry still struggles with this concept; a concept that other industries have down to a science. For instance, a newly built home may be assembled from a complete, modular staircase made by a company in Canada, a deck composed of pre-assembled timber from a company in Minnesota, and front and side frames from a company in Illinois. It is a rare occasion when a builder or architect doesn't leverage work done by another firm or company when it comes to actually raising the walls of a house.

It is just such a business model that the software industry has been pursuing: one where 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 of, or in conjunction with, your own was a technically challenging and risky proposition. It is definitely not as easy as integrating that staircase you brought 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 as well as discrepancies in architecture and design.

Some of these building block services that have already been announced are listed next.

Identity Services

These 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 Services

Building on technology already employed for things like 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 voicemail to and from almost any device from a PC to a hand-held device.

Personalization Services

Targeted 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 Services

Calendar services allow for the integration and management of personal, work, and home calendars. They allow people to track their time and appointments intelligently, and collaborate with others doing the same.

Directory and Search Services

Directory and search services are a means of cataloging and then searching a variety of things (people, places, and so on). They expose a virtual “yellow pages” of information that can be queried for specific, relevant information.

.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 it 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 lets you 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 will store their data in different formats. A typical scenario involves trading partner hubs—companies 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 their 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 may allow alphanumeric SKUs, while 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 of 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. It is a comprehensive solution that covers business to business (businesses selling or buying from other businesses) or 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 ability 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 capability to “talk” between software applications—even 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 its prior product, Microsoft SNA Server. It provides a gateway for talking to many different varieties of systems, both mainframe 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, hand-held 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

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 like 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 “queries”—requests for data—across 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 like Office .NET. As part of the .NET strategy, Windows 2000 was built with all of the technologies to enable software as a service to become reality. Windows XP will continue this trend even further.

Suggestions for Further Exploration

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.21.93.245