Microsoft.NET

Introduction.

Microsoft spent 40,000 man-years in developing .NET. Never before has any software-company spent such an amount of time and money in a new technology and development-environment. Only the future will tell if it's been worth it.

Philosophy.

.NET is totally language- and platform independent: even a Linux-version is being worked on. Using the .NET-environment, one can develop software for pc, internet and palmtop pc's.

.NET is developed following a strict hierarchy: software should consist of components, and these components should be there where they are necessary.

How it works.

In short: .NET is an initiative that could turn the internet into a new OS.

Imagine .NET as a new OS in development that runs on all computers connected to the internet worldwide.
A pc nowadays has a 32-bit databus (moving towards 64). The internet can also be seen as a databus, turning all computers into one huge supercomputer. The .NET-'databus' will not transport bits though. It will transport XML, using SOAP (Simple Object Access Protocol).
To make an OS like that grow, you need an 'organic' infrastructure; such an infrastructure is what .NET offers. Within that structure, there'll also be room for webservices and components developed with other technologies. All MS does, is offer an infrastructure.

Rather than targetting a particular hardware/OS combination, programs will instead target ".NET", and will run wherever .NET is implemented.
.NET is also the collective name given to various bits of software built upon the .NET platform. These will be both products (Visual Studio.NET and Windows.NET Server, for instance) and services (like Passport, HailStorm, and so on).
Components - down-top.

CLR (the basis).

The .NET framework is developed to make advanced web-technologies available to the 'normal' developer. The .NET framework consists of CLR (Common Language Runtime) as a basis, with the Base Class Library on top of that. You could compare the CLR to the Java Virtual Machine: a layer that guarantees platform-independency.
The CLR is -unlike the Java Virtual Machine, which is an interpreter- a compiler, making its prestations significantly faster.
On top of that, any programming language can be used to adress the CLR.

Base Class Library.

The Base Class Library makes programming distributed software-systems a lot easier than it used to be. The BCL is packed with a lot of functionality, based on object-orientation. It's an 'open design', meaning that new classes can be added by third parties. Impact: whatever you think MS screwed up, you can make better.

XML and the SOAP-protocol.

XML will be .NET's universal exchange-language, using the new SOAP-protocol. XML is a format for representing data that can be read and used by humans. Web services use XML to provide a machine interface. SOAP is a protocol for supporting the communication of Web services transactions over HTTP or other protocols, similar to RPCs (Remote Procedure Calls).

XML Web Services / Web Forms / Windows Forms.

Verisign on the advantages of Web Services.

.NET versus J2EE (Java 2 Enterprise Edition).

According to Gartner and IDC (the two major marketing-research-companies worldwide), there will only be two major technologies left in a couple of years: .NET, developed by Microsoft; and J2EE, developed by Sun Microsoft, in co-operation with, amongst others, IBM.

Sun Microsystems on .NET vs. J2EE
Microsoft on .NET vs. J2EE


Hyper-links

This intro to .NET was partially based on an article in a Dutch magazine, and the following links:

Microsoft on .NET
ArsTechnica
SOAP-protocol
Verisign on the advantages of Web Services - PDF
Sun Microsystems on .NET vs. J2EE
Microsoft on .NET vs. J2EE