Sie sind hier: Startseite

Das .NET Framework (abgekürzt .NET) ist eine in direkter Konkurrenz zu Java SE und Java EE stehende betriebssystem- und hardwareneutrale Softwareentwicklungsplattform. .NET wurde ursprünglich von der Firma Microsoft entwickelt und ist in Teilen bei der ECMA und ISO standardisiert.

Versionsgeschichte


Erste öffentliche Alpha-Version: Juli 2000


Implementierungen
Microsoft selbst liefert heute auch noch die wichtigsten Implementierungen von .NET:
  • Das vollständige Microsoft .NET Framework für die Windows-Betriebssysteme
  • Das Microsoft .NET Compact Framework (.NET CF) für Window Embedded und Windows Mobile 6.x (außer Windows Phone 7)
  • Microsoft Silverlight für Windows-Betriebssysteme (einschließlich Windows Phone 7) und Mac OS
  • XNA für die Computerspielekonsole in der Spielekonsole Xbox und Windows
  • Micro Framework (.NET MF) für Kleinstgeräte (seit November 2009 ein Open Source-Projekt)

Durch die Open Source-Initiative „Mono“, die inzwischen zur Firma Novell gehört, steht auch eine Imp-lementierung von .NET aber auch für Linux und andere Unix-basierte Systeme und Mac OS zu Verfügung.
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“).

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.

Weitere Informationen finden Sie in diesen Beiträgen:
Windows Compatibility Pack
.NET
.NET 2015
.NET 3.0
.NET 3.5
.NET 4.0
.NET 4.5
.NET 5.0
.NET Compact Framework
.NET Compiler Platform
.NET Connected
.NET Core
.NET Core 1.1
.NET Core 2.0
.NET Core 2.1
.NET Core 3.0
.NET Core Common Language Runtime
.NET Design Guidelines
.NET Enterprise Library
.NET Enterprise Servers
.NET Enterprise Services
.NET for the Cloud
.NET for Windows Store Apps
.NET Framework 1.0
.NET Framework 1.1
.NET Framework 2.0
.NET Framework 2005
.NET Framework 3.0
.NET Framework 3.5
.NET Framework 4.0
.NET Framework 4.5
.NET Framework 4.5.1
.NET Framework 4.5.2
.NET Framework 4.6
.NET Framework 4.7
.NET Framework 4.7.1
.NET Framework 4.8
.NET Framework 5.0
.NET Framework 64-Bit
.NET Framework Class Library
.NET Framework Client Profile
.NET Framework Standard Library
.NET Micro Framework
.NET Native
.NET Open Source
.NET Remoting
.NET Software Development Kit
.NET Standard
.NET-Dienste
.NET-Komponente
.NET-Plattform
.NET-Profile
.NET-Sprache
Abstract Windowing Toolkit
Active Data Objects .NET
Active Data Objects .NET 2.0
Active Directory Management Objects
Active Directory Service Interface
Active Directory Web Services
Active Server Pages .NET 2.0
ActiveX
ADO.NET Entity Framework
ADO.NET Entity Framework 4.0
ADO.NET Object Services
Aero
Ahead of Time Compilation
Aliaseigenschaft
Allow Partially Trusted Callers
Always Encrypted
Anders Hejlsberg
ASP.NET 3.5 Extensions
ASP.NET AJAX Control Toolkit
ASP.NET Compiler
ASP.NET Core
ASP.NET Core 1.1
ASP.NET Core 2.0
ASP.NET Dynamic Data Website
ASP.NET Mobile Control
ASP.NET Precompilation
ASP.NET Web Site Administration Tool
ASP.NET Webforms
ASP.NET Webforms 2.0
ASP.NET Webforms 3.5
ASP.NET-Webservice
ASP.NET-Werkzeuge
Assembly
Assembly Download Cache
Assemblylinker
Attribut
Avalon
Azure Container Registry
Base Class Library
BASTA
Benutzerdefinierte Codegruppe
Boxing
Classic Code
Click-Once-Deployment
CLI-Dienste
CLI-Komponente
CLR-Komponente
Code Access Security
Codeanalyse
COM+
COM-fähige Sprachen
Commandlet
Common Language Infrastructure
Common Language Specification
Common Object Runtime
Component Object Model
Component Object Runtime
CSharp
CSharp 2.0
CSharp 4.0
CSharp 5.0
CSharp 6.0
CSharp 7.1
CSharp 8.0
Data Protection API
Dateisystem
Datenbankschnittstelle
DBNULL
Debugger
Design Time Control
Developer Division
Developer Division Compatibility Council
Directory Services Markup Language
Distributed Component Object Model
Docker Hub
DOTNET
DOTNET Scripting Host
Dublin
Durable Service
Dynamic Language Runtime
edge.JS
Eigenschaftssatz
Entity Framework Core 2.0
Entwicklungsumgebung
Ereignisprotokoll
European Computer Manufacturers Association
eXtensible Application Markup Language
FORMATETC
FSharp
FxCOP
Getter
Global Unique Identifier
Graphics Device Interface+
IAsyncResult
IComponent
IDisposable
IEnumerable
Imagine Cup
In-Memory Database
In-Place-Update
Int64
Integer8
Internet Information Server 7.0/7.5
IronPython
Isolated Storage
J/Direct
J++
Java
Java User Migration Path to Microsoft .NET
Java Virtual Machine
JScript .NET
JSharp
Klasse
Klassenbrowser
Language Integrated Query
Large Object Heap
LINQ-to-SQL
Machine.config
Managed C++
Managed Code
Managed Component
Managed Debugger
Managed JScript
Managed Object
Managed Profile Guided Optimization
Marker Interface
Metadaten
Metaobjekt
Microsoft ASP.NET AJAX
Microsoft Build
Microsoft BUILD-Konferenz
Microsoft BUILD-Konferenz 2015
Microsoft BUILD-Konferenz 2016
Microsoft BUILD-Konferenz 2017
Microsoft Certified Application Developer
Microsoft Content Management Server
Microsoft Intermediate Language
Microsoft Silverlight
Microsoft SQL Server 2005
Microsoft SQL Server 2008
Microsoft Synchronization Services for ADO.NET
Microsoft Transaction Server
Microsoft Unity
Mobile Internet Toolkit
Mono
MS Build Everett Environment
MSIX Windows Application Packaging
Multi File Assembly
Multitargeting
Multi-Targeting
Native Image
Native Image Cache
Native Image Generation
Next Generation Windows Service
NoGCRegion
Notizeigenschaft
No-Touch-Deployment
NuGet Library Package Manager
Objectspaces
Open Data Protocol
Open XML
Orcas
Partielle Klasse
Platform Invoke
Plattformunabhängigkeit
Pocket PC
Portable Class Library
PowerShell Core
Primary Interop Assembly
Project 7
Project K
Qualifier
Reference Assembly
Regulärer Ausdruck
Representational State Transfer
Ressourcendatei
Runtime Callable Wrapper
RyuJIT
Script for .NET
Serialisierung
Serviced Component
Setter
Shared Project
Shared Source Common Language Infrastructure
Side-By-Side Execution
Simple Mail Transfer Protocol
Simple Object Access Protocol
Skripteigenschaft
SOAP-Extension
Softwarekomponente
SqlServerCe
Strongly Named Assembly
Strongly-Typed Ressource
System
System.CodeDom
System.CodeDom.Compiler
System.Collections
System.Collections.Specialized
System.ComponentModel
System.ComponentModel.Design
System.ComponentModel.Design.Serialization
System.Configuration
System.Configuration.Assemblies
System.Configuration.Install
System.Console
System.Data
System.Data.Common
System.Data.ObjectSpaces
System.Data.OleDb
System.Data.SqlClient
System.Data.SqlTypes
System.Deployment
System.Diagnostics
System.Diagnostics.Design
System.Diagnostics.SymbolStore
System.Drawing
System.Drawing.Design
System.Drawing.Drawing2D
System.Drawing.Imaging
System.Drawing.Printing
System.Drawing.Text
System.EnterpriseServices
System.EnterpriseServices.CompensatingResourceManager
System.EnterpriseServices.Internal
System.Globalization
System.IO
System.IO.IsolatedStorage
System.Management.Instrumentation
System.Messaging
System.Messaging.Design
System.Net
System.Net.Sockets
System.Object
System.Reflection
System.Reflection.Emit
System.Resources
System.Runtime.CompilerServices
System.Runtime.InteropServices
System.Runtime.InteropServices.CustomMarshalers
System.Runtime.InteropServices.Expando
System.Runtime.Remoting
System.Runtime.Remoting.Activation
System.Runtime.Remoting.Channels
System.Runtime.Remoting.Channels.Http
System.Runtime.Remoting.Channels.Tcp
System.Runtime.Remoting.Contexts
System.Runtime.Remoting.Lifetime
System.Runtime.Remoting.Messaging
System.Runtime.Remoting.Metadata
System.Runtime.Remoting.Metadata.W3cXsd2001
System.Runtime.Remoting.MetadataServices
System.Runtime.Remoting.Proxies
System.Runtime.Remoting.Services
System.Runtime.Serialization
System.Runtime.Serialization.Formatters
System.Runtime.Serialization.Formatters.Binary
System.Runtime.Serialization.Formatters.Soap
System.Security
System.Security.Cryptography
System.Security.Cryptography.X509Certificates
System.Security.Cryptography.Xml
System.Security.Permissions
System.Security.Policy
System.Security.Principal
System.ServiceProcess
System.ServiceProcess.Design
System.Text
System.Text.RegularExpressions
System.Threading
System.Timers
System.Type
System.ValueType
System.Web
System.Web.Caching
System.Web.Configuration
System.Web.Handlers
System.Web.Hosting
System.Web.Mail
System.Web.RegularExpressions
System.Web.Security
System.Web.Services
System.Web.Services.Configuration
System.Web.Services.Description
System.Web.Services.Discovery
System.Web.Services.Protocols
System.Web.SessionState
System.Web.UI
System.Web.UI.Control
System.Web.UI.Design
System.Web.UI.Design.WebControls
System.Web.UI.HtmlControls
System.Web.UI.WebControls
System.Web.Util
System.Windows.Forms
System.Windows.Forms.ComponentModel.Com2Interop
System.Windows.Forms.Design
System.Windows.Forms.PropertyGridInternal
System.Xml
System.Xml.Schema
System.Xml.Serialization
System.Xml.XPath
System.Xml.Xsl
Transactional File System
Triton
Typkonzept
Value Type
Versionierung
Virtual Execution System
Visual Basic
Visual Basic .NET 2002
Visual Basic .NET 2003
Visual Basic 2012
Visual Basic 2015
Visual Basic 8.0
Visual Basic 9.0
Visual Studio
Visual Studio .NET 2002
Visual Studio 2005
Visual Studio 2013
Visual Studio Software Development Kit
WCF Data Service
WCF Rich Internet Application Services
Web Platform Installer
Web Services Enhancements
web.config
Whidbey
Windows CardSpace
Windows CE
Windows Communication Foundation
Windows Compatibility Pack for .NET Core
Windows Forms
Windows Forms 2.0
Windows Framework
Windows Nano Server
Windows PowerShell
Windows PowerShell 2.0
Windows PowerShell 5.0
Windows PowerShell 5.1
Windows Presentation Foundation
Windows Runtime
Windows Server 2003
Windows Server System
Windows Workflow Foundation
WMI+
Xamarin
XAML Browser Application
XAML Standard
XML Schemas DataTypes Support Utility
XML.NET
XmlDocument
XmlLite
XmlReader
XmlWriter
XNA Framework
XPath Data Model
XPathNavigator
YAML Ain't Markup Language