| ADO.NET |
- |
Unter ADO.NET werden verschiedene .NET-Klassen zusammengefasst, die den Zugriff auf externe Datenquellen (z.B. Datenbanken) ermöglichen. ADO.NET ist Bestandteil der Base Class Library (BCL). |
| AJAX |
Asynchronous JavaScript and XML |
AJAX bezeichnet ein auf bekannten Web-Technologien basierendes Konzept zum asynchronen Datentransfer zwischen Client (Browser) und Server. Dabei können Teile einer HTML-Seite mittels Javascript nachgeladen werden, ohne die gesamte Seite neu laden zu müssen.
AJAX-Applikationen vermitteln so den Eindruck, dass es sich bei der Webanwendung um eine traditionelle, lokale Desktop-Applikation handelt (im Gegensatz zu einer zustandslosen Webanwendung, die nach entsprechenden Nutzer-Interaktionen jeweils die komplette Webseite neu darstellen muss).
AJAX stellt einen technologischen Ansatz zu Realisierung von Rich Internet Applikationen (RIA) dar.
Im Wesentlichen basieren AJAX Applikationen auf bekannten Web-Technologien und Standardisierungen wie HTML, Javascript, XML, SOAP und dem Document Object Model (DOM). Teile des DOM-Baums werden dabei durch Javascript-Methoden aktualisiert (asynchrone Callbacks), während andere Teile, die nicht unmittelbar durch Nutzer-Aktionen betroffen sind, in ihrer ursprünglichen Form erhalten bleiben.
Mit ASP.NET 2.0 wurden solche asynchrone Callbacks eingeführt, die speziell die Entwicklung von AJAX-Anwendungen vereinfachen sollen. Mit ASP.NET AJAX (Codename "Atlas") wird die serverseitige Entwicklungsplattform ASP.NET 2.0 um Client-Skriptbibliotheken erweitert und vereinfacht damit weiter die Entwicklung browserunabhängiger AJAX-Applikationen. |
| Allgemeines Typsystem |
- |
Siehe CTS. |
| Application Domain |
AD |
Als Application Domain bezeichnet man den Speicherbereich, den die Common Language Runtime zur Ausführung einer oder mehrerer Assemblies reserviert und verwaltet. Application Domains sind damit isolierte Bereiche innerhalb eines CLR-Prozesses (bzw. OS-Prozesses) und dienen der Isolierung unterschiedlicher Applikationen (insbesondere der Abschirmung erzeugter Objekte und ihrer Felder/Attribute).
In eine Application Domain können von der CLR mehrere Assemblies geladen werden und in einem OS-Prozess können mehrere Application Domains erzeugt werden.
Eine Kommunikation zwischen zwei Assemblies, die in unterschiedlichen Applikationsdomänen liegen (oder sogar über Prozessgrenzen hinweg), kann durch .NET Remoting (Serialisierung/Marshalling) und Channels/Formatters (TCP oder SOAP-Channel) realisiert werden.
Der Begriff der Applikationsdomäne darf aber nicht mit dem Konzept des Threads gleich gesetzt werden, der auch mehrere Applikationsdomänen umfassen kann. |
| Application Domain Policy Level |
- |
Siehe Policy Level. |
| ASP.NET |
Active Server Pages.NET |
ASP.NET ist eine mit dem .NET-Framework eingeführte Technologie und tritt die Nachfolge der Active Server Pages (ASP) an. ASP.NET kapselt im .NET Framework eine Menge von Methoden und Klassen, die für die Entwicklung von Webapplikationen hilfreich sind (z.B. dynamische Webseiten, Webservices). |
| ASP.NET AJAX |
- |
ASP.NET AJAX, auch bekannt unter dem Codenamen "Atlas", ist eine freie Plattform zur Entwicklung von AJAX Webanwendungen auf der Basis von ASP.NET. Im Wesentlichen verbindet ASP.NET AJAX dabei browserunabhängige Javascript-Bibliotheken mit der serverbasierten ASP.NET 2.0 Entwicklungsumgebung.
(siehe dazu auch MSDN AJAX und ASP.NET) |
| Assembly |
- |
Als Assembly wird eine Distributionseinheit verstanden, die durch die CLR ausgeführt werden kann. Assemblies sind kompilierte Programmklassen, die in der .NET-Zwischensprache (Common Intermediate Language, CIL) vorliegen und typischerweise mit der bekannten Endung .exe oder .dll gekennzeichnet sind. |
| Attribut |
Assembly-Attribut |
Als Assembly-Attribut bezeichnet man eine zusätzliche Information (Meta-Information), die man direkt im Quellcode des Assemblies ablegen und diesen so kennzeichnen kann. Diese Meta-Informationen werden durch den Compiler den Metadaten eines Assemblies hinzugefügt. Beispiele für Attribute sind die Kennzeichnung, dass eine bestimmte Klasse obsolet (Obsolete) ist oder serialisierbar (Serializable) ist. Auch die Definition eigener Attribute ist möglich. |
| Atlas |
- |
Siehe ASP.NET AJAX. |
| Avalon |
- |
Siehe WPF. |
| Avalon Express |
- |
Siehe XBAP. |
| Array |
- |
Ein Array ist eine Sammlung von Variablen gleichen Typs. Ein Array muss vor der Verwendung deklariert werden. Einträge in einem Array können null sein. Der Zugriff auf ein Arrayelement erfolgt über Arraynamen [ Index ]. Das .NET-Framework erlaubt die Deklarierung sowohl ein- als auch mehrdimensionaler Arrays, die sowohl Referenztypen als auch Wertetypen speichern. Arrays basieren auf dem Laufzeitumgebungstyp System.Array. |
| BAML |
Binary XAML |
Als BAML bezeichnet man die in ein binäres Format kompilierte XAML-Beschreibung einer WPF-Anwendung. |
| BCL |
Base Class Library |
Durch den ECMA-Standard Common Language Infrastructure (CLI) standardisierte Klassenbibliothek des .Net Frameworks, die allen .NET-Programmiersprachen zur Verfügung steht.
Häufig spricht man auch von Framework Class Library (FCL) oder einfach Class Library.
Im Gegensatz zur BCL umfasst die FCL aber auch Klassen, die nicht im ECMA-Standard CLI standardisiert sind.
Die klassischen Windows-Steuerelemente im Namensraum Windows.System.Forms z.B. sind zwar in der FCL, nicht aber in der BCL enthalten.
Zur FCL gehören des Weiteren z.B. IO-Funktionalitäten (System.IO), Reflection (System.Reflection), Sicherheit (System.Security) u.v.m.
Eine umfangreiche Übersicht der .NET-Klassenbibliothek findet sich bei MSDN.
|
| Boxing |
- |
Boxing bezeichnet die explizite Umwandlung eines Wertetyps in einen Referenztypen. |
| BPEL |
Business Process Execution Language |
BPEL ist eine Sprache, mit der sich komplexe Interaktionen zwischen Webservices darstellen lassen. Der komplexe Prozess, der mit einen BPEL-Dokument beschrieben wird, ist selbst auch wieder ein Webservice. Die Sprache benutzt ebenfalls XML als Syntax und wurde mittlerweile als WS-BPEL standardisiert. Mit dem Microsoft BizTalk Server können solche komplexen Prozesse im .NET-Framework realisiert werden. |
| Bubbling Event |
- |
Siehe Routed Events. |
| C# |
- |
C# (sprich CiScharp) ist eine mit dem .NET-Framework eingeführte .NET Sprache. Die Syntax sowie viele Sprachkonstrukte und -konzepte von C# ähneln denen von C++ oder Java. |
| CAS |
Code Access Security |
Code Access Security bezeichnet ein Sicherheitskonzept des .NET Frameworks. Die Idee hinter diesem Konzept besteht darin, Anwendungen in Abhängigkeit bestimmter Merkmale Rechte zur Ausführung bestimmter Operationen zu geben. Zu diesen Merkmalen einer Anwendung gehören z.B. die Herkunft (lokal, Internet, Intranet) oder der Autor eines Assemblies. Dieses Sicherheitskonzept wird durch die Common Language Runtime (CLR) realisiert, die zur Laufzeit die Assembly-Merkmale evaluiert, mit den Sicherheitseinstellungen des Systems abgleicht und anschließend die Ausführung bestimmter Operationen verhindert oder erlaubt. |
| CCW |
COM Callable Wrapper |
Über den COM Callable Wrapper sind COM-Objekte in der Lage auf .NET-Assemblies zu zugreifen. CCW dient damit der Interoperabilität zwischen COM und .NET. |
| CIL |
Common Intermediate Language |
Die Common Intermediate Language ist eine Zwischensprache, die von der Common Language Runtime (CLR) in Maschinencode übersetzt und zur Ausführung an das Betriebssystem übergeben wird. Die .Net-Sprachcompiler übersetzen den Quellcode der Assemblies nicht direkt in nativen Maschinencode, sondern in diese Zwischensprache. Dieses Konzept erlaubt zum einen die Plattformunabhängikeit der Programmiersprachen und zum anderen den Einsatz verschiedener Programmiersprachen für eine Ausführungsumgebung. CIL wird in der Literatur auch häufig als MSIL (Microsoft Intermediate Language) oder einfach als IL (Intermediate Language) bezeichnet. |
| CLI |
Common Language Infrastructure |
Die Common Language Infrastructure ist die Bezeichnung für einen ISO/IEC/ECMA-Standard, der von Microsoft initiiert wurde. Kerninhalt dieses Standards ist die Spezifikation eines Systems, das eine sprach- und plattformunabhängige Anwendungsentwicklung und -ausführung ermöglicht.
Neben der MS Umsetzung dieses Standards als .NET-Framework existieren weitere Implementierungen für z.B. Unix/Linux-Derivate und MacOS-Systeme. Die bekannteste ist sicherlich Mono für Linux/Unix.
Zum Zeitpunkt, als dieses Dokument verfasst wurde, ist die Version 4 vom Juni 2006 die aktuelle Standard-Version. Der ECMA-Standard ist erhältlich unter http://www.ecma-international.org/publications/standards/Ecma-335.htm. |
| CLR |
Common Language Runtime |
Die CLR ist die .NET-Implementierung des Virtual Execution Systems des "Common Language Infrastructure"-Standards und damit das Herzstück des .NET-Frameworks. Die CLR dient u.a. dafür, Assemblies in Maschinencode zu übersetzen und dem Betriebssystem zur Ausführung zu übergeben. Weitere Aufgaben der CLR sind die Durchsetzung der Sicherheitsrichtlinien, Typsicherheitsprüfungen, Speicher- und Codeverwaltung. |
| CLS |
Common Language Specification |
Die Common Language Specification umfasst einen Teil des CTS und stellt zusammen mit einigen Regeln damit eine wichtige Grundlage der .NET-Sprachen dar. Alle in der CLS definierten Typen müssen von jeder .NET-Sprache unterstützt werden. Somit wird die Interoperabilität der verschiedenen .NET-Sprachen gewährleistet.
Genau wie das Common Type System (CTS) ist auch die CLS ein Teil des CLI-Standards. |
| Code Group (Tree) |
- |
Die Policy Levels des .NET-Framework, die zur Konfiguration der .NET-Sicherheitseinstellungen dienen, beinhalten hierarchisch, in einem Baum organisierte Code Groups.
Jede Code Group besteht aus einer sogenannten Membership-Condition und einem Permission Set. Die Membership-Condition formuliert eine Bedingung, die an die Evidence eines Assemblies geknüpft ist.
Die Prüfung dieser Bedingung erfolgt zur Laufzeit durch die Common Language Runtime (CLR) für jedes auszuführende Assembly. Ein Beispiel für eine solche Bedingung ist die Prüfung, ob der Ladeort eines Assemblies einer bestimmten URL entspricht.
Als Permission Set werden verschiedene Ausführungsrechte zusammengefasst, die ein Assembly erhält, falls es die Membership-Condition der Code Group erfüllt. So kann z.B. sichergestellt werden, dass alle Assemblies von zfs.fit.fraunhofer.de/downloads Rechte zum Schreiben und Lesen lokaler Dateien erhalten.
Die Knoten des Code Group Trees werden ihrer Baumposition entsprechend traversiert. Die Kondition eines Knotens wird immer nur dann geprüft, falls die Bedingung seines Vaterknotens wahr war. |
| COFF |
Common Object File Format |
Siehe PE-Header. |
| Compiler |
- |
Compiler wurde in dieses Glossar aufgenommen, weil diesem Begriff im Kontext des .NET-Frameworks ein besonderer Stellenwert zukommt. Auf der einen Seite existieren die zahlreichen Sprach-Compiler, die den Assembly-Quellcode in die .NET-Zwischensprache übersetzen (CIL). Grundsätzlich haben alle .NET Sprachen (C#, J++, VB.NET etc.) einen eigenen Sprachcompiler. Auf der anderen Seite sorgt der Just In Time Compiler der CLR für die Übersetzung des Zwischencodes in Maschinencode. |
| CTS |
Common Type System |
Das Common Type System ist ein Herzstück des .NET-Frameworks. Das CTS umfasst eine Definition aller durch die Common Language Runtime ausführ- und interpretierbaren Typen. |
| Delayed Signing |
partial Signing, verspätetes Signieren |
Delayed Signing bezeichnet eine Technik, um öffentliche Assemblies, die sich noch in der Entwicklungsphase befinden, teilweise zu signieren.
Beim Signieren eines Assemblies wird mit Hilfe eines öffentlichen und eines privaten Schlüssels zum einen das so genannte Public Key Token in das Manifest eines Assemblies geschrieben und zum anderen wird eine mit Hilfe des privaten Schlüssels erstellte digitale Signatur in den PE-Header des Assemblies eingetragen, die über den öffentlichen Schlüssel des Assemblies validiert werden kann. Zum Erstellen dieser digitalen Signatur benötigt man demnach das öffentliche/private Schlüsselpaar während zur Validierung dieser Signatur der öffentliche Schlüssel ausreicht. Signierte Assemblies können in den Global Assembly Cache (GAC) installiert werden und andere .NET-Applikationen können über den Strong Name zudem die exakte Version dieses Assemblies einbinden und referenzieren.
Einmal signierte Assemblies können nicht mehr geändert werden, da sich durch die Änderung der Hashwert des Assemblies ändert und sich damit die digitale Signatur mit dem öffentlichen Schlüssel nicht mehr auflösen lässt. Mit anderen Worten können einmal signierte Assemblies nicht mehr geändert werden ohne dass die digitale Signatur ihre Gültigkeit verliert oder ? im Kontext des Entwicklungsprozesses - nach jeder Assembly-Änderung muss diese erneut digital signiert werden.
Um die Funktionalitäten des öffentlichen Assemblies aber bereits während des Entwicklungsprozesses zu testen ohne dabei fortlaufend auf den mitunter streng geheimen privaten Schlüssel eines Unternehmens zugreifen zu müssen, kann das Public Key Token über den Prozess des Delayed Signing eingebunden und ein Platzahlter für die digitale Signatur in den PE-Header des Assemblies eingetragen werden. So können Assemblies zu Testzwecken auch ohne digitale Signatur in den GAC installiert und von anderen .NET Applikationen referenziert werden. Vor dem offiziellen Release des Assemblies wird der Platzhalter dann schließlich durch die echte digitale Signatur ersetzt.
Delayed Signing wird also in erster Linie beim Softwareentwicklungsprozess eingesetzt, um die Funktionalitäten eines öffentlichen Assemblies zu testen, ohne dabei das Assembly dem teilweise aufwändigen Prozess der Signierung zu unterziehen. |
| Delegate |
Callback, Rückruf |
Ein Delegate ist ein Objekt, welches auf eine Methode zeigt, die zu einem späteren Zeitpunkt aufgerufen werden kann.
Ein Delegate wird definiert über die Parameter-Signatur und den Rückgabewert. Beim Erzeugen des Delegate-Objektes gibt man dann den Methodennamen an.
Die wesentlichen Unterschiede zum direkten Methodenaufruf sind nun die Tatsachen, dass
- über die Delegate-Definition festgelegt wird, welche Methoden-Parameter in der Methode vorhanden sein müssen und
- Delegates sowohl synchron wie auch asynchron aufgerufen werden können.
|
| Destruktor |
Finalizer |
Der Destruktor ist eine Methode, die vor dem endgültigen Löschen eines Objekts aus dem Speicher vom Garbage Collector (GC) aufgerufen werden kann. Destruktoren können z.B. definiert werden, um Ressourcen (z.B. offene Datenbankverbindung, geöffnete Dateien u.ä.) zu schließen bzw. freizugeben. Falls die Basisklasse eines Objekts ebenfalls einen Destruktor definiert, wird dieser ebenfalls vom Garbage Collector aufgerufen.
Definiert werden Destruktoren mit dem Tildezeichen ~ gefolgt vom Klassennamen, z.B. ~ Klassennamen() {} . Eine Parameterübergabe an den Destruktor ist nicht möglich.
Es wird nicht gewährleistet, dass der Destruktor tatsächlich vom Garbage Collector aufgerufen wird.
|
| DLINQ |
- |
Siehe Language Integrated Query. |
| DTD |
Document Type Definition |
Eine DTD legt die Struktur eines XML-Dokuments fest. Die DTD kann innerhalb eines XML-Dokuments angegeben sein oder ein Verweis auf eine separate Datei sein. Im Gegensatz zu einem XML Schema kann man in einer DTD allerdings die Struktur nur sehr grob angeben. So sind z.B. keine genauen Typangaben möglich. |
| DOM |
Document Object Model |
Das Document Object Model (DOM) ist eine vom Word Wide Web Consortium (W3C) standardisierte Programmierschnittstelle für den Zugriff auf hierarchisch strukturierte Dokumente wie HTML- oder XML-Dokumente.
Die Dokumente werden dabei gemäß ihrer hierarchischen Anordnung als Baum verwaltet.
Das .NET-Framework stellt mehrere Klassen zur Verfügung, um diesen Objekt-Baum im Hauptspeicher zu verwalten. Die Klassen XmlNode und XmlDocument aus dem Namespace System.Xml beispielsweise ermöglichen den Zugriff auf und die Manipulation von XML-Dokumenten, während die Klasse HtmlDocument aus dem Namespace System.Windows.Forms den Zugriff auf HTML-Dokumente ermöglicht.
Da für die DOM-Repräsentation das gesamte Dokument in den Hauptspeicher geladen werden muss, sollte man diesen Ansatz nur dann wählen, wenn man z.B. schreibenden Zugriff auf die Struktur benötigt. Für einen lesenden Zugriff eignet sich z.B. die XmlReader-Klasse, die weniger Ressourcen benötigt.
Insbesondere AJAX- und RIA-Applikationen nutzen diese Programmierschnittstelle intensiv, um ganz gezielt einzelne Teile einer HTML-Seite (repräsentiert als Knoten im DOM) zu manipulieren, ohne die gesamte Seite neu laden zu müssen.
|
| Enterprise Policy Level |
- |
Siehe Policy Level. |
| Ereignis |
- |
Siehe Event (Ereignis). |
| Event (Ereignis) |
- |
Ein Event bzw. Ereignis ist ein Vorgang, der eine Aktion und damit eine Zustandsänderung auslösen kann.
Ereignisse werden häufig zur Realisierung der Interaktion mit grafischen Benutzeroberflächen genutzt.
Ebenso können Ereignisse aber auch z.B. durch eine bestimmte Programmlogik ausgelöst werden.
Ein typisches Ereignis ist beispielsweise der Mausklick auf einen Button oder die Auswahl eines Eintrags aus einer Auswahlbox.
Im .NET-Framework wird die Ereignisbehandlung über Delegates (Funktionszeiger) realisiert.
Ereignisse, die eine Klasse bereitstellt, müssen mit dem Schlüsselwort event gekennzeichnet und vom Typ Delegate sein. Methoden, die dann zur Ereignisbehandlung
eingesetzt werden sollen, müssen sich mittels += beim Event-Delegate registrieren. Diese Art der Registrierung ist notwendig, damit bereits für dieses Ereignis registrierte Methoden nicht versehentlich überschrieben werden.
Wird ein Event schließlich ausgelöst (z.B. durch einen Mausklick auf einen Button), werden alle Methoden aufgerufen, die sich für dieses Ereignis registriert haben.
|
| Evidence |
- |
Als Evidence bezeichnet man im Rahmen der Code Access Security die Assembly-Merkmale, auf deren Grundlage bestimmte Rechte zur Ausführung von Operationen gewährt oder verweigert werden. Zur Bestimmung der Assembly-Evidence werden z.B. Herkunft und Autor eines Assemblies durch die CLR evaluiert. |
| FCL |
Framework Class Library |
Klassenbibliothek des .NET-Framework
|
| GAC |
Global Assembly Cache |
Der Global Assembly Cache ist ein globales Verzeichnis, in das so genannte public Assemblies installiert werden können. Im GAC installierte Assemblies können systemweit von allen .NET-Applikationen genutzt werden. Im Gegensatz zu klassischen DLLs können auch unterschiedliche Versionen des gleichen Assemblies parallel in den GAC installiert werden. |
| GC |
Garbage Collector |
Der Garbage Collector ist Teil der Common Language Runtime (CLR) und dient zur automatischen Speicherverwaltung. Hauptaufgabe des Garbage Collectors ist dabei die Identifikation nicht mehr verwendeter
Objekte im Hauptspeicher und der anschließenden Freigabe der belegten Speicherressourcen.
Für die Verwaltung der Heap-Speicherbereiche (Referenztypen) nutzt der Garbage Collector einen so genannten Reference Tracing Algorithmus (Mark and Compact),
mit dem alle auf dem Heap gespeicherten, über einen gültigen Verweis noch erreichbaren Objekte markiert und anschließend alle nicht markierten Objekte gelöscht werden.
Gleichzeitig werden die Speicherbereiche des Heaps dabei so defragmentiert, dass belegter Speicherplatz nach Möglichkeit als zusammenhängender Block zusammengefasst wird.
Vor dem Löschen der Objekte versucht der Garbage Collector, diese zu finalisieren. Dazu wird die Destruktor-Methode eines Objekts aufgerufen (falls vorhanden),
um z.B. bestehende Datenbankverbindungen zu schließen oder andere Systemressourcen (z.B. Dateien) freizugeben. Allerdings ist nicht gewährleistet, dass der Garbage Collector
tatsächlich den Destruktor eines Objekts aufruft.
Der belegte Stack-Speicherbereich für Wertetypen hingegen wird sofort dann wieder freigegeben, sobald der Block, in dem ein Wertetyp definiert ist,
abgearbeitet wurde (z.B. am Ende einer Methode).
Der Prozess der Garbage Collection findet automatisch statt, (spätestens) wenn der für eine Speicheranforderung benötigte Speicherplatz nicht ausreicht.
Mit der statischen Methode GC.Collect(); kann man den Prozess jedoch auch manuell starten.
|
| GDI, GDI+ |
Graphical Device Interface |
Das Graphical Device Interface ist eine Programmierschnittstelle, die es ermöglicht,
Zeichenoperationen auf Grafikausgabegeräten wie z.B. Grafikkarte und Drucker auszuführen.
Das GDI ist ein Teil des Windows-Betriebssystems, das den Zugriff auf die Hardware über die entsprechende Win32-API zur Verfügung stellt.
Die grafischen Steuerelemente der Windows-Forms werden über das GDI+ auf dem Bildschirm dargestellt, während die Steuerelemente der Windows Presentation
Foundation (WPF) DirectX für die Bildschirmdarstellung nutzen.
|
| GUI |
Graphical User Interface |
Als Graphical User Interface bezeichnet man die grafische Benutzerschnittstelle, über die ein Anwender mit einem System (z.B. Desktop-Applikation, Webseite etc.) interagieren kann. Typische Elemente eines GUI sind z.B. Schaltknöpfe (Button), Eingabefelder, Listen und Fenster.
Im .NET-Framework werden die wichtigsten GUI-Elemente im Wesentlichen in den Bibliotheken System.Windows.Forms (Windows-Steuerelemente) und System.Web.UI.WebControl (Web-Steuerelemente) gekapselt.
Darüber hinaus bietet das .NET-Framework seit der Version 3.0 mit der Windows Presentation Foundation (WPF) eine weitere, auf DirectX basierende Präsentationsschnittstelle. Diese bietet neben neuen grafischen und multimedialen Objekten (z.B. 3D-Objekte sowie die Ausgabe von Video und Audio) eine XML-basierte, deklarative Sprache zur Beschreibung der Benutzerschnittstellen (eXtensible Application Markup Language, XAML). |
| Heap |
- |
Der Heap ist ein dynamischer Speicherbereich, der von der Common Language Runtime (CLR) zur Verwaltung von Referenztypen (z.B. Objekte einer Klasse) allokiert und verwaltet wird.
Im Gegensatz zum LiFo-Verwaltungsprinzip (Last In First Out) des Stacks, können allokierte Heap-Speicherblöcke in beliebiger Reihenfolge wieder freigegeben werden.
Diese Art der Speicherverwaltung ist zwar etwas aufwändiger, dafür aber wesentlich flexibler.
Der Garbage Collector der CLR nutzt einen so genannten Reference Tracing Algorithmus (Mark and Compact) zur Verwaltung des Heaps,
mit dem alle auf dem Heap gespeicherten, über einen Verweis noch erreichbaren Objekte markiert und anschließend alle nicht markierten Objekte gelöscht werden. Gleichzeitig werden
die Speicherbereiche des Heaps dabei so defragmentiert, dass belegter Speicherplatz nach Möglichkeit als zusammenhängender Block zusammengefasst wird.
|
| Indexer |
- |
Ein Indexer ist ein methodenähnliches Konstrukt, das den Zugriff auf Datenelemente über einen als Parameter übergebenen Index ermöglicht. Dies erlaubt einen Array-ähnlichen Zugriff auf Datenelemente, die in einem Objekt gespeichert sind (z.B. myObject[1]).
Ähnlich wie Eigenschaften können Indexer eine get- und set-Methode haben.
Indexer besitzen keinen Namen, sondern werden mit dem Keyword this deklariert (z.B. public int this[int Index]).
|
| Indigo |
- |
Siehe WCF. |
| InfoCard |
- |
Siehe WCS. |
| IL |
Intermediate Language |
Siehe CIL. |
| J# |
- |
J# ist eine mit dem .NET-Framework eingeführte .NET Sprache. Die Syntax von J# ist an Java angelehnt. |
| JVM |
Java Virtual Machine |
Die Java Virtual Machine ist die Ausführungseinheit der Java-Laufzeitumgebung (JRE, Java Runtime Environment). Ähnlich wie die Common Language Runtime (CLR) des .NET-Framework ist die JVM u.a. für die Ausführung des Java-Bytecode (eine Zwischensprache ähnlich der CIL), Programmsicherheit und Speicherbereinigung verantwortlich.
Im .NET-Framework steht seit der Version 3.0 mit der Windows Communication Foundation (WCF) eine Technologie zur Verfügung, die die Interaktion von Java- und .NET-Applikationen (über Webservices) vereinfacht. |
| JIT, Jitter |
Just In Time Compiler |
Der Just In Time Compiler ist Teil der Common Language Runtime (CLR). Er sorgt für die Übersetzung des in der Zwischensprache vorliegenden Quellcodes der Assemblies in Maschinencode. Diese Übersetzung (Kompilierung) erfolgt zur Laufzeit, sobald Klassen und Methoden der Assemblies genutzt werden; daher der Name "Just In Time". |
| JSON |
Javascript Object Notation |
JSON ist ein textbasiertes Datenaustauschformat, das im Wesentlichen auf einer Untermenge des Javascript-Standards basiert, prinzipiell aber sprachenunabhängig ist.
JSON bietet im Vergleich zu XML eine etwas kompaktere Kodierung der Inhalte und benötigt damit weniger Ressourcen.
JSON findet vorwiegend Einsatz in AJAX-Applikationen zur Übertragung von Daten zwischen Browser (oder generell Client) und Server.
Das .NET-Framework bietet mit ASP.NET 3.5 und den AJAX Extensions umfangreiche Möglichkeiten, das JSON-Format zu nutzen.
|
| Konstruktor |
- |
Konstruktor nennt man die Methode einer Klasse, die zur Instanziierung eines Objekts genutzt wird. |
| Laufzeithost |
Runtime-Host |
Als Laufzeithost wird nicht verwalteter Code bezeichnet, der zur Ausführung eines Assemblies benötigt wird. Die Aufgabe des Laufzeithosts ist u.a. das Laden der CLR, die Übergabe einer Einsprungsadresse an die CLR und die Reservierung von Anwendungsspeicher. Das .NET Framework kennt drei unterschiedliche Laufzeithosts: Internet Explorer, ASP.NET, Windows Shell. |
| Language Integrated Query |
LINQ |
LINQ ist eine mit dem .NET Framework Version 3.5 eingeführte Abfragesprache, die direkt in die Syntax der Programmiersprache (z.B. C#) integriert ist.
Im Gegensatz zu z.B. SQL wird die Abfrage nicht als String übergeben, sondern ist nativ in den Quellcode integriert. Das bietet z.B. den Vorteil, dass der
.NET-Sprachcompiler die Abfrage direkt auf Syntaxfehler prüfen kann, um spätere Laufzeitfehler zu vermeiden.
Die Syntax von LINQ erinnert sehr an die SQL-Abfragesprache mit Befehlen wie z.B. "select", "from", "where" und "orderby".
LINQ findet im Wesentlichen die folgenden vier Anwendungsgebiete:
- LINQ-to-Dataset: bietet Abfragemöglichkeiten für Objekte, die in einem DataSet-Objekt gespeichert sind.
- LINQ-to-SQL (DLINQ): übersetzt die native LINQ-Abfrage in SQL und sendet diese an eine relationale Datenbank. Von der Datenbank gelieferte Ergebnisse werden dann entsprechend wieder in ein Objektmodell übersetzt.
- LINQ-to-XML (XLINQ): bietet Zugriff auf XML-Dokumente (DOM-Manipulation)
- LINQ-to-Objects: bietet Abfragemöglichkeiten für .NET-Objektmengen, die in Listen gespeichert sind, z.B. in List, Array oder Dictionary (müssen das Interface IEnumerable bzw. IEnumerable<T> implementieren.
Die wesentlichen LINQ-Klassen werden in den Namensräumen System.Linq.*, System.Data.Linq sowie System.Xml.Linq zur Verfügung gestellt.
Darüber hinaus gibt es zahlreiche LINQ-Projekte anderer Hersteller und Anbieter, um nur einige der zahlreichen Beispiele zu nennen:
- LINQ-to-MySQL
- LINQ-to-LDAP
- LINQ-to-Flickr
- LINQ-to-Amazon
u.v.m.
|
| Machine Policy Level |
- |
Siehe Policy Level. |
| Managed Code |
Managed Application |
Als managed Code (häufig auch verwalteter Code) werden Applikationen bezeichnet, die von der CLR kompiliert und ausgeführt werden können - also innerhalb des .NET-Frameworks laufen.
Die meisten (der bekanntesten) .NET-Sprachen wie z.B. C# oder VB.NET erzeugen managed Code. Eine Ausnahme bildet die .NET-Sprache C++ (managed C++), die per Compiler-Anweisung auch unmanaged Code (nicht verwalteten Code) kompilieren kann. |
| Manifest |
- |
Das Manifest einer Assembly beinhaltet u.a. folgende Metainformationen : Versionsnummer, Name, beinhaltete Klassen, benötigte Ausführungsrechte, referenzierte Assemblies und - falls es sich um ein shared Assembly handelt - öffentlicher Schlüssel. Das Manifest kann zur Laufzeit über Reflektion ausgelesen werden. |
| MDX |
Multidimensional Expressions |
MDX ist eine Sprache, die innerhalb der Analysis Services von SQL Server benutzt wird. Damit können komplexe Berechnungen in Auswertungen implementiert werden. |
| Membership Condition |
- |
Siehe Code Group (Tree). |
| Metadaten |
- |
Metadaten sind Assembly-Informationen, die zur Laufzeit über Reflection ausgelesen werden können. Metadaten können über Quellcode-Attribute generiert werden. Ebenso generiert der Sprachcompiler weitere Metadaten automatisch. Zu diesen Metadaten gehören u.a. der Name der Klasse, Schnittstellen, Methoden, Ereignisse und Sichtbarkeit der Klasse. |
| Mono |
- |
Mono ist ein Open-Source-Projekt zur Implementierung des ECMA Standards 335 (Common Language Infrastructure) für Linux/Unix Derivate.
Da sowohl das .NET-Framework als auch Mono auf dem gleichen Standard basieren, sind (zumindest theoretisch) beide Laufzeitumgebungen kompatibel. D.h. unter Windows für das .NET-Framework kompilierte Assemblies können ohne zusätzlichen Mehraufwand unter Mono auf z.B. Linux-Derivaten eingesetzt werden (und vice versa). |
| MOSS |
Microsoft Office Sharepoint Server 2007 |
Microsoft Office Sharepoint Server 2007 ist eine webbasierte Plattform zur Kooperationsunterstützung mit starker Integration der Office-Produktfamilie. |
| MS |
- |
Microsoft |
| MSIL |
Microsoft Intermediate Language |
Siehe CIL. |
| Multi File Assembly |
MFA, Multi File Module |
Ein Multi File Assembly bezeichnet - im Gegensatz zu einem Single File Assembly - ein Assembly, das aus mehreren Dateien (Modulen) besteht. Jedes Modul des Assemblies enthält dabei den CIL-Code, Modul-Metadaten sowie ggf. weitere Ressourcen. Eins dieser Module (das Hauptmodul) enthält zusätzlich noch das Assembly-Manifest, das u.a. den Einsprungspunkt sowie die zu dem Assembly gehörenden, übrigen Module referenziert.
Ein Vorteil eines Multi File Assemblies besteht im Einsatz verteilter Inter- und Intranet-Applikationen. Durch die Partitionierung des Assemblies auf mehrere Dateien kann im Bedarfsfall der Download auf die nur tatsächlich benötigten Module beschränkt werden, was das Transfervolumen reduziert und die Ausführungsgeschwindigkeit erhöht. |
| .NET Compact Framework |
- |
Das .NET Compact Framework ist eine reduzierte Variante des .NET Frameworks mit dem Ziel zur Unterstützung von mobilen Endgeräten (SmartPhones, Handys usw.). Einige .NET-Klassenbibliotheken, die für mobile Endgeräte nicht benötigt werden, fehlen im Compact Framework. Das .NET Compact Framework benötigt das Betriebssystem Windows CE. |
| .NET Framework 3.0 |
- |
Die Version 3.0 ist zum Zeitpunkt der Verfassung dieses Eintrags (08.01.07) die aktuelle Version des .NET Frameworks. Obwohl der Sprung der Versionsnummer von 2.0 auf 3.0 einige grundlegende Erneuerungen impliziert, besteht die Version 3.0 aus den gleichen Basis-Bibliotheken wie die Vorgängerversion 2.0. Erweitert werden diese in der neuen Version um die Komponenten, die auch als WinFX bekannt sind: die Windows Presentation Foundation WPF, die Windows Communication Foundation WCF, die Windows Workflow Foundation WF und die Windows CardSpace. |
| Namensraum (Namespace) |
- |
Der Namensraum (oder engl. namespace) ist ein zentrales Konzept des .NET-Frameworks und dient zur thematischen Gruppierung und Einordnung von Typen (Klassen).
Ein Namensraum kann hierarchisch gegliedert sein. Die einzelnen Hierarchieebenen sind dann durch einen Punkt voneinander getrennt, z.B. NSLevel1.NSLevel2.NSLevel3.
Ein Namensraum kann mehrere Typen beinhalten, während ein Typ eindeutig einem Namensraum zugeordnet sein muss.
Innerhalb eines Namensraums muss der Typ daher einen eindeutigen Namen besitzen, d.h. durch die Angabe des Namensraums sind Typen eindeutig identifizierbar, während gleichnamige Typen in unterschiedlichen Namensräumen erlaubt sind (so existiert z.B. ein Typ Button sowohl im Namensraum System.Windows.Forms als auch in System.Windows.Controls).
Zur Zuordnung eines eigenen Typen zu einem Namensraum dient das Keyword namespace, z.B. namespace myOrganisation.myApplication.myNamespace.
Das using-Keyword dient dazu, einen Namensraum zu referenzieren, um anschließend in diesem Namensraum definierte Typen verwenden zu können.
Die Anweisung using System.Net.Mail beispielsweise erlaubt die Verwendung der Klasse MailMessage, die in diesem Namensraum definiert ist.
Einige wichtige Namensräume mit zentralen Typen im .Net-.Framework sind z.B.:
- Windows.System.Controls: kapselt einige Steuerlemente der neuen Präsentations-API Windows Presentation Foundation (WPF), wie z.B. Button, Canvas, CheckBox oder ListBox
- Windows.System.Forms: stellt die klassischen Windows-Steuerelemente wie z.B. Button, CheckBox etc. zur Realisierung grafischer Benutzeroberflächen zur Verfügung
- System.Xml.Linq: beinhaltet Klassen für Linq-To-XML
- System.Data: stellt Klassen zur Verwaltung von Daten aus verschiedenen Datenquellen (z.B. Datenbanken, XML) zur Verfügung (ADO.NET)
- System.IO: bietet grundlegende Funktionalitäten für Schreib- und Lesezugriffe, z.B. auf Dateiebene.
- System.Web: beinhaltet Klassen und Interfaces zur Browser-Server-Kommunikation
|
| OOXML |
Office Open XML |
OOXML ist ein offenes, XML basiertes Datenformat, das als Standard-Speicherformat in Office 2007 genutzt wird. OOXML-Office-Dokumente sind standardmäßig zudem ZIP-komprimiert. |
| Öffentlicher Schlüssel |
- |
Siehe Public Key. |
| Parallel LINQ |
PLINQ |
PLINQ ist ein aktuelles Projekt, um LINQ-Abfragen zu parallelisieren (z.B. für den Einsatz auf Multikern-Prozessoren).
|
| PE-Header |
Portable Execution Header, Executable Header, Portable Executable File Format |
PE-Header ist eine Beschreibung für die Struktur eines Datei-Headers. Das PE-Dateiformat ist eine Implementierung des Common Object File Format (COFF) Standards, den auch .NET-Assemblies in modifizierter Weise nutzen (angereichert um einige .NET-spezifische Erweiterungen wie z.B. einen CLR-Header).
Beim Laden einer .NET-Assembly überprüft das Betriebssystem, um welchen Typ einer ausführbaren Datei es sich handelt. Diese Information wird im Header der Assembly kodiert. Der Header enthält auch die Information, welcher Laufzeithost für das Laden der Common Language Runtime (CLR) genutzt werden muss und wo sich der Eintrittspunkt der Applikation befindet.
Für 32-Bit-Systeme wird das PE32-Format, für 64-Bit-Systeme das PE32+-Format verwendet. Der Wortbestandteil "Portable" ist im Übrigen darauf zurückzuführen, dass dieses Format für alle 32-Bit-Windowssysteme Gültigkeit besitzt
(vgl. dazu auch den englischsprachigen Wikipedia-Artikel Portable Executable). |
| Permission |
Permission Set |
eine Permission bezeichnet im Rahmen der Code Access Security (CAS) ein Recht zur Ausführung einer bestimmten Operation. Dieses Recht wird einem Assembly zur Laufzeit von der CLR gewährt oder verweigert. Als Entscheidungsgrundlage für die Gewährung oder Verweigerung bestimmter Rechte dient der CLR die sogenannte Evidenz eines Assemblies.
Standardmäßig werden eine Vielzahl von Operationen über Permissions verwaltet. So z.B.:
- Dateizugriffe
- Zugriff auf Drucker
- Registry-Zugriffe
- Web-Zugriffe
- u.v.m.
Als granted Permission Set bezeichnet man die finale Menge der Ausführungsrechte, die ein Assembly als Ergebnis der Prüfung der CAS-Sicherheitseinstellungen erhält. |
| Policy Level |
PL |
Policy Levels sind Teil der Code Access Security (CAS). Die Policy Levels enthalten die Sicherheitseinstellungen für .NET-Anwendungen. Dort ist konfiguriert, welche Operationen von welchen Assemblies ausgeführt werden dürfen. Assemblies werden dabei durch ihre Evidenz beschrieben. Insgesamt unterscheidet das .NET-Framework vier verschiedene Policy Levels: 1. Enterprise Policy Level (zur unternehmensweiten Sicherheitskonfiguration), 2. Machine Policy Level (zur lokalen Sicherheitskonfiguration), 3. User Policy Level (Sicherheitskonfiguration eines Anwenders), 4. Application Domain Policy Level (Konfiguration einer Application Domain). |
| Private Assembly |
- |
Als private Assembly kennzeichnet man Assemblies, die nicht in den GAC installiert werden. Diese Assemblies stehen nur einzelnen Anwendungen zur Verfügung. Private Assemblies müssen nicht installiert werden. Ihre Nutzung setzt lediglich ein Kopieren in das Anwendungsverzeichnis voraus (oder in ein Unterverzeichnis). |
| Private Key |
privater Schlüssel |
Der private Key eines Assemblies dient zur Signierung eines Shared Assemblies. Während das Gegenstück, der öffentliche Schlüssel, zusammen mit dem Assembly ausgeliefert wird, verbleibt der private key immer beim Autor des Assemblies. |
| Public Assembly |
Shared Assembly, öffentliches Assembly |
Als public Assemblies werden Assemblies bezeichnet, die in den Global Assembly Cache installiert werden. Public Assemblies können damit von allen .NET-Anwendungen genutzt werden. Public Assemblies haben einen Strong Name, über den sie eindeutig identifiziert und authentifiziert werden können. |
| Public Key |
öffentlicher Schlüssel |
Der öffentliche Schlüssel eines Assemblies dient zur Signierung und zur anschließenden Authentifizierung eines Shared Assemblies. Ein Teil des öffentlichen Schlüssels wird in das Manifest des Assemblies eingetragen. Mit diesem wird die Signatur des Assemblies zur Laufzeit geprüft und damit authentifiziert. Das Gegenstück zum öffentlichen Schlüssel ist der private Schlüssel. Dieser verbleibt beim Hersteller des Assemblies und dient zur Signierung. |
| Public Key Token |
- |
Ein Public Key Token leitet sich aus dem Public Key einer Assembly ab (genauer gesagt aus dem Hashwert des öffentlichen Schlüssels). Der Public Key Token wird dazu verwendet, um eine referenzierte Assembly eindeutig zu identifizieren. Mitunter kann es vorkommen, dass zwei unterschiedliche Public Assemblies den gleichen Namen, die gleiche Versionsnummer sowie die gleiche Länderkennung besitzen. Ein drittes Assembly, das nun eine der beiden gleichnamigen und doch verschiedenen Assemblies aus dem GAC referenziert, benötigt eine Möglichkeit, das Assembly eindeutig zu referenzieren. Diese Möglichkeit bietet der Public Key Token, der zusammen mit dem Namen, der Versionsnummer und Länderkennung in das Manifest der referenzierenden Assembly eingetragen wird. So kann die CLR das Assembly eindeutig identifizieren, das referenziert und schließlich in den Speicher geladen wird. |
| Refactoring |
- |
Als Refactoring bezeichnet man das "Aufräumen" bzw. die Restrukturierung von Quellcode, um die Lesbarkeit, Wartbarkeit und Erweiterbarkeit einer Software mittel- und langfristig zu verbessern, ohne Funktionalität zu der Software hinzuzufügen. Refactoring beschränkt sich dabei also in erster Linie auf die Syntax eines Softwareartefakts, ohne die Semantik zu ändern. Visual Studio unterstützt seit der Version 2005 Refactoring-Funktionalitäten. Diese vereinfachen z.B. das Umbenennen von Methoden und Klassen u.v.m. |
| Referenztyp |
Reference Type |
Referenztypen werden im Speicher auf dem Heap verwaltet. In .NET werden komplexe Datenstrukturen wie z.B. Klassen als Referenztypen gespeichert. Diesen Typen ist gemeinsam, dass sie die Daten nicht direkt enthalten, sondern lediglich einen Verweis auf die entsprechende Stelle im Speicher.
Beim Kopieren von zwei Referenztypen macht sich diese Speicherverwaltung bemerkbar: Weist man z.B. einer Klassen-Variable A eine zweite Klassen-Variable B zu, wird auf dem Stack lediglich eine zweite Referenz angelegt, die auf die gleiche Stelle im Heap zeigt wie die Variable B. In diesem Fall werden die Daten also nicht wirklich physikalisch dupliziert, sondern existieren nur einmal im Speicher! Änderungen an den Heap-Daten beeinflussen daher beide Referenzen (A und B) auf dem Stack. |
| Reflection |
- |
Als Reflection bezeichnet man das Konzept, Metadaten eines Assemblies zur Laufzeit zu ermitteln.
Die Reflection-Klassen sind im Namespace System.Reflection gekapselt. |
| RIA |
Rich Internet Application |
Der Begriff Rich Internet Application bezeichnet im Allgemeinen eine Klasse von Anwendungen, die die Eigenschaften und Funktionalitäten (z.B. klassische User Interfaces) traditioneller Desktop-Applikationen besitzen, aber im Webbrowser ausgeführt werden und auf Internet-Technologien basieren.
Der Begriff Rich Internet Application wurde Anfang 2002 durch Marcomedia geprägt; ähnliche Konzepte schlugen aber bereits früher diese Richtung ein (z.B. ActiveX von Microsoft und Java Applets von SUN).
Im Gegensatz zu klassischen Webapplikationen, die den Client-Rechner fast ausschließlich zur Anzeige der Inhalte nutzen und die komplette Rechenlast (Applikationslogik) vom Server getragen wird, verteilen RIA die Rechenlast auf Server und Client, was den Kommunikationsbedarf (und damit den notwendigen Datentransfer) zwischen Client und Server stark reduziert.
Das .NET-Framework bietet seit der Version 3.0 mit Technologien wie XAML, WPF, XBAP und WPF/E Möglichkeiten, RIA zu realisieren. Mit dem WPF/E steht darüber hinaus ein Browser Add-On zur Verfügung, mit dem RIA auch plattformübergreifend implementiert werden können. |
| Runtime Host |
- |
Siehe Laufzeithost. |
| Routed Events |
- |
Die Windows Presentation Foundation (WPF) erlaubt die hierarchische Schachtelung von Komponenten.
Ein Image-Objekt beispielsweise kann in einem Button-Objekt enthalten sein, das wiederum in einem Canvas-Objekt enthalten sein kann.
Entsprechend dieser Element-Hierarchie unterscheidet die WPF auch drei verschiedene Arten der Ereignisbehandlung:
- Direktes Event: nur das Element, bei dem das Ereignis eingetreten ist (Ereignisquelle), hat die Möglichkeit, auf das Ereignis zu reagieren.
Im oben dargestellten Beispiel würde also bei einem Mausklick auf das Image-Objekt auch nur dieses Objekt die Möglichkeit haben, das Ereignis entsprechend zu behandeln.
- Bubbling Event: das Event wird ausgehend von der Ereignisquelle bis hoch zum Wurzel-Element der Hierarchie gereicht.
Im oben dargestellten Beispiel würde ein Mausklick auf das Image-Objekt zuerst an das Image-Objekt selbst, anschließend an das Button-Objekt und
schließlich an das Canvas-Objekt geleitet.
- Tunneling Event: invers zum Bubbling-Event wird das Ereignis vom Wurzel-Element der Hierarchie ausgehend abwärts zur Ereignisquelle geleitet. Im
oben dargestellten Beispiel würde ein Mausklick auf das Image-Objekt also zuerst zum Canvas-Objekt, anschließend zum Button-Objekt und schließlich zum Image-Objekt geleitet.
Gemäß Konvention wird einem Tunneling-Event das Präfix Preview vorangestellt. Beispielweise stellt KeyDown die Bubbling-Version und PreviewKeyDown die
Tunneling-Version des gleichen Events dar.
|
| Satellite Assembly |
- |
Assemblies, die keinen Programmcode sondern lediglich Ressourcen beinhalten, werden als Satellite Assemblies bezeichnet. Typischer Anwendungsfall für ein Satellite Assembly ist die Bereitstellung von in einer .NET-Applikation genutzten Schriftzügen in unterschiedlichen Sprachen.
Zum Laden von Satellite Assemblies nutzt die CLR die Klasse System.Resources.ResourceManager. |
| Shared Assembly |
- |
Siehe Public Assembly. |
| Signatur |
- |
Als Signatur eines Assemblies bezeichnet man das Ergebnis einer digitalen Markierung eines Assemblies durch ein Schlüsselpaar. Das .NET-Framework nutzt zur Signierung von Assemblies ein Zwei-Schlüssel-Verfahren (Öffentlicher und Privater Schlüssel). Signierte Assemblies können als Shared Assemblies in den Global Assembly Cache installiert werden. Die Signatur dient zur Authentifizierung eines Assemblies. Die Signatur wird zusammen mit dem öffentlichen Schlüssels in das Manifest eines Assemblies eingetragen. |
| Silverlight |
- |
Seit Mitte 2007 der offizielle Name der WPF/E. |
| Single File Assembly |
SFA, Single File Module |
Ein Single File Assembly bezeichnet - im Gegensatz zu einem Multi File Assembly - ein Assembly, das aus nur einer Datei (=Modul) besteht (Standard-Assembly). Diese Datei enthält die Metadaten, das Manifest, den CIL-Code sowie ggf. weitere Ressourcen.
Standardmäßig kompilieren die .NET-Sprachcompiler Single File Assemblies. |
| SOA |
Service Oriented Architecture |
Die serviceorientierte Architektur ist ein Management- und Systemarchitektur-Konzept, das in letzter Zeit stark diskutiert wird. Ein zentraler Aspekt ist die Verknüpfung von lose gekoppelten, flexiblen Diensten zur Unterstützung komplexer Prozesse. Diese Dienste bieten ihre Funktionalitäten über eine standardisierte Software-Schnittstelle an und können wiederum von anderen Diensten konsumiert werden.
Verschiedene dienstorientierte Technologien bieten sich zur Implementierung einer SOA an: CORBA, DCOM, EJB und Webservices. Die derzeit populärste Technologie zur Implementierung sind Webservices.
SOAs bieten eine Reihe von Einsatzpotentialen. Dazu gehören u.a.:
- Prozessorientierte Anwendungsintegration innerhalb eines Unternehmens (EAI)
- Integration von heterogenen und/oder verteilten Systemen
- Integration von weltweit verteilten Diensten in eigenen (auch lokalen) Anwendungen. Zu den populärsten gehören die Webservices von Google, Microsoft, Amazon und eBay.
|
| SOAP |
Simple Object Access Protocol |
SOAP ist ein Protokoll, das vor allem zum Nachrichtenaustausch zwischen Webservices benutzt wird. SOAP wurde von Microsoft entwickelt und war ursprünglich als einfaches XML-basiertes Protokoll für Remote Procedure Calls (RPC) zwischen verteilten Systemen gedacht. Seit Version 1.1 wird der Standard von einer Arbeitsgruppe vom W3C weiterentwickelt. |
| SPS |
Sharepoint Server |
Siehe MOSS. |
| SQL |
Structured Query Language |
SQL ist die Standard-Sprache für relationale Datenbanksysteme. Neben Anfragen an relationale Datenbanksysteme können damit auch das Schema definiert werden und Daten in die Datenbank eingefügt werden. |
| Stack |
- |
Der Stack ist ein Speicherbereich, der von der Common Language Runtime (CLR) zur Verwaltung von Wertetypen allokiert und verwaltet wird.
Im Gegensatz zum Heap wird der Stack nach dem LiFo-Prinzip (Last In First Out) verwaltet, d.h. Daten werden in der entgegen gesetzten Reihenfolge abgerufen, wie sie dem
Stack zuvor hinzugefügt worden sind. Das letzte Element wird also als erstes entnommen, während das erste Element als letztes entnommen wird.
Der Stack wird insbesondere für die Speicherung lokaler Variabeln und Methodenparametern von der CLR verwendet.
|
| Strong Name |
starker Name |
Der Strong Name eines Assemblies dient zur eindeutigen Identifikation eines Shared Assemblies. Zum Strong Name gehören die folgenden Informationen und Komponenten: Versionsnummer, optionale Länderkennung, Assembly-Dateiname sowie Signatur und öffentlicher Schlüssel. |
| Strong Name Utility |
- |
Ein mit dem SDK ausgeliefertes Kommandozeilen-Werkzeug, um einen öffentlichen und privaten Schlüssel zu erstellen. |
| Struct |
Struktur |
Structs sind, ähnlich wie Klassen, ein .NET-Programmierkonstrukt zur Implementierung von Typen.
Während Klassen im .NET-Framework allerdings einen Referenztypen darstellen, die im Speicher auf dem Heap verwaltet werden, sind Structs Wertetypen, die auf dem Stack verwaltet werden. In den .NET-Programmiersprachen werden primitive Datentypen wie z.B. Zahlenwerte als Wertetypen auf dem Stack verwaltet. Dies bedeutet, dass diese die Daten direkt enthalten, während Referenztypen lediglich einen Verweis auf die Daten enthalten. Da bei der Speicherung von Wertetypen keine weiteren Speicherreferenzen benötigt werden, können Strukturinstanzen im Allgemeinen ressourcenschonender als Klasseninstanzen eingesetzt werden.
Im operativen Einsatz macht sich die Unterscheidung zwischen Referenz- und Wertetypen u.a. bei einer Zuweisung (etwa beim Kopieren von Objekten) bemerkbar:
weist man einer Stuct-Variable A eine zweite Struct-Variable B zu, werden alle der Variablen B inhärenten Daten dupliziert und als Variable A auf dem Stack abgelegt (diese Daten existieren dann doppelt im Speicher). Weist man hingegen einer Klassen-Variable A eine zweite Klassen-Variable B zu, wird auf dem Stack lediglich eine zweite Referenz angelegt, die auf die gleiche Stelle im Heap zeigt wie die Variable B (in diesem Fall werden die Daten also nicht dupliziert, sondern existieren nur einmal im Speicher!). In diesem Fall würden Änderungen an den Heap-Daten beide Referenzen (A und B) auf dem Stack beeinflussen.
Die Unterscheidung von Referenz- und Wertetypen bedingt den weitereren Unterschied, dass einige der klassischen objektorientierten Konzepte wie z.B. Vererbung von Structs nicht unterstützt werden.
MSDN hat in einem Artikel "Struct Usage Guidelines"
die folgenden Punkte aufgeführt, wann Typen als Strukturen implementiert
werden sollten (sinngemäß übersetzt):
- sie agieren wie primitive Datentypen
- ihre Instanzgröße liegt unter 16 bytes
- sie sind unveränderlich
- eine Wertetypsemantik ist erwünscht
Vor der Entscheidung, einen Typen als Struct zu implementieren,
sollte daneben auch bedacht werden, dass Structs natürlich nur als Werte
einer Methode als Parameter übergeben werden können und nicht als
Referenzen. Insbesondere bei häufigen Parameterübergaben sollte demnach
aus Performance-Gründen eine Klassen-Implementierung favorisiert werden. |
| Thread |
- |
Als Threads versteht man in der Informatik unabhängige Aktivitäten innerhalb eines Betriebssystem-Prozesses, die sich die diesem Prozess zugewiesene Bearbeitungszeitscheibe teilen. Wikipedia definiert einen Thread als einen "Ausführungsstrang beziehungsweise eine Ausführungsreihenfolge der Abarbeitung der Software". Das Interessante am Thread-Konzept ist nun, dass sich unabhängige Programmteile parallel - also (quasi) gleichzeitig - als einzelne Threads vom Betriebssystem ausführen lassen.
So ist es z.B. Applikationen möglich, auf Benutzereingaben zu reagieren und gleichzeitig komplexere Berechnungen durchzuführen. Prinzipiell unterscheidet man zwischen asynchronen und synchronen Threads.
Die Klassen zur Erzeugung und Verwaltung von Threads im .NET-Framework sind vorwiegend im Namespace System.Threading zusammengefasst. Die Verwaltung der Threads im Rahmen des .NET-Frameworks ist Aufgabe der Common Language Runtime (CLR). |
| Tunneling Event |
- |
Siehe Routed Events. |
| UDDI |
Universal Description Discovery and Integration |
UDDI ist ein XML-basierter Standard für die Beschreibung, die Veröffentlichung und das Aufrufen von Webservices. Seit dem Jahr 2000 wurde UDDI u.a. von IBM und Microsoft entwickelt. Im Wesentlichen beinhaltet dieser Beschreibungsstandard Informationen über ein Unternehmen (businessEntity-Abschnitt), die angebotenen Dienste (businessServices-Abschnitt) sowie genaue Informationen zum Aufruf eines der beschriebenen Dienste (bindingTemplate-Abschnitt). |
| Unboxing |
- |
Unboxing bezeichnet die explizite Umwandlung eines Referenztyps in einen Wertetypen. |
| Unmanaged Code |
Unmanaged Application |
Als unmanaged Code (häufig auch "nicht verwalteter Code") werden im Rahmen des .NET-Frameworks Applikationen verstanden, die nicht von der CLR übersetzt und ausgeführt werden können (z.B. native C++ Applikationen). |
| User Policy Level |
- |
Siehe Policy Level. |
| Value Type |
- |
Siehe Wertetyp. |
| Verweistyp |
- |
Siehe Referenztyp. |
| VES |
Virtual Execution System |
Das Virtual Execution System (VES) ist Bestandteil des ISO/IEC/ECMA-Standards "Common Language Infrastructure" (CLI). Das VES bezeichnet im Rahmen dieses Standards die Laufzeitumgebung und findet im .NET-Framework in der Common Language Runtime (CLR) seine Entsprechung. |
| VM |
Virtual Machine |
Die VM des .NET-Frameworks ist die CLR. Eine Virtual Machine dient zur Ausführung von Zwischensprachen (z.B. CIL, Java Bytecode etc.) |
| Visual Studio |
VS |
Visuelle Entwicklungsumgebung (IDE) für das .NET-.Framework. Derzeit in der aktuellen Version Visual Studio 2005 verfügbar. |
| VSTO |
Visual Studio Tools for Office |
Eine VS-Erweiterung für Word und Excel, um VB.NET oder C# Programmcode in einem Office-Dokument zu hinterlegen. |
| WBA |
Web Browser Application |
Siehe XBAP. |
| Webpart |
- |
Webparts sind grafische Elemente für Webseiten, die es dem Benutzer ermöglichen, das Aussehen, Verhalten oder Inhalt einer Webseite selbst innerhalb des Browsers zu ändern. Damit ist es möglich, personalisierte Webseiten zu erstellen, da die Änderungen der Benutzer für jeweils einen Benutzer permanent abgespeichert werden können. In einem HowTo-Dokument haben wir die Entwicklung von Web Parts beschrieben. |
| Web Service |
- |
Ein Webservice ist ein Dienst, der über eine URI (Uniform Resource Identifier) identifiziert wird, und bestimmte Operationen über internet- und XML-basierte Schnittstellen bereitstellt. Ein Webservice wird durch eine WSDL-Datei definiert. Webservices sind plattform- und programmiersprachenunabhängig und stellen somit eine Möglichkeit zur Interoperabilität zwischen verschiedenen Plattformen (z.B. .NET und J2EE) dar. |
| Wertetyp |
Value Type |
In .NET werden primtive Datentypen wie z.B. Zahlenwerte als Werttypen gespeichert. Wertetypen werden im Speicher auf dem Stack verwaltet. Diesen Typen ist gemeinsam, dass sie die Daten direkt enthalten, während Referenztypen lediglich einen Verweis auf die Daten enthalten.
Im operativen Einsatz macht sich die Unterscheidung zwischen Referenz- und Wertetypen u.a. bei einer Zuweisung (etwa beim Kopieren von Objekten) bemerkbar: weist man einer Wertetyp-Variable A eine zweite Wertetyp-Variable B zu, werden alle der Variablen B inhärenten Daten dupliziert und als Variable A auf dem Stack abgelegt (diese Daten existieren dann auch physikalisch doppelt im Speicher).
Da bei der Speicherung von Wertetypen keine weiteren Speicherreferenzen benötigt werden, können Wertetyp-Instanzen im Allgemeinen ressourcenschonender als Referenztypen eingesetzt werden. |
| WCS |
Windows CardSpace |
Windows CardSpace, früher bekannt unter dem Codenamen InfoCard, ist eine Schnittstelle des .NET Frameworks 3.0 für das Anwender-Identitätsmanagement in verteilten, webbasierten Applikationen. Windows CardSpace ist bereits in den Internet Explorer Version 7 integriert und soll als Dienst zukünftig auch über PlugIns für andere Webbrowser (z.B. FireFox) zur Verfügung stehen.
Zusammen mit der Windows Communication Foundation (WCF), der Windows Presentation Foundation (WPF) und der Windows Workflow Foundation (WF) gehört Windows CardSpace zu den wesentlichen Neuerungen des .NET Frameworks Version 3.0. |
| WCF |
Windows Communication Foundation |
Die Windows Communication Foundation ist eine Bibliothek des .NET Frameworks 3.0, die u.a. Dienste und Netzwerk-Funktionen bereitstellt, um Applikationen und Services mit Hilfe von Webservices zu integrieren. Der frühere Codename der WCF ist Indigo.
Zusammen mit der Windows Workflow Foundation (WF), der Windows Presentation Foundation (WPF) und der Windows CardSpace gehört die WCF zu den wesentlichen Neuerungen des .NET Frameworks Version 3.0. |
| Windows-Forms |
- |
Windows-Forms ist ein mit der Version 1.0 des .NET-Frameworks eingeführtes Programmiermodell zur Entwicklung grafischer Benutzeroberflächen.
Die Windows-Forms-Steuerelemente sind hauptsächlich im Namspace System.Windows.Forms gekapselt und stellen im Wesentlichen .NET-Wrapper für die Win32-API dar.
Für die Darstellung der Windows-Forms-Steuerelemente (wie z.B. Schaltknöpfe, Eingabefelder und Comboboxen) werden die Zeichenroutinen des GDI+ (Graphical Device Interface) genutzt.
Die Windows-Forms Steuerelemente sind Teil der Framework Class Library (FCL), so jedoch nicht im ECMA Standard Common Language Infrastructure (CLI) definiert, also nicht Teil der Base Class Library (BCL).
|
| WPF |
Windows Presentation Foundation |
WPF (auch bekannt als Avalon) ist das Präsentations-API des .NET Framework 3.0. Diese Programmierschnittstelle dient unter anderem zur Ausgabe von 2D-/3D-Grafiken, Video, Audio und Bildern, aber auch traditionellen GUI-Elementen.
Gemeinsam mit dem WPF wurde die Markup-Sprache XAML eingeführt, mit der WPF-Objekte in XML-Notation beschrieben werden können. Dadurch wird eine Trennung von Applikationslogik und Design erreicht.
Zusammen mit der Windows Workflow Foundation (WF), der Windows Communication Foundation (WCF) und der Windows CardSpace gehört die WPF zu den wesentlichen Neuerungen des .NET Frameworks Version 3.0. |
| WPF/E |
Windows Presentation Foundation Everywhere |
WPF/E kann als plattformunabhängiges Browser-PlugIn verstanden werden, dass eine Teilmenge der seit dem .NET-Framework 3.0 als Präsentationstechnologie eingesetzten Windows Presentation Foundation (WPF) kapselt. XAML bildet dabei, genau wie für das WPF, zusammen mit Javascript die Grundlage für Webapplikationen auf Basis der WPF/E.
Seit etwa Mitte des Jahres 2007 ist der offizielle Name der Windows Presentation Foundation Everywhere Silverlight. Der Einsatz von WPF/E ermöglicht beispielsweise Webapplikationen den Zugriff auf umfangreich Bild- und 2D-Operationen sowie neue Möglichkeiten zur Darstellung von grafischen Benutzerschnittstellen im Webbrowser. |
| WF |
Windows Workflow Foundation |
Die Windows Workflow Foundation ist eine Bibliothek des .NET Frameworks 3.0, die die Entwicklung von Workflow-Anwendungen (z.B. die Automatisierung von Interaktionen und Ereignissen von Geschäftsprozessinformationen) adressiert. Für das Visual Studio ist zudem ein grafischer Designer erhältlich, mit dem man entsprechende Workflow-Modelle mit unterschiedlichen Diagrammen entwerfen kann.
Zusammen mit der Windows Communication Foundation (WCF), der Windows Presentation Foundation (WPF) und der Windows CardSpace gehört die WF zu den wesentlichen Neuerungen des .NET Frameworks Version 3.0. |
| WinFX |
- |
Siehe .NET Framework 3.0. |
| WSDL |
Web Service Description Language |
Mit WSDL wird ein Webservice beschrieben, d.h. die Schnittstellen, Protokoll und die Adresse zum Zugriff auf den Webservice. Wichtig sind vor allem die Definitionen der Methoden, die der Webservice bereitstellt, mit ihren Ein- und Ausgabeparametern. Die Methoden und ihre Datentypen werden in XML Schema definiert. |
| WS-BPEL |
- |
Siehe BPEL. |
| XAML |
eXtensible Application Markup Language |
XAML ist eine deklarative Sprache, um graphische Objekte und Objekteigenschaften in XML-Notation zu definieren. In erster Linie wird hierbei die Definition graphischer Benutzerschnittstellen auf Basis der Windows Presentation Foundation (WPF) fokussiert. XAML bietet formal Möglichkeiten zur strikten Trennung von Applikations-Logik und Design. |
| XBAP |
XAML Browser Application |
XBAP, auch bekannt als Avalon Express und Web Browser Application, ist eine mit dem .NET-Framework Version 3.0 eingeführte Technologie zur Darstellung der WPF-API im Browser. XBAP basiert auf der eXtensible Application Markup Language (XAML) und kann die gesamte Funktionalität des .NET-Frameworks im Browser abbilden. XBAP ist eine Technologie-Alternative zur Realisierung von Rich Internet Application (RIA).
Im Unterschied zur WPF/E setzt XBAP die Installation des .NET-Frameworks 3.0 voraus. |
| XDR |
XML Data Reduced |
Variante (bzw. Vorläufer) von XML Schema, der von Microsoft z.B. in SQL Server 2000 benutzt wurde, um die Verbindung zwischen den Daten der relationalen Datenbank und einem XML-Dokument herzustellen. Da SQL Server 2005 mittlerweile XML Schema unterstützt, sollten XDR-Schemas nicht mehr benutzt werden. |
| XLINQ |
- |
Siehe Language Integrated Query. |
| XML |
eXtensible Markup Language |
XML ist ein vom W3C definierter Standard zur Beschreibung von semi-strukturierten Daten. Man spricht bei XML von semi-strukturierten Daten, da der Aufbau eines XML-Dokuments teilweise einer vorgegebenen Struktur (einem Schema) folgen kann, andererseits aber auch Elemente beinhalten kann, die nicht einem Schema entsprechen. Da die Bedeutung der einzelnen Datenelemente durch die Bezeichner der Tags angegeben werden kann, bezeichnet man XML auch als selbstbeschreibend. Aufgrund der Einfachheit und Flexibilität ist XML mittlerweile das Standardformat bei vielen Anwendungen. |
| XML Schema |
- |
XML Schema ist eine Sprache zur Definition des Schemas von XML- Dokumenten. Ein XML Schema wird wieder in einem XML-Dokument definiert. Im Gegensatz zu einer DTD kann man in einem XML Schema die Struktur eines XML-Dokuments sehr genau beschreiben, z.B. kann man für die Felder genaue Typen angeben (z.B. Date, PositiveInteger) oder die Häufigkeit eines Elements kann genauer bestimmt werden (z.B. Element taucht mindestens zweimal aber höchstens viermal auf). |
| XNA |
XNA Game Studio Express, GSE |
XNA Game Studio Express ist ein Framework um Spiele zu entwickeln, die sowohl unter Windows wie auch mit leichten Modifikationen auf der XBox360 lauffähig sind. Dazu muss man das XNA Framework herunterladen und installieren. Zusätzlich muss eine Direct3D 9-fähige Grafikkarte im Rechner vorhanden sein (DirectX 9.0c und Shader Model 1.1). Zusätzlich kann man die komplette Funktionalität des GSE nur mit der Visual C# Express-Version nutzen. Anwendungen können zwar mit Visual Studio 2005 kompiliert werden, man verliert allerdings einige Werkzeuge, die es nur in der Express-Version gibt. Um per XNA und GSE erstellte Spiele auf der XBox360 abzuspielen, muss man Mitglied im XNA Creators Club sein. Die erstellten Spiele müssen komplett im Source-Code und allen Ressourcen verteilt werden, das heißt die Weitergabe in Form einer kompilierten Anwendung ist nicht möglich. |
| XPS |
XML Paper Specification |
XML Paper Specification ist ein XML-basiertes Format zur Layout- und Inhaltsbeschreibung von Dokumenten und fokussiert ähnliche Anwendungsszenarien wie das Portable Document Format (PDF) von Adobe; allerdings fehlt der XPS die PDF durch JavaScript gegebene Programmierbarkeit.
XPS nutzt die eXtensible Application Markup Language (XAML), um eine Teilmenge der Windows Presentation Foundation (WPF) Bibliothek ab zu bilden.
Programme zur Darstellung des XPS-Formats sind auch für einige Unix/Linux-Derivate sowie für die Betriebssysteme Windows 2000 und Mac OS X geplant. |
| XPath |
- |
XPath ist eine Anfragesprache für XML-Dokumente. Durch einen XPath-Ausdruck kann man einen bestimmten (oder eine Menge von) Knoten in einem XML-Dokument auswählen. Da XML-Dokumente eine Baumstruktur haben, beschreibt ein XPath-Ausdruck einen Pfad von der Wurzel des Dokuments zum gewünschten Knoten. |
| XQuery |
- |
XQuery ist eine komplexere Anfragesprache für XML-Dokumente. Während man mit XPath nur die Daten in der Form aus dem Dokument extrahieren kann, wie sie im Dokument vorliegen, kann man mit XQuery auch weitergehende Operationen und Umformungen mit den Daten durchführen. |
| XSD |
XML Schema Definition |
Siehe XML Schema. |
| XSLT |
XML Stylesheet Transformation Language |
Mit XSLT kann man ein XML-Dokument in ein anderes Textdokument transformieren, z.B. in ein HTML-Dokument, ein anders strukturiertes XML-Dokument oder eine einfache Textdatei. XSLT wurde eingeführt, um eine Trennung von den Daten und ihrer Darstellung zu erreichen. Während in HTML-Dokumenten der Code zur Beschreibung der Daten und der Code zur grafischen Präsentation der Daten gemischt ist, sollen XML-Dokumente nur die Daten enthalten. Ein XSLT-Skript kann die XML-Daten in das gewünschte Ausgabeformat transformieren. |