Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenDienstag, 17. September 2019 

.NET


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.
.NET (häufigste Aussprache: dott-nett ) ist eine Entwicklungsplattform des Softwareherstellers Microsoft die als Gegenpol zu Sun Microsystems Java eingeführt wurde und neben einer virtuellen Laufzeitumgebung aus einem Rahmenwerk (Framework) von Klassenbibliotheken API ) und Diensten besteht die als Basis Eigenentwicklungen dienen.

Inhaltsverzeichnis

Entstehung

Historisch gesehen ist die Motivation für Initiative am besten verständlich. Durch die immer Verbreitung der plattformübergreifenden Java-Technologie zu Beginn des 21. Jahrhunderts sah Microsoft seine Dominanz im Bereich PC-Kerntechnologien in Gefahr. Außerdem war es Microsoft dahin nicht gelungen im lukrativen Markt der Kleingeräte Fuß zu fassen. Microsoft übernahm die Sun entwickelte Java-Technologie für sich und erweiterte nach den eigenen Bedürfnissen worunter die Plattformunabhängigkeit litt. Als Sun dies unter anderem Gerichtsverfügung unterband wechselte Microsoft die Strategie. Um vollständige Unabhängigkeit von anderen zu erreichen wurde .NET-Plattform von Grund auf neu entwickelt.

Konzept

Die .NET-Plattform stellt mit der Common Language Infrastructure (CLI) eine Basis zur Ausführung von die mit unterschiedlichen Programmiersprachen erstellt wurden her. wird durch eine gemeinsame Klassenbibliothek und die einer virtuellen Maschine erreicht.

Die Common Language Runtime (CLR) ist die virtuelle Maschine von und stellt somit die Laufzeitumgebung für verschiedene .NET angepasste Hochsprachen zur Verfügung. Die VM den standardisierten Bytecode der Microsoft Intermediate Language (MSIL) aus. Hierfür wurde ein sprachübergreifendes von objektbasierten Datentypen definiert so dass auch unterschiedlichen Sprachen geschriebene Programmteile auf gemeinsame Ressourcen können. Dies unterscheidet .NET von anderen auf basierenden Laufzeitumgebungen (z.B. Java Virtual Machine ) so genannten virtuellen Maschinen.

Die Common Language Specification (CLS) definiert einen vereinheitlichten Binärcode der von der virtuellen Laufzeitumgebung ( VM ) in den Maschinencode der Zielmaschine übersetzt ausgeführt werden kann. Somit ist es möglich mit verschiedenen an die CLR angepassten Sprachen programmieren. Beispielsweise sind das neben der von für .NET eingeführten Sprache C# die Sprachen C++ das proprietäre Visual Basic und das proprietäre Visual J# (einer von Microsofts Java-Implementierung).

Weitere Sprachen werden von Drittanbietern zur gestellt (z.B. Delphi von Borland).

Nachdem ein Programm kompiliert wurde liegt gemäß der CLS in einer sprachneutralen Binärform Hiermit wird gewährleistet dass verschiedene unterstützte .NET-Programmiersprachen in anderen Sprachen geschriebenen Code zugreifen können. wiederverwendbare Code wird in so genannten Assemblies und bereitgestellt (vgl. mit Packages/Packeten in Java hierarchischen APIs in C und C++).

Neben dem sprach- und plattformneutralen Binärcode .NET noch eine weitere Form von Code den so genannten "unmanaged code". Dieser Code in seiner kompilierten Form in einer maschinennahen vor und verwaltet die vom Betriebssystem bereitgestellten eigenverantwortlich.

Dies führt bei einer Sprache die und Plattformunabhängigkeit anstrebt natürlich dazu dass ein das "unmanaged code" verwendet auf verschiedenen Plattformen vorhersagbares Laufzeitverhalten garantiert. Ein weiterer Nachteil von code" ist dass ungewollte Instabilitäten oder Sicherheitslücken innerhalb des Systems entstehen können.

Ein Vorteil besteht aber darin dass von Programmen die nicht speziell für die entwickelt wurden (z.B. bestehende C++-Quelltexte) ohne Änderungen werden können. Soll das Programm mit Code in anderen Programmiersprachen geschriebenen Teilen zusammenarbeiten dann allerdings bestimmte Einschränkungen in Kauf genommen werden unter Umständen Anpassungen am Quelltext erforderlich macht.

Die angestrebte Plattformunabhängigkeit ist unter .NET leider bisher kaum da der Hersteller Microsoft die .NET-Plattform nur seine eigene Produktlinie Windows anbietet. Eine Laufzeitumgebung VM) für das Betriebssystem Linux (und deren Derivate) steht aber dank in Form des Open-Source-Projektes Mono zur Verfügung das vom Hersteller Ximian initiiert wurde. Da sich dieses Projekt noch in der Entwicklung befindet (Stand: September und nicht alle Komponenten von .NET zur stehen ist mit einer hohen Verbreitung auf Systemen nicht zu rechnen. Daneben wird noch Rahmen des dotGNU -Projekts an einer Portable.NET genannten Laufzeitumgebung gearbeitet.

Wegen der fehlenden Betriebssystem-Unterstützung von Windows-fremden seitens Microsoft fehlender (freier) Entwicklungsumgebungen fehlender Normierung Klassenbibliothek sowie lizenzrechtlicher Probleme kann man Plattformunabhängigkeit in der deshalb nicht attestieren. Unter dem Aspekt der Verfügbarkeit dominieren hier auch weiterhin Java-Programme Umsetzungen Sprachen wie Perl und PHP - sowie maschinennahe Produkte die typischerweise Sprachen wie C und C++ erstellt werden.

Laufzeitumgebung

"Managed code" wird im Vergleich zu code" von einer Laufzeitumgebung (runtime environment) verwaltet der Common Language Runtime (CLR). Diese virtuelle ( VM ) übernimmt die Anforderung und Freigabe von und anderen Ressourcen ( Garbage-Collection ) und stellt sicher dass geschützte Speicherbereiche direkt angesprochen oder überschrieben werden können. Auch auf Dienste Dateisystem -Funktionen oder Geräte werden kontrolliert und können sie gegen Sicherheitsrichtlinien verstoßen von der CLR werden ( Sandbox -Prinzip).

Die automatische Ressourcenverwaltung und die verbesserte haben dabei auch ihren Preis - die von "managed code" hat einen erhöhten Bedarf Ressourcen und benötigt geringfügig mehr Zeit. Außerdem die Antwortzeiten auf Programm-Ereignisse wesentlich schwieriger zu und zum Teil deutlich größer was die für Echtzeitaufgaben stark einschränkt.

Ein Grund hierfür ist die " Garbage-Collection " (englisch für Müllsammlung bzw. Müllabfuhr ) die automatische Freigabe nicht mehr benötigten und anderer Ressourcen. Zu beachten ist hierbei die Freigabe nicht direkt erfolgt sondern der Garbage-Collector der CLR über den Zeitpunkt entscheidet. dies einerseits durch die Zusammenfassung der Freigabeoperationen Ausführungsdauer von Programmläufen verringern kann können die auf Ereignisse dadurch in Mitleidenschaft gezogen werden. die zeitverzögerte Freigabe entsteht auch ein erhöhter Dies ist natürlich besonders für kleinere Maschinen und stellt deshalb im Hinblick auf die zu mobilen Kleingeräten ein Problem dar. Es daher Überlegungen das System in eine Richtung zu entwickeln die den Betrieb von .NET-Programmen ohne die Verwendung einer Garbage-Collection ermöglicht.

Stand der Dinge ist jedenfalls dass außerhalb der CLR betriebene Anwendungen benötigt werden es um die Erstellung laufzeitkritischer Anwendungen geht Animation Simulation Bildverarbeitung direkte Zugriffe auf Dateisysteme und Geräte Treiberprogrammierung 3D- Spieleprogrammierung KI-Anwendungen sicherheitsrelevante Anwendungen wie Anlagensteuerungen usw.). hat das VM-basierte .NET auch mit Systemen der Java-Plattform gemeinsam.

Klassenbibliothek

Die Bibliothek umfasst einige Tausend Klassen in so genannte Namensräume (Namespaces) unterteilt sind. Die Klassen erfüllen wie z.B. das Formatieren von Text das von Mails aber auch das Generieren von Die Unterteilung in Namensräume dient dazu die Menge an Informationen übersichtlicher zu gestalten. Beispielsweise sich Klassen zum Generieren von Code in Namensraum System.Reflection.Emit .

Die Dokumentation der Klassen liefert der in seinem "Software Development Kit" (SDK) mit unten).

Verfügbarkeit

Der Hersteller Microsoft bietet .NET in Formen an. Als reine Laufzeitumgebung samt benötigter (Framework) als kostenloses SDK für Entwickler als kostenpflichtige integrierte Entwicklungsumgebung Development Environment IDE ) in Form des "Microsoft Visual Studio

Seit "Windows Server 2003" bietet Microsoft hinaus Server-Betriebssysteme an die eine bereits integrierte Laufzeitumgebung bereitstellen. Bei Vorversionen muss die Laufzeitumgebung installiert werden sofern sie zu einer unterstützten gehört. Unter Windows 3.1 und Windows 95 .NET nicht lauffähig. Auf Nicht-Windows-Systemen wird .NET Microsoft offiziell nicht unterstützt - ist also in der Theorie plattformunabhängig. Allerdings existieren die erwähnten Open-Source-Projekte die .NET auch für andere (z.B. Linux) eingeschränkt verfügbar machen. ASP.NET für die Webseitengestaltung läuft nur auf 2000 Professional/Server Windows XP Professional und Windows 2003.

Für Handhelds und Mobiltelefone die unter CE bzw. Windows Mobile 2003 laufen existiert abgespeckte Version der .NET-Laufzeitumgebung in Form des Frameworks. Da sich aber nur unter Verwendung kostenpflichtigen Visual Studio .NET 2003 oder neuer diese Plattform entwickeln lässt ist die Verbreitung Kleingeräten aber gering im Vergleich zu Technologien der Java 2 Micro Editon (J2ME).

Weblinks



Bücher zum Thema .NET

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/.NET.html">.NET </a>