Sie sind hier: Wissen

Was ist .NET Framework ?

Das .NET Framework ist die ursprüngliche Variante von Microsoft .NET, die Microsoft in den Jahren 2002 bis 2019 veröffentlicht hat. Das .NET Framework wurde seit 2016 schrittweise von .NET Core abgelöst, wobei .NET Core seit Ende 2020 mit Erscheinen der Version 5.0 offiziell nur noch ".NET" heißt.

Das .NET Framework (abgekürzt .NET) ist eine in direkter Konkurrenz zu Java stehende betriebssystem- und hardwareneutrale Softwareentwicklungsplattform.

Versionsgeschichte des klassischen .NET Framework:

Erste Erwähnung durch Bill Gates: Juni 2000
Erste öffentliche Alpha-Version: Juli 2000 auf Professional Developers Conference (PDC)

Bedeutung

Das im Jahr 2002 eingeführte .NET Framework hat – im Gegensatz zu anderen, von Microsoft zum Hype erklärten Neuerungen – die Softwareentwicklung auf der Windows Plattform grundsätzlich verändert. Vergleichbare Veränderungen waren der Schritt von DOS zu Windows und von 16-Bit-Windows zu 32-Bit-Windows.

Technische Merkmale des .NET Framework

Wesentliche Merkmale des .NET Framework sind:
 Plattformunabhängigkeit durch Zwischensprache / Intermediation mit Just-in-Time-Compiler wie bei Java (Write Once Run Anywhere-Prinzip)
 Sprachunabhängigkeit (mehr als 70erschiedene Programmiersprachen) mit sprachübergreifenden Aufrufen und sprachübergreifender Vererbung
 Durchgängige Objektorientierung: auch elementare Datentypen wie Zahlen und Zeichenketten sind Objekte
 Unterstützung für wiederverwendbare Softwarekomponenten
 Verschiedene Anwendungstypen (Fat-Clients, Standard-Webanwendungen, Rich Internet Applications, Systemdienste, Webdienste, Pocket-Programmcode-Anwendungen, SmartPhone-Anwendungen)
 Einheitliche Laufzeitumgebung mit Diensten wie Codeüberprüfung (Sicherheit, Array-Grenzen etc.), Threading, Speicherbereinigung und Ausnahmebehandlung
 Umfangreiche Klassenbibliothek mit mehr als 12.000 Klassen, einheitlich für alle .NET-fähigen Pro-grammiersprachen
 XML-basierte Konfiguration von Anwendungen (Abkehr von der Windows-Registrierungsdatenbank)
 Parallelbetrieb verschiedener .NET Framework-Versionen (eine .NET-Anwendung startet automatisch mit der Framework-Version, für die sie entwickelt wurde)
 Bereitstellen von Metadaten über den Programmcode (automatische Metadatengenerierung und manu-elle Metadaten)
 Lose Schnittstellenverträge, die ermöglichen, dass man Klassenmitglieder ergänzt, ohne den Schnitt-stellenvertrag zu brechen (Der Vertrag wird erst gebrochen, wenn man Mitglieder oder Parameter ent-fernt bzw. Datentypen ändert.)
Xcopy-Deployment (Verteilung von Anwendungen durch einfaches Kopieren der Programmdateien sowie der zugehörigen Bibliotheken und Ressourcendateien)
 Interoperabilität zu älteren Plattformen (COM, Windows 32 API) sowie über XML-Webservices zu anderen Plattformen
 Schutz vor »gefährlichem« Programmcode durch Sandbox-Konzepte wie in Java.

Links:

http://msdn.microsoft.com/net/
http://www.dotnetframework.de/

Varianten:

Eine Differenzierung in allgemeine Anwendungen (Java SE) und Unternehmensanwendungen (Java EE) gibt es nicht. .NET differenziert vielmehr zwischen Funktionen für den Client („.NET Framework Client Profile“) und zusätzlichen Funktionen für Server („.NET Framework Extended“).

Kernbausteine des .NET Framework

Common Language Runtime (CLR)
Laufzeitumgebung mit Gar-bage Collector, Exception Handling, Multi-Threading, Code-Sicherheit, u.a.

Microsoft Intermediate Language (MSIL)
Zwischensprache

Common Type System (CTS)
Sprachunabhängiges Typkonzept

Common Language Specification (CLS)
Regelwerk für Sprachinteroperabilität

C#, Managed C++, Visual Basic .NET, Jscript .NET, C#, u.a.
.NET-fähige Programmierhochsprachen

.NET Framework Class Library (FCL)
Klassenbibliothek
Zu der Klassenbibliothek gehören auch die Benutzerschnittstellentechnologien wie ASP.NET, Windows Forms und WPF, ebenso wie Datenzugriff (ADO.NET, ADO.NET Entity Framework, System.Xml) und Verteilungstechnologie wie .NET Remoting und WCF.

Geschichte

.NET kann als die dritte Evolutionsstufe der Programmierung mit Microsoft Windows bezeichnet werden. In Zeit vor 1993 wurden Windows-Anwendungen hauptsächlich mit C und C++ geschrieben. Das Wieder-verwendungsmodell basierte auf einfachen C-DLL. Verteilung basierte auf Remote Procedure Calls (RPC). Für den Zugang zu Betriebssystemresourcen stand das Windows-16-API, später das Windows-32-API, jeweils als eine Sammlung von DLLs zur Verfügung. Skriptprogrammierung basierte auf der DOS-Shell-Batchsprache.

1993 führte Microsoft das Component Object Model (COM) und später auch die Verteilung auf Basis des Distributed Component Object Model (DCOM). COM/DCOM stellte ein sprachunabhängiges Software-komponnetenmodell dar. Es gab mit Visual Basic, Delphi, VBScript, JavaSctipt, Perl u.a. Sprachen, die COM/DCOM nutzten. Skriptprogrammierung wurde im Rahmen von "Active Scripting" stark verallge-meinert und diente nun nicht mehr nur dem Scripting des Betriebssystems, sondern auch innerhalb von Anwendungen wie dem Internet Explorer-Webbrowser und dem Microsoft Exchange-Mailserver. Viele Teile des Windows-32-API wurden in COM-Komponenten gekapselt.

Trotz des gemeinsamen Komponentenmodells musste jede Programmiersprache unter Windows weiterhin eine eigene Laufzeitumgebung implementieren, insbesondere auch für den Zugriff auf lokale und entfernte Komponenten. Dies führte zu großen Unterschiedenen in der Programmierung. Auch waren COM-Komponenten nicht plattformneutral. Sie lagen immer in Maschinencode vor, der für jede Prozessorarchi-tektur und jedes Betriebssystem separat zu kompilieren war. Zudem bot COM kein Sicherheitsmodell zum Schutz vor bösem Code. Eine weitere Schwäche vom COM war, dass Softwarekomponenten in der Win-dows-Registrierungsdatenbank verzeichnet werden mussten und es dort schnell zur sogenannten "DLL-Hölle" kam, wenn zwei Anwendungen jeweils eine verschiedene Version einer einzigen COM-Komponente benötigten.

Das 2002 eingeführte .NET Framework eliminierte diese Nachteile. Es gibt zahlreiche Programmierspra-chen für .NET, die alle auf die .NET-Laufzeitumgebung zurückgreifen. Das Kompilat verwendet genau wie Java eine Zwischensprache, sodass .NET plattformneutral ist. .NET bietet ein Sicherheitsmodell und erfordert nicht mehr, dass man Softwarekomponenten in der Windows-Registrierungsdatenbank zentral verzeichnet. Jede Anwendung kann vielmehr eine eigene, dezentrale Version einer Komponente besitzen, sodass die "DLL-Hölle" vermieden wird. Die Verteilung hauptsächlich basiert auf dem plattformunabhän-gigen Webservices.

Auch fast 10 Jahre nach der Einführung von .NET basieren heute aber noch sehr viele Anwendungen auf den beiden Vorgängermodell. Auch das Windows-Betriebssystem selbst basiert noch komplett auf C, C++ sowie COM/DCOM. Nicht alle Funktionen des Windows-Betriebssystem stehen als .NET-Softwarekomponente zur Verfügung und Microsoft führt auch in neuen Windows-Betriebssystemen immer neue C-basierte Programmierschnittstellen ein ohne dafür einen Wrapper als .NET-Komponente bereitzu-stellen.

Daher ist die Abwärtskompatibilität sehr wichtig. .NET kann auf sowohl COM/DCOM-Komponenten als auch C-DLLs zugreifen. Auch umgekehrt kann man von den alten Welten auf .NET-Komponenten zugrei-fen.

Aktuelle Online-Artikel

 Geschichte und Zukunft des .NET Frameworks: Erscheinungsdaten und Versionsnummern
 .NET Framework - eine kompakte Einführung

Weitere Ressoucen auf dieser Website

 Referenzliste .NET-Entwicklerwerkzeuge (Tools)
 Webbasiertes Diskussionsforum zum .NET Framework
 .NET-Klassenreferenz
 DOTNET Scripting Host
 Marktstudien Softwarekomponenten und Komponentenmodelle
 Neuigkeiten zum .NET Framework und Visual Studio .NET
 WCF Barometer - Leistungsmessungen der Windows Communication Foundation (WCF)
 Liste der .NET-fähigen Programmiersprachen (Produktreferenz)
 Referenzliste Softwarekomponenten für das .NET Framework (Produktreferenz)
 .NET-Fachbegriffslexikon
 Codebeispiele .NET (C#, Visual Basic und PowerShell)
 FAQ zu dem Buch ".NET 3.0 Crashkurs"
 Newsletter von Dr. Holger Schwichtenberg
 Der DOTNET-DOKTOR / Das .NET-Weblog auf www.heise.de

Beratung & Support

Schulungen zu diesem Thema

 MySQL-Datenzugriff mit dem .NET Framework
 .NET 3.5-Update - Die Neuerungen in .NET Framework 3.5 und Visual Studio 2008 im Überblick
 .NET 4.5.1/.NET 4.5.2/4.5.3 Update / Neuerungen in .NET Framework 4.5.1/.NET Framework 4.5.2/.NET Framework 4.5.3
 Datenzugriff auf Oracle-Datenbanken mit .NET Framework
 Umstieg auf Windows Forms Core 8.0/9.0 in .NET 8.0/9.0 (Umstellung/Migration von Windows Forms-Anwendungen von .NET Framework auf .NET 6.0/7.0)
 .NET-Überblick für .NET-Einsteiger und .NET-Entscheider (wahlweise für das klassische .NET Framework und/oder das moderne .NET)
 .NET 4.8 - Die Neuerungen in .NET Framework 4.8 im Überblick
 .NET 4.5-Update - Die Neuerungen in .NET Framework 4.5/4.5.1/4.5.2 und Visual Studio 2012/2013 im Überblick
 Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop mit allen Anwendungsgebieten (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
 .NET 4.6.x/4.7.x-Update - Die Neuerungen in .NET Framework 4.6/4.6.1/4.6.2/4.7/4.7.1/4.7.2 im Überblick
 .NET 3.5-Crashkurs - Überblick über das .NET Framework 3.5 und Visual Studio 2008 für Umsteiger von .NET 2.0/3.0
 .NET Framework 3.5 Service Pack 1 und Visual Studio 2008 Service Pack 1
 Umstieg auf ASP.NET Core WebAPI und Google RPC (gRPC) in .NET 8.0/9.0 (Umstellung/Migration von ASP.NET WebAPI und/oder WCF in .NET Framework auf ASP.NET Core und gRPC in .NET 6.0/7.0/8.0)
 Umstieg auf .NET 8.0/9.0 - Entscheiderworkshop (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
 Umstieg auf WPF Core 8.0/9.0 in .NET 8.0/9.0 (Umstellung/Migration von WPF-Anwendungen von .NET Framework auf .NET 6.0/7.0/8.0)
 Umstieg auf .NET 8.0/9.0 - Entwicklerworkshop (Umstellung/Migration von klassischem .NET Framework zu .NET 6.0/8.0/9.0)
 .NET 4.0-Update - Die Neuerungen in .NET Framework 4.0 und Visual Studio 2010 im Überblick
 C#-Basiswissen (Grundlagen der Programmiersprache C#)
 Windows Scripting
 .NET und COM nutzen in der Windows PowerShell
 .NET-/.NET Core-Entwickler-Update 2019
 Visual Basic .NET für Umsteiger von VBA/VB 4/5/6
 Entity Framework Core 8.0/9.0 (EF Core 8.0/9.0): Objekt-Relationales Mapping (ORM) für .NET 8.0/9.0 (komplettes Wissen)
 Authentifizierung / Single-Sign-On für Webanwendungen/Websites und/oder Webservices/WebAPIs/REST/HTTP-Dienste
 Windows PowerShell 5.1/PowerShell 7.0 für System- und Netzwerkadministratoren (4-Tages-Agenda des öffentlichen Seminars)
 Lokalisierung/Globalisierung in .NET (System.Globalization)
 Windows Presentation Foundation (WPF) - Basiswissen
 Grundlagen der objektorientierten Programmierung anhand von C# oder Visual Basic .NET
 .NET 5.0 - Änderungen und Neuerungen gegenüber .NET Core 3.x
 NHibernate - Objekt-Relationales Mapping (ORM) mit .NET
 Anfrage für eine individuelle Schulung zum Thema .NET Framework  Gesamter Schulungsthemenkatalog

Bücher zu diesem Thema

  Blazor 9.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 9.0, C# 13.0 und Visual Studio 2022
  C# 13.0 Crashkurs
  Moderne Datenzugriffslösungen mit Entity Framework Core 9.0
  .NET 9.0 Update: Die Neuerungen in .NET 9.0 gegenüber .NET 8.0
  PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
  .NET 8.0 Update: Die Neuerungen in .NET 8.0 gegenüber .NET 7.0
  Blazor 8.0: Moderne Webanwendungen und hybride Cross-Platform-Apps mit .NET 8.0, C# 12.0 und Visual Studio 2022
  Moderne Datenzugriffslösungen mit Entity Framework Core 8.0
  C# 12.0 Crashkurs
  Cross-Plattform-Apps mit .NET MAUI entwickeln
  Blazor 7.0: Blazor WebAssembly, Blazor Server und Blazor Hybrid
  C# 11.0 Crashkurs
  Moderne Datenzugriffslösungen mit Entity Framework Core 7.0
  PowerShell 7 und Windows PowerShell 5 – das Praxishandbuch
  App Engineering: SwiftUI, Jetpack Compose, .NET MAUI und Flutter
  Vue.js 3 Crashkurs
  Moderne Datenzugriffslösungen mit Entity Framework Core 6.0
  Blazor 6.0: Blazor WebAssembly, Blazor Server und Blazor Desktop
  C# 10.0 Crashkurs
  Cross-Plattform-Apps mit Xamarin.Forms entwickeln
  Developing Web Components with TypeScript: Native Web Development Using Thin Libraries
  PowerShell – kurz & gut
  C# 9.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET 5.0, .NET Core und Xamarin
  ASP.NET Core Blazor 5.0: Blazor WebAssembly und Blazor Server - Moderne Single-Page-Web-Applications
  Windows PowerShell 5 und PowerShell 7: Das Praxisbuch
  Moderne Datenzugriffslösungen mit Entity Framework Core 5.0
  ASP.NET Core Blazor 3.1/3.2: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
  ASP.NET Core Blazor 3.0/3.1: Blazor Server und Blazor Webassembly - Moderne Single-Page-Web-Applications mit .NET, C# und Visual Studio
  Moderne Datenzugriffslösungen mit Entity Framework Core 3.1
  C# 8.0 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 3.0
  Windows PowerShell 5.1 und PowerShell Core 6.1 - Das Praxishandbuch
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.1/2.2
  Moderne Webanwendungen für .NET-Entwickler: Server-Anwendungen, Web APIs, SPAs & HTML-Cross-Platform-Anwendungen mit ASP.NET, ASP.NET Core, JavaScript
  C# 7.3 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Modern Data Access with Entity Framework Core: Database Programming Using .NET, .NET Core, UWP, and Xamarin with C#
  Windows PowerShell und PowerShell Core - Der schnelle Einstieg: Skriptbasierte Systemadministration für Windows, Linux und macOS
  Programmierung in Python
  C# 7.2 Crashkurs: Die Syntax der Programmiersprache C# für die Softwareentwicklung in .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.0/2.1
  Effizienter Datenzugriff mit Entity Framework Core: Datenbankprogrammierung mit C# für .NET Framework, .NET Core und Xamarin
  Moderne Datenzugriffslösungen mit Entity Framework Core 2.0
  Windows PowerShell 5 und PowerShell Core 6 - Das Praxishandbuch
  Angular - Das Praxisbuch zu Grundlagen und Best Practices
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.0, 1,1 und 2.0
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.1 und 2.0-Preview2
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.x und 2.0
  Introducing Regular Expressions: JavaScript and TypeScript
  Introducing Web Development
  Introducing Bootstrap 4
  Programming Web Applications with Node, Express and Pug
  Einführung in TypeScript: Grundlagen der Sprache TypeScript 2
  Pug – Die Template-Engine für node.js
  Web-Programmierung mit Node, Express und Pug
  Windows PowerShell 5 – kurz & gut
  Moderne Datenzugriffslösungen mit Entity Framework Core 1.1
  Windows PowerShell 5.0 - Das Praxishandbuch
  PHP 7 und MySQL: Von den Grundlagen bis zur professionellen Programmierung
  Windows Scripting Lernen
  .NET Praxis - Tipps und Tricks für .NET und Visual Studio
  Grundlagen für Web-Entwickler: Protokolle, HTML und CSS
  Bootstrap 3 - Stile und Komponenten
  Bootstrap 4 - Stile und Komponenten
  Einführung in JavaScript: ECMAScript 5
  Einführung in node.js
  express – Middleware für node.js
  JADE – Die Template Engine für node.js
  Reguläre Ausdrücke in JavaScript
  Moderne Datenzugriffslösungen mit Entity Framework 6
  C++ Standardbibliothek
  AngularJS: Moderne Webanwendungen und Single Page Applications mit JavaScript
  Microsoft SharePoint Server 2013 und SharePoint Foundation: Das umfassende Handbuch
  SQL Server 2014 für Professionals: Hochverfügbarkeit, Cloud-Szenarien, Backup/Restore, Monitoring & Performance
  Moderne Webanwendungen mit ASP.NET MVC und JavaScript
  Windows PowerShell 4.0 - Das Praxishandbuch
  JavaScript: Das umfassende Handbuch, inkl. HTML5, JavaScript-Frameworks, jQuery, OOP
  C++11 für Programmierer
  C++ kurz und gut
  Microsoft ASP.NET 4.5 - Entwicklerbuch
  Moderne Webanwendungen mit ASP.NET MVC
  Verteilte Systeme und Services mit .NET 4.5
  Scripting mit Windows PowerShell 3.0 - Der Workshop: Skript-Programmierung mit Windows PowerShell 3.0 vom Einsteiger bis zum Profi
  Windows 8 für Administratoren
  Windows 8.1 - Das Handbuch (27. November 2013)
  Windows Store Apps entwickeln mit C# und XAML - Crashkurs
  .NET 4.5 Update
  Windows Scripting Lernen
  WPF 4.5 und XAML
  Datenbankprogrammierung mit .NET 4.5
  C++11: Der Leitfaden für Programmierer zum neuen Standard
  Verteilte Systeme und Services mit .NET 4.0
  Microsoft ASP.NET 4.0 mit C# 2010 - Entwicklerbuch
  Agile Software Engineering with Visual Studio
  Datenbankprogrammierung mit .NET 4.0. Mit Visual Studio 2010 und SQL Server 2008 R2
  Microsoft SharePoint Server 2010 und SharePoint Foundation 2010
  Microsoft SQL Server 2008 R2 - Das Entwicklerbuch
  Microsoft Viusal C# 2010
  Office 2010 Programmierung mit VSTO und .NET 4.0: Word, Excel und Outlook erweitern und anpassen
  Programmieren mit dem ADO.NET Entity Framework
  .NET 4.0 Crashkurs
  Visual Basic 2010: Grundlagen, ADO.NET, Windows Presentation Foundation
  .NET 4.0 Update
  Windows PowerShell 2.0 - Das Praxishandbuch
  Windows 7 im Unternehmen
  Agile Muster und Methoden
  Ajax
  ASP.NET 4.0
  ASP.NET 4.0 mit Visual C# 2010
  JavaScript
  PHP 5-Migration
  Scripting mit Windows PowerShell 2.0 - Der Einsteiger-Workshop
  SQL Server 2008 R2: Das Programmierhandbuch. Inkl. ADO.NET 3.5, LINQ to Entities und LINQ to SQL
  Visual Basic 2010
  Windows PowerShell 2.0 - Crashkurs
  Windows Server 2008 R2
  Windows Scripting
  Windows Scripting Lernen
  Data Mining mit Microsoft SQL Server
  Windows 7 für Administratoren
  Microsoft ASP.NET 3.5 mit Visual Basic 2008 - Entwicklerbuch
  .NET 3.5
  Essential PowerShell
  .NET 3.5 Crashkurs
  Webanwendungen mit ASP.NET 3.5 und AJAX Crashkurs
 Alle unsere aktuellen Fachbücher  E-Book-Abo für ab 99 Euro im Jahr