X
Business

.Net under the microscope

IT Priorities: At one stage it seemed that .Net was simply a prefix for every new Microsoft product release but, while still not perfect, it is evolving into a stable platform for Web services development
Written by Rupert Goodwins, Contributor
headerleft.jpg
.Net under the microscope
Rupert Goodwins
At one stage it seemed that .Net was simply a prefix for every new Microsoft product release but, while still not perfect, it is evolving into a stable platform for Web services development

The ideal software platform is easy to define. It puts no barriers between a designer’s ideas and their implementation. Programming and debugging are efficient, and all essential services are provided in a consistent, logical and sensible fashion. Applications run where and when needed, automatically.

Listening to Microsoft it would be easy to believe that its .Net platform is the physical manifestation of this ideal platform. But while .Net is probably the closest the Redmond company has come to creating an environment for developers and users that adheres to a lot of the ideals, it isn’t quite perfection incarnate.

The original vision was that a .Net program would run on a .Net platform, regardless of what that platform was. Microsoft implied that .Net would work with other, non-Windows, systems. Surprisingly that hasn’t transpired, but now other software companies and developers are working to open .Net up.

At heart, .Net is based on the Common Language Infrastructure, a standard execution environment similar to the Java Virtual Machine. Under the CLI, an application program written in any of a number of languages -- ASP+, C++, C#, Visual Basic, Fortran -- can run on any of a number of operating systems, as long as the compiler produces the appropriate bytecode -- the Common Intermediate Language (CIL) -- and the program uses the acceptable data types and operations as defined in the Common Type System or CTS.

The CIL bytecodes are interpreted and turned into native binary at runtime by the Common Language Runtime (CLR) part of the CLI. Some of these portions of .Net have been accepted as international standards, first by the ECMA organisation and latterly by the International Standards Organisation in April, 2003, as ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI technical report).

.Net also adds various non-standardised extensions to cope with Web services, forms, hooks into operating system functions and so on with the .Net Framework class library. This library includes some 6500 classes, most part of three main components: ASP.Net to help build Web applications and Web services; Windows Forms for client user interface design; and ADO.Net to help connect applications to databases. There’s also a .Net Compact Framework for people working on Pocket PC and allied devices -- this has a subset of the CLR, somewhat reducing the portability of applications.

Next page

headerleft.jpg
.Net under the microscope
Rupert Goodwins
Page Two: At one stage it seemed that .Net was simply a prefix for every new Microsoft product release but, while still not perfect, it is evolving into a stable platform for Web services development

Visual Studio .Net is an enormous concatenation of .Net Framework; the languages; the runtime; and an integrated development environment that includes a graphical interface builder, various wizards for converting older programs and features for integrating existing application data. It is a highly regarded development environment, which explicitly supports many of .Net's abilities to do things like mix languages on a project.

Much of .Net's success rides on whether Microsoft can sell enterprises on the benefits of Web services -- which basically boil down to component reusability and rapid, inexpensive integration across platforms. The .Net Framework uses XML for data representation by default and provides easy access to Simple Object Access Protocol (Soap) interfaces. Ordinary methods -- chunks of code making up procedures -- can be turned into Web services simply by adding the attribute "WebMethod" before each declaration, but are otherwise unchanged. .Net also automatically creates a Web Services Description Language (WSDL) document that describes services in a standard manner: it is possible, according to programmers, to turn out a simple Web service application in a morning.

Microsoft has also used .Net as a branding exercise in marketing various aspects of its software, which has led to some confusion. This behaviour appears to be in remission at the moment, with the .Net term substantially absent from product names and marketing literature -- instead, the platform definitions have or will been subsumed into all Windows systems across the board. But Microsoft is in the process of patenting much of the .Net Framework, including all the APIs, which will be the first substantial patenting of Windows architecture: there is the usual debate about how much of the patent is prior art, given the great similarities between .Net's fundamental design and that of Java and others, but if the patent is granted it may have a significant impact on those developing non-Windows variants of .Net.

Open-source fans first announced steps to reproduce the underpinnings of Microsoft’s .Net in 2001 to allow people to use the technology without Redmond’s involvement. The effort to duplicate .Net has two main components so far: Mono and DotGNU. The Mono project, hosted by Ximian, is designed to reproduce on Linux the ability to execute programs written in C#. DotGNU is designed to sidestep Microsoft’s passport service for approving passwords and holding personal information. But some analysts have pointed out that .Net is still a fairly new technology and any attempts to clone it are likely to be even more immature.

Microsoft continues to aggressively develop .Net, with additional features such as the Web Services Enhancements class library. These were introduced as version 1.0 last December and previewed as version 2.0 in July, and add many features such as encryption, digital signatures, message routing and attachment encapsulation. At the same time, the company unveiled new and more capable conversion tools designed to move Java projects over into the .Net world.

For those eager to learn more, support online is more than copious. As well as the usual resources on www.microsoft.com/net/, the company is maintaining a developers' community at www.gotdotnet.com and there are countless unofficial sites devoted to many aspects of .Net Framework programming.

.Net is by any standards a substantial and complex body of work, and there are many ways to approach it when determining its suitability for a project or long-term strategy. But anyone who is or will be a Windows programmer will be unable to escape, and in many ways it encapsulates the state of the art in production programming for distributed environments. It is not perfection, but it works.

Previous page

Editorial standards