Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort zur 6. Auflage
1 Allgemeine Einführung in .NET
2 Grundlagen der Sprache C#
3 Das Klassendesign
4 Vererbung, Polymorphie und Interfaces
5 Delegates und Ereignisse
6 Strukturen und Enumerationen
7 Fehlerbehandlung und Debugging
8 Auflistungsklassen (Collections)
9 Generics – Generische Datentypen
10 Weitere C#-Sprachfeatures
11 LINQ
12 Arbeiten mit Dateien und Streams
13 Binäre Serialisierung
14 XML
15 Multithreading und die Task Parallel Library (TPL)
16 Einige wichtige .NET-Klassen
17 Projektmanagement und Visual Studio 2012
18 Einführung in die WPF und XAML
19 WPF-Layout-Container
20 Fenster in der WPF
21 WPF-Steuerelemente
22 Elementbindungen
23 Konzepte von WPF
24 Datenbindung
25 Weitere Möglichkeiten der Datenbindung
26 Dependency Properties
27 Ereignisse in der WPF
28 WPF-Commands
29 Benutzerdefinierte Controls
30 2D-Grafik
31 ADO.NET – Verbindungsorientierte Objekte
32 ADO.NET – Das Command-Objekt
33 ADO.NET – Der SqlDataAdapter
34 ADO.NET – Daten im lokalen Speicher
35 ADO.NET – Aktualisieren der Datenbank
36 Stark typisierte DataSets
37 Einführung in das ADO.NET Entity Framework
38 Datenabfragen des Entity Data Models (EDM)
39 Entitätsaktualisierung und Zustandsverwaltung
40 Konflikte behandeln
41 Plain Old CLR Objects (POCOs)
Stichwort

Download:
- Beispiele, ca. 62,4 MB

Buch bestellen
Ihre Meinung?

Spacer
Visual C# 2012 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual C# 2012

Visual C# 2012
Rheinwerk Computing
1402 S., 6., aktualisierte und erweiterte Auflage 2013, geb., mit DVD
49,90 Euro, ISBN 978-3-8362-1997-6
Pfeil 1 Allgemeine Einführung in .NET
Pfeil 1.1 Warum .NET?
Pfeil 1.1.1 Ein paar Worte zu diesem Buch
Pfeil 1.1.2 Die Beispielprogramme
Pfeil 1.2 .NET unter die Lupe genommen
Pfeil 1.2.1 Das Entwicklerdilemma
Pfeil 1.2.2 .NET – Ein paar allgemeine Eigenschaften
Pfeil 1.2.3 Das Sprachenkonzept
Pfeil 1.2.4 Die »Common Language Specification« (CLS)
Pfeil 1.2.5 Das »Common Type System« (CTS)
Pfeil 1.2.6 Das .NET Framework
Pfeil 1.2.7 Die »Common Language Runtime« (CLR)
Pfeil 1.2.8 Die .NET-Klassenbibliothek
Pfeil 1.2.9 Das Konzept der Namespaces
Pfeil 1.3 Assemblys
Pfeil 1.3.1 Die Metadaten
Pfeil 1.3.2 Das Manifest
Pfeil 1.4 Die Entwicklungsumgebung
Pfeil 1.4.1 Editionen von Visual Studio 2012
Pfeil 1.4.2 Hard- und Softwareanforderungen
Pfeil 1.4.3 Die Installation
Pfeil 1.4.4 Die Entwicklungsumgebung von Visual Studio 2012

Galileo Computing - Zum Seitenanfang

1.3 AssemblysZur nächsten Überschrift

Das Ergebnis der Kompilierung von .NET-Quellcode ist eine Assembly. Bei der Kompilierung wird, abhängig davon, welchen Projekttyp Sie gewählt haben, entweder eine EXE- oder eine DLL-Datei erzeugt. Wenn Sie nun in diesen Dateien ein Äquivalent zu den EXE- oder DLL-Dateien sehen, die Sie mit Visual Basic 6.0 oder C/C++ erzeugt haben, liegen Sie falsch – beide sind nicht miteinander vergleichbar.

Assemblys liegen im IL-Code vor. Zur Erinnerung: IL bzw. MSIL ist ein Format, das erst zur Laufzeit einer Anwendung vom JITter in nativen Code kompiliert wird. Eine Assembly kann nicht nur eine, sondern auch mehrere Dateien enthalten – sie ist daher eher als die Baugruppe einer Anwendung zu verstehen.

Assemblys liegen, wie auch die herkömmlichen ausführbaren Dateien, im PE-Format (Portable Executable) vor, einem Standardformat für Programmdateien unter Windows. Das Öffnen einer PE-Datei hat zur Folge, dass die Datei der Laufzeitumgebung übergeben und als Folge dessen ausgeführt wird. Daher wird Ihnen beim Starten auch kein Unterschied zwischen einer Assembly und einer herkömmlichen Datei auffallen.


Galileo Computing - Zum Seitenanfang

1.3.1 Die MetadatenZur nächsten ÜberschriftZur vorigen Überschrift

Assemblys weisen eine grundsätzlich neue, andersartige Struktur auf. Sie enthalten nämlich nicht nur IL-Code, sondern auch sogenannte Metadaten. Die Struktur einer kompilierten .NET-Komponente gliedert sich demnach in

  • IL-Code und
  • Metadaten.

Metadaten sind Daten, die eine Komponente beschreiben. Das hört sich im ersten Moment kompliziert an, ist aber ein ganz triviales Prinzip. Nehmen wir an, Sie hätten die Klasse Auto mit den Methoden Fahren, Bremsen und Hupen entwickelt. Wird diese Klasse kompiliert und der IL-Code erzeugt, lässt sich nicht mehr sagen, was der Binärcode enthält und vor allem wie er genutzt werden kann. Wenn eine andere Komponente auf die Idee kommt, den kompilierten Code eines Auto-Objekts zu nutzen, steht sie vor verschlossenen Türen.

Den Zusammenhang zwischen Metadaten und IL-Code können Sie sich wie das Verhältnis zwischen Inhaltverzeichnis und Buchtext vorstellen: Man sucht unter einem Stichwort im Inhaltverzeichnis nach einem bestimmten Begriff, findet eine Seitenzahl und kann zielgerichtet im Buch das gewünschte Thema nachlesen. Viel mehr machen die Metadaten eines .NET-Kompilats auch nicht, wenn auch die Funktionsweise naturgemäß etwas abstrakter ist: Sie liefern Objektinformationen, beispielsweise die Eigenschaften eines Objekts und die Methoden. Das geht sogar so weit, dass wir über die Metadaten in Erfahrung bringen, wie die Methoden aufgerufen werden müssen.

Das grundsätzliche Prinzip der Aufteilung in Code und Metadaten ist nicht neu und wurde auch schon unter COM angewandt – allerdings mit einem kleinen, aber doch sehr wesentlichen Unterschied: COM trennt Code und Metadaten. Die Metadaten einer COM-Komponente, die man auch als Typbibliothek bezeichnet, werden in die Registry eingetragen und dort ausgewertet. Das ist nicht gut, denn schließlich sollten Sie Ihren Personalausweis immer bei sich tragen und ihn nicht irgendwo hinterlegen. Ebenso sollte auch der Code nicht von seinen Metadaten getrennt werden. COM ist dazu nicht in der Lage; erst innerhalb des .NET Frameworks wird dieser fundamentalen Forderung nach einer untrennbaren Selbstbeschreibung Rechnung getragen.

Die Metadaten versorgen die .NET-Laufzeitumgebung mit ausreichenden Informationen zum Erstellen von Objekten sowie zum Aufruf von Methoden und Eigenschaften. Sie bilden eine klar definierte Schnittstelle und vereinheitlichen den Objektzugriff, was allen .NET-Entwicklern zugutekommt: Unabhängig von der Sprache – vorausgesetzt, sie ist .NET-konform – können problemlos Objekte verwendet werden, die von anderen Entwicklern bereitgestellt werden. Dass die Objekte in einer beliebigen .NET-Sprache entwickelt sein können, braucht fast nicht erwähnt zu werden.


Galileo Computing - Zum Seitenanfang

1.3.2 Das ManifestZur vorigen Überschrift

Die Folgen der Trennung von Code und Selbstbeschreibung einer COM-Komponente sind uns wahrscheinlich allen bewusst: Durch die Installation einer neuen Anwendung werden alte COM-Komponenten überschrieben, die für andere Anwendungen von existenzieller Bedeutung sind. Die Auswirkungen können fatal sein: Eine Anwendung, die auf die Methoden der überschriebenen Komponente zugreifen will, kann sich im schlimmsten Fall mit einem Laufzeitfehler sang- und klanglos verabschieden.

Mit Assemblierungen gehören diese Fehler definitiv der Vergangenheit an. Verantwortlich dafür sind Metadaten, die nicht die einzelnen Objekte, sondern die Assemblierung als Ganzes beschreiben. Diese Daten werden als Manifest bezeichnet. Ein Manifest enthält die folgenden Informationen:

  • Name und Versionsnummer der Assembly
  • Angaben über andere Assemblierungen, von denen die aktuelle Assembly abhängt
  • die von der Assembly veröffentlichten Typen
  • Sicherheitsrichtlinien, nach denen der Zugriff auf die Assembly festgelegt wird

Das Manifest befreit eine Assembly von der Notwendigkeit, sich in die Registrierung eintragen zu müssen, und die logischen Konsequenzen gehen sogar noch weiter: Während sich COM-Komponenten erst durch eine Setup-Routine oder zusätzliche Tools in die Registrierungsdatenbank eintragen, können Sie mit den primitivsten Copy-Befehlen eine Assemblierung in ein beliebiges Verzeichnis kopieren – Altbewährtes ist manchmal doch nicht so schlecht.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.

>> Zum Feedback-Formular
<< zurück
  Zum Katalog
Zum Katalog: Visual C# 2012

Visual C# 2012
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Professionell entwickeln mit Visual C# 2012






 Professionell
 entwickeln mit
 Visual C# 2012


Zum Katalog: Windows Presentation Foundation






 Windows Presentation
 Foundation


Zum Katalog: Schrödinger programmiert C++






 Schrödinger
 programmiert C++


Zum Katalog: C++ Handbuch






 C++ Handbuch


Zum Katalog: C/C++






 C/C++


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Rheinwerk Verlag GmbH 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de