Microsoft .NET (sprich dot NET) ist eine Plattform für das Erstellen, Ausführen und Nutzen von verteilten Anwendungen. Es umfasst Clients, Server, Entwicklungstools und besteht aus folgenden Komponenten:
Die .NET-Vision soll die wachsenden Anforderungen bezüglich Konnektivität, Interoperabilität und Datensicherheit erfüllen und die Entwicklung von Systemen erleichtern, die sichere Verbindungen ermöglichen, sowie zeit-, orts- und geräteunabhängig miteinander kommunizieren.
Die folgenden Zitate verdeutlichen wie komplex Microsoft .NET ist.
"Das .NET ist ein riesiger Haufen Zeugs, groß wie ein Elefant. Und wie verspeist man einen Elefanten? Häppchen für Häppchen natürlich."
"Microsoft .NET ähnelt dem sprichwörtlichen Elefanten, den mehrere Blinde untersuchen und nicht übereinkommen, was sie da eigentlich abtasten.">
Viele sehen in .NET nicht nur ein Produkt, sondern auch eine Marketing-Strategie von Microsoft.
Das Herzstück von .NET ist das .NET Framework. Das .NET Framework ist das Programmiermodell der .NET Plattform zum Erstellen, Bereitstellen und Ausführen von Anwendungen - speziell von Web-Anwendungen, Smart Client-Anwendungen und XML-Webdiensten.
Es umfasst die Common Language Runtime (CLR) und einen hierarchischen Satz vereinheitlichter Klassenbibliotheken.
Die CLR setzt auf die Dienste des Betriebssystems auf und ist das Ausführungsmodul für .NET Framework Anwendungen. Sie ist eine Laufzeitumgebung, die die Ausführung von Code verwaltet und Dienste für die Erleichterung des Entwicklungsprozesses bereitstellt.
Die Basisklassen-Bibliothek stellt Standardfunktionen beispielsweise für die Ein-/Ausgabe, die Threadverwaltung oder für das Benutzeroberflächendesign bereit.
Die Datenklassen von Microsoft ADO.NET unterstützen die Verwaltung dauerhafter Daten und umfassen SQL-Klassen, um dauerhafte Datenspeicher über eine standardmäßige SQL-Schnittstellen zu bearbeiten.
XML-Klassen ermöglichen die XML-Datenbearbeitung. XML spielt für die Zwischenspeicherung und den Austausch von Daten eine zentrale Rolle.
Die nächste Ebene unterstützt zwei unterschiedliche Anwendungstypen. Die Windows Forms-Klassen dienen der Entwicklung von Windows-basierenden Clientanwendungen und die Microsoft ASP.NET-Klassen dienen der Entwicklung von Webanwendungen und von XML-Webdiensten. Web Forms sind Steuerelemente, die für die Erzeugung der Benutzerschnittstelle zuständig sind. Sie bilden typische HTML Element wie Textboxen oder Schaltflächen nach. Web Services stellen ein Modell für die Verbindung verschiedener Anwendungen über das Internet zur Verfügung. Dieses Modell setzt auf bestehende Infrastrukturen und bereits existierende Applikationen auf.
Wie in der obigen Abbildung zu sehen, gibt es verschiedene Programmiersprachen zur Entwicklung von .NET Framework Anwendungen. Sie müssen den Anforderungen der Common Language Specification entsprechen. Die Programmiersprache C# basiert zum Beispiel nur auf den Klassenbibliotheken des .NET Framework.
Zusammen bieten die Klassenbibliotheken eine gemeinsame, konsistente Entwicklungsschnittstelle für alle Sprachen, die vom .NET Framework unterstützt werden.