Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

Ähnliche Dokumente
Client/Server-Programmierung

Einführung in COM Seite 1

Andreas Kosch. Software & Support $ > Verlag GmbH

Vergleich.Net und COM

Software Reuse Sommer Einfache, aus 3 Komponenten bestehende, Anwendung Was ist eine Komponente?

Inhalt. 1. Motivation. 2. COM Architektur. 3. COM Implementierung. 4. Zusammenhang zu ATL. 5. Beispiel COM Client/ Server. 6..

Seminar Softwarearchitekturen SoSe Martin Schrage

DCOM und.net. B. Sc. Tobias Buchloh. Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover

Einführung: Verteilte Systeme - Remote Method Invocation -

Janeva:.NET meets J2EE

Einführung in die Programmiersprache C#

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

9.5 Microsoft.NET

8.4 Microsoft.NET. .NET Framework = 1 CLR Common Language Runtime ist objektorientierte virtuelle Maschine für Ausführung von managed cod

MICROSOFT.NET: EINE NEUE ENTWICKLUNGSPLATTFORM AUCH FÜR NUMERISCHE PROBLEME?

mitp Professional Visual C# 2012 Einstieg und Praxis von Christopher Martel 1. Auflage

.NET Framework. 3. Das.NET Framework

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

Microsoft.NET Überblick. Matthias Nübling

Typsystem Plattform- und Sprachenunabhängigkeit in.net

Konzepte von Betriebssystem-Komponenten

8a. Exkurs.NET. 8a.1.NET Architektur

Microsoft.NET Framework- Programmierung

.NET und die COM Interop Threading Apartments

Client/Server-Programmierung

Gliederung. .NET Vision. Was ist Microsoft.NET? Microsoft.NET Überblick. Was ist Microsoft.NET? Überblick wichtiger.net-technologien.

Universität Karlsruhe (TH) Moderne Programmiersysteme am Beispiel von.net

Das Component Object Model (COM)

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

8.3 COM und DCOM (Microsoft)

~±] Inhalt. 1.1 Ähnlichkeiten zwischen C# und Java Unterschiede zwischen C# und Java Das.NET-Framework 4 1.

4.4 COM+ mit Transaction Services als Beispiel eines OTM

4.4 COM+ mit Transaction Services als Beispiel eines OTM

Vorlesung AFCW, Microsoft.NET Wintersemester 2002/03. Völlig neue Systemstruktur als Antwort auf Java

9.3 COM und DCOM (Microsoft )

Technische Universität München. Thomas Kofler. Oktober 2013

Kapitel 21 Nativer Code

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP

C#Objektorientierte. Aleksandra Maj. Programmiersprachen. Programmiersprachen am Beispiel C# Referat im Rahmen des Seminars. 15.

Gliederung Einleitung Die Interprozess Kommunikation Zusammenfassung Fragen. .NET Remoting. André Frimberger

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Liste Programmieren Java Überblick

Inhaltsverzeichnis. Teil I Grundlagen der Programmarchitektur Vorwort... XIII XV XVI XVI

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1

ActiveX im Web-Browser

.NET als alternative Middleware-Technologie. .NET als alternative

Softwareentwicklung mit Komponenten

Virtual Machines unter der Haube

Studienarbeit von Jan Linxweiler WS 2003/2004

Microsoft.NET und SunONE

Inhalt I. Blick in die Geschichte. .NET für kleine und grosse Applikationen

Seminar Ausgewählte Komponenten von Betriebssystemen. IDL4 Compiler

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren...

FAQ Profi32.Client.exe

Microsoft.NET Framework

Office in Java. 2. Info-Point Urs Frei

Parallele und verteilte Anwendungen in Java

Java als erste. Programmiersprache. Java 2 Plattform. Von Prof. Dr. Joachim Goll Cornelia Weiß Peter Rothländer. 2., durchgesehene Auflage

GNU/Hurd. ... ein Mach basiertes Multi Server Betriebssystem. Manuel Gorius. . p.1/33

Definitionen/Vorarbeit zum Thema Java

Grundlagen der OO- Programmierung in C#

Konzepte hinter Microsoft's.NET. Ein Hauptseminarvortrag von Michael Voigt

Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt WS 2006/2007

Einführung in Microsoft.NET

Kommunikation in verteilten Anwendungen

Software Design basierend auf dem Plug-In Konzept

Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware VDMS

PLATO-Systemanforderungen

Einführung in C# Teil 1. Matthias Nübling

CAS Client Applications mit.net

1 Einleitung Generizität Syntax... 2

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Microsoft.NET Framework- Programmierung mit C#

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006

LAZARUS. von Michael Van Canneyt, Mattias Gärtner, Swen Heinig, Felipe Monteiro de Carvalho, Inoussa Ouedraogo und Jörg Braun

- dynamisches Laden -

Client/Server-Systeme

.NET und wieder eine Middleware Architektur?

17 Komponentenbasiertes Software-Engineering

Seminar: Multi-Core Architectures and Programming

CHILI GmbH Friedrich-Ebert-Str Dossenheim/Heidelberg Tel /

Software- /Systemarchitektur

INHALT. Vorwort 13. Kapitel 1 Die Architektur von Lazarus 15

4. Objektorientierte Programmierung mit C++

Remote-Objekte. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1

TwinCAT HMI Application

.Net Interoperabilität

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

CLR CIL MCS ECMA-335. Linux.Ne t Albrecht Liebscher, Erlanger Linux Tage

Mono - Hands On. Anwendungsentwicklung mit Mono und Gnome. Mario Manno

Überblick. Exkurs: Organisation des Quellcodes (1)

Softwareschnittstellen

Einführung in die Programmierung

MODULARITÄT. Levi Bautz. 1/19 Levi Bautz

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

3.1 COM (2) 3.2 DCOM

Transkript:

Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber

Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 2

Was ist das.net Framework? Plattform zur Entwicklung und Ausführung von Anwendungsprogrammen Für Windows, Windows Phone... Löst frühere Softwarekonzepte wie COM ab Besteht aus Einer (virtuellen) Laufzeitumgebung (CLR) Einer Klassenbibliothek (BCL) Verschiedenen Diensten und Schnittstellen 3

Anwendungsbereiche 4

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 5

Common Language Runtime (CLR) Laufzeitumgebung für alle.net Anwendungen Führt wichtige Funktionen aus, wie Ausnahmebehandlung Ressourcenverwaltung Just in Time Kompilierung Speicherverwaltung Garbage Collection Code Access Security 6

Das.NET Execution Model 7

8

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 9

Sprachunabhängigkeit, CTS und CLS CTS: Common Type System Definiert, wie die Typen in der Laufzeitumgebung deklariert, benutzt und verwaltet werden Dient der Typ- und Codeüberprüfung Jede.NET Sprache stellt ihre eigenen Schlüsselwöter, die dann in CTS-Typen gemappt werden 10

Sprachunabhängigkeit, CTS und CLS 11

Sprachunabhängigkeit, CTS und CLS CLS: Common Language Specification Einigung zwischen Designern von Programmiersprachen und Programmbibliotheken Teilmenge der CTS Spezifiziert Eigenschaften, die.net Anwendungen erfüllen müssen, um ohne Einschränkungen mit Objekten anderer Programmiersprachen interagieren zu können 12

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 13

Base Class Library (BCL) Auch Framework Class Library (FCL) Bibliothek aus getestetem und wiederverwendbarem Code Hierarchisch aufgeteilt in Namespaces Gliedern Klassen in Blöcke mit ähnlicher Funktionalität Importierbar mit dem include-konstrukt 14

15

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 16

Assemblies Logische Codeeinheit, ausgeführt von der CLR Übersetzte Programmklassen (wie JAR in Java) Enthält Informationen zur Ausführung Wird bei Kompilierung des Quelltextes in Form von.dll oder.exe Dateien gebildet Sichtbarkeit: Private: Teil einer einzigen Anwendung Public/Shared: viele Anwendungen, Global Assembly Cache 17

Aufbau einer Assembly 18

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 19

.NET Versionen 20

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 21

Was ist COM? Ansatz für obj.orientierte Softwarekomponenten Vorgänger des.net Frameworks 1993: Object Linking and Embedding DCOM, COM+ Keine Programmiersprache (!) Standard für die Interoperabilität von COM- Objekten Organisation von COM-Objekten im Speicher 22

Motivation Interaktion verschiedener binärer Komponenten Update einer Komponente soll kein Update aller anderen Systemkomponenten erfordern Realisierung der Kommunikation von Komponenten verschiedener Sprachen? 23

Grundlagen Binärer Standard für Funktionen Funktionen werden in Interfaces gegliedert Einzigartige Identifikation von Objekten Komponenten sind instanziierte Klassen auf COM-Servern Klassen werden auch Coclasses genannt Coclasses werden in Class Factory erstellt COM-Library zum Finden und Starten von Komponenten 24

Global Unique Identifiers (GUIDs) 128 bit Integer Identifizieren jede COM Komponente und jedes Interface Auch universally unique identifier (UUID) 25

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 26

Binärer Standard COM definiert Standard, um Funktionen in virtuellen Tabellen unterzubringen Diese müssen durch Zeiger aufgerufen werden Jede Programmiersprache auf dem gleichen binäreren Standard kann Funktionen aufrufen 27

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 28

Interfaces Jede Komponente muss IUnknown unterstützen Anwendungen kommunizieren durch Aufruf einer Funktion im entsprechenden Interface Aufruf erfolgt mit Hilfe eines Zeigers Kann nicht instanziiert werden 29

Beispiel Interface 30

Das Interface IUnknown Alle Interfaces sind von IUnknown abgeleitet Kontrolliert Lebensspanne einer Komponente Referenzen auf andere Interfaces Drei Methoden: AddRef(): andere Komponente benutzt Interface Release(): Interface wird nicht mehr benötigt QueryInterface(): zum Erhalten einer Referenz auf ein anderes Interface und Meldung, ob das angeforderte Interface unterstützt wird 31

Beispiel für QueryInterface() 32

Versionierung Motivation: Update von Software, um... Mehr Funktionalität zu implementieren Bestehende Funktionalität zu verbessern Updaten von Komponenten Implementiert durch Interfaces und IUnknown:QueryInterface Mehr Funktionalität: Einbinden eines Interfaces Updates: ohne Veränderung von Methoden, Parametern und Rückgabewerten 33

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 34

Clients und Server Client: nutzt COM-Komponente eines Servers Server: implementiert eine COM-Komponente 3 Arten von Servern: In-Process: schnell, großer Speicherverbrauch Local Server: langsam wg. Remote Procedure Call Remote Server: sehr langsam 35

I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS 4. Base Class Library 5. Assemblies 6..NET Versionen II. Component Object Model 1. Was ist COM? 2. Binärer Standard 3. Interfaces 4. Clients und Server 5. Apartments 36

Apartments Realisiert Threading Sowohl COM-Komponenten als auch jedem Thread wird ein Apartment zugeordnet Stimmen Apartmentanforderungen überein, wird das Objekt diesem Apartment zugeordnet 3 Arten: Single-Threaded-Apartment (STA) Multi-Threaded-Apartment (MTA) Neutral-Threaded-Apartment (NTA) 37

38 Quellen.NET Framework Microsoft.NET Eine Einführung (David S. Platt) ISBN 3860636901 http://msdn.microsoft.com/ Component Object Model http://www.microsoft.com/com/default.mspx http://www.cs.umd.edu/~pugh/com/ Insbesondere sind die auf den Folien gezeigten Grafiken und Codebespiele von diesen Quellen entnommen und stammen nicht von mir.