8.4 Microsoft.NET Framework =  CLR – Common Language Runtime ist objektorientierte virtuelle Maschine für Ausführung.

Slides:



Advertisements
Ähnliche Präsentationen
C Sharp (C#) Martin Saternus Senior Student Partner
Advertisements

Einführung in Microsoft .NET 2.0
Seminar „Verteilte Systeme“ Thomas Bischoff
Objektorientierte Programmierung
Programmorganisation
Einführung in die Programmierung Zusammenfassung
Deklarative Programmierung mit Attributen
SQL Server 2005.NET Integration Sebastian Weber Developer Evangelist Microsoft Deutschland GmbH.
Interoperabilität Microsoft .NET und COM+ Dariusz Parys
DI Christian Donner cd (at) donners.com
.NET Remoting und XML Web Services. Ralf Westphal
Migration und Nutzung von vorhandenem Code Interoperability.
Einführung .NET Tobias Richling Neno Loje Microsoft Student Partner
© 2003 Patrick Brunner Spontane Vernetzung – Jini 9. Januar 2004 Spontane Vernetzung Patrick Brunner.
Ausnahmen HS Merseburg (FH) WS 06/07.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
Java: Objektorientierte Programmierung
Java: Grundlagen der Sprache
Seminar Sommersemester 2002 ASP.NET Andre Margousian.
7 Verteilungsabstraktion
.NET Nico Orschel Microsoft Student Partner, TU-Ilmenau
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
Introducing the .NET Framework
Die Skriptsprache Perl (8) Wolfgang Friebel DESY Zeuthen.
Mono und andere freie.NET Implementierungen. Implementierungen Microsoft.NET Framework Win32, Win64? Microsoft.NET Compact Framework WinCE (Mobile, Phone)
Rainer BeckerdFPUG-Regionaltreffen Hannover CeBIT-Regionaltreffen 2001 Mit kurzem Vortrag von Rainer Becker (bis maximal 23:00 Uhr)
Uwe Habermann VFX 10.0 Visual Extend Produktaktivierung Venelina Jordanova
Uwe Habermann WPF Avalon Formulare aus VFP verwenden Venelina Jordanova
Uwe Habermann VFX 10.0 Visual Extend Produktaktivierung.
MSDN Webcast: VB. NET für Einsteiger und Umsteiger Einführung in VB
Björn Schmidt, Hoang Truong Nguyen
1 Softwareentwicklung mit.NET Teil 6.NET Remoting Dr. Ralph Zeller.
Distributed Programming in.NET. Inhaltsverzeichnis 1) Einführung 2).NET Remoting 3) Web-Services 4) Vergleich.NET Remoting und Web- Services 5) Fazit.
Plattformunabhängige Programmiersprache
Einführung in die Programmiersprache Java
1 Frey Jan Krcmar Boris Bühler Stefan Frey Jan Krcmar Boris Bühler Semesterpräsentation 15. April 2003.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
SQL Server 2005 CLR-Integration
1 Softwareentwicklung mit.NET Teil 1 Was ist.NET? Die.NET Common Language Runtime Dr. Ralph Zeller DI. Wolfgang Beer Michael Willers.
Consulting and Solutions.NET Vortragsreihe – Vorstellung der Referenten Happy Arts Software Markus Kämmerer IT-Erfahrung seit 1987,
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 1 Folie 2 Microsoft.NET Framework: Quelle:
Entwicklung verteilter Anwendungen II, SS 13 Prof. Dr. Herrad Schmidt SS 2013 Kapitel 5 Folie 2 Windows Communication Foundation (WCF) s.a.
Beschreiben Sie eine Web Interaktion mittels Java Applets.
Informatik Objekte und Klassen 1. Objektorientiertes Modellieren und Programmieren 1.1 Objekte und Klassen.
Bonn-to-code.net Thomas van Veen Website:
7.1.5 Java RMI – Remote Method Invocation
Oliver Spritzendorfer Thomas Fekete
Datenanbindung in Webapplikationen
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Voyager Eigenschaften/Vorzüge Universalität: –ROI-Modelle: CORBA, RMI, DCOM –verschiedene Namens-, Verzeichnisdienste Nachrichtentypen: synchron, oneway,
Vs Grundzüge der Fernaufruf-Implementierung = tatsächliche Aufrufbeziehungen Netz Fernaufrufdienst Transportdienst Hardware BS aus Bibl. Vertreter.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
7.2.4 Klassifikation mobilen Codes Nicht vergessen:  Sowohl das Fernkopieren als auch die Migration von Objekten setzt voraus, daß der Code entweder am.
Web und Mobile Apps Programmieren Marco Jakob Kurzvortrag OSS an Schulen
Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler.
Datenbanken im Web 1.
NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung von.
Microsoft.NET - Plattform Kurzer Überblick Vergleich mit Java Von Thomas Zahn Januar 2001.
MD 4/02 CORBA Static/Dynamic Invocation Interface (SII/DII), Interface Repository.
9.3 COM und DCOM (Microsoft ) COM – Component Object Model
Microsoft Student Partner
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
1 vs NET Remoting.Net („dotnet“) :von Microsoft eingeführte Plattform für verteilte Anwendungen, virtuelle Maschine für die verteilte Ausführung.
9.5 Microsoft .NET Architektur: objektorientiert/Fernaufrufe (8.1.6 )
Objektorientierte Programmierung
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
 Präsentation transkript:

8.4 Microsoft.NET Framework =  CLR – Common Language Runtime ist objektorientierte virtuelle Maschine für Ausführung von „managed code“  Reichhaltige Klassenbibliotheken für die CLR  C# als „typische“ Sprache für die CLR  Neugestaltete Web-Unterstützung: ASP.NET, Web Services,...

8.4.1 Sprachunabhängiges Laufzeitsystem: CLR CLR = Common Language Runtime = virtuelle Maschine für die Ausführung von objektorientiertem Zwischencode in MSIL – Microsoft Intermediate Language – (Microsoft‘s Antwort auf Java Bytecode/Virtual Machine)  Zwischencode zwischen verschiedenartigen Systemen übertragbar und überall ausführbar, wo CLR implementiert ist  dynamisches Laden/Übersetzen/Binden von MSIL-Klassen, sobald erstmals benötigt (Objekterzeugung)  Zwischencode wird vor der Ausführung immer in Binärcode für die lokale Zielplattform übersetzt (just-in-time compilation) (auch vorbereitend explizit mittels Befehl ngen )

C#C++Visual BasicEiffelCobol Quellcode Übersetzer..... Zwischencode (Idee aus den 60er Jahren: UNCOL) MSIL-Übersetzer..... Binärcode Binärcode Binärcode für Intel... für IBM... für besorgen Vorübersetzung besorgen Nachübersetzung

Weitere Charakteristika der CLR-Maschine:  CLS – Common Language Specification – der MSIL umfaßt CTS – Common Type System –, das zwischen den Typsystemen aller Sprachen vermittelt, einschließlich Vererbung  einheitliche Namensraumverwaltung, Ausnahmebehandlung, Speicherbereinigung  Versionsverwaltung  Sicherheit: Überwachung des Programmverhaltens  für verschiedenartige Programmiersprachen Interoperabilität im gleichen Adreßraum, ohne Verteilung, mit gemeinsam genutzten Bibliotheken

8.4.2 Programmverwaltung Programmentwicklung mit.NET SDK (Befehlszeilen) oderVisual Studio.net Übersetzung produziert.dll- oder.exe-Dateien mit verwaltetem Code (managed code): - spezieller CLR Header - MSIL-Code - Schnittstellenbeschreibungen – „unsichtbare IDL“ - weitere Metadaten Zusammengehörige Code-Dateien können zu einer Baugruppe (assembly)zusammengefaßt werden, die mit einer Bekanntmachung (manifest) beschrieben wird. Die Baugruppe ist die Einheit von Versionierung, Vertrieb und Installation.

8.4.3 C# „Cis“ („C sharp“)  entstammt wie Java der Sprachfamilie C/C++,  ist Verbesserung gegenüber Java,  erlaubt umfassende Ausnutzung der CLR-Funktionalität : - Objekteigenschaft aller Daten ( 4711.ToString() ! ) - Verweise auf objektbezogene Operationen (delegates) und Mengen von solchen, - darauf basierend Ereignisse (events) und Beobachter-Muster, - Annotationen (attributes) für Klassen, Operationen,....., in die Metadaten übernommen und über Reflexion abfragbar

8.4.4.NET und COM Aufruf.NET  COM verwendet Hülle (wrapper), die dem Aufrufer ein.NET-Objekt präsentiert:.NET-Objekt Klient COM-Objekt RCW RCW = runtime-callable wrapper new impliziert CoCreateInstance RCW-Code generierbar aus der COM-IDL-Beschreibung: IDL-Text  Typbibliothek example.tlb  Namensraum exampleLib mktyplib tlbimp (COM tool) (in.NET SDK)

AufrufCOM .NET setzt voraus, daß die Klasse argumentlosen Konstruktor hat, wird vermittelt über einen COM-callable wrapper - CCW Klient COM-Objekt.NET-Objekt CCW CoCreateInstance impliziert new mit argumentlosem Konstruktor ! RCW und CCW vermitteln zwischen ComException und HRESULT ! CCW-Code aus Metadaten generieren und registrieren mit regasm

8.4.5 Fernaufrufe werden von CLR + Bibliotheken unterstützt, ähnlich zu Java, aber interoperabel ohne IDL, Metadaten ersetzen IDL, automatische Vertretererzeugung bei Bedarf, Transport über TCP oder HTTP (SOAP, siehe 9). Bibliotheken für Fernaufrufe: System System.Runtime.Remoting System.Runtime.Remoting.Activation System.Runtime.Remoting.Channels...

Klasse für fernaufrufbare Objekte muß wie folgt erben: class RemTable : System.MarshalByRefObject, I1, I2,... {..... } Lokale Objekterzeugung: RemTable t = new RemTable(arg1,..); Fernerzeugung privater Objekte („client-activated objects): object[] attr = {new System.Runtime.Remoting.Activation. UrlAttribute("tcp://host/Example")}; RemTable t = (RemTable)System.Activator.CreateInstance( typeof(RemTable), {arg1, arg2,...} attr); oder mit Ortsabstraktion (!) bei Verwendung einer Konfigurationsdatei: RemTable t = new RemTable(arg1, arg2,...);

Beachte: RemTable t =... liefert Vertreterobjekt, dessen Klasse anonyme Unterklasse von RemTable ist („transparent proxy“) Fernbenutzung: Fernaufruf result = t.op(arg1,...); Fernzugriff – Lesezugriff auf Attribut oder Eigenschaft result = t.attr; Dabei wird für ein Argument- oder Ergebnis-Objekt, dessen Klasse von MarshalByRefObject erbt, wie im lokalen Fall ein Verweis übergeben, andernfalls eine Kopie des Objekts (Klasse muß in diesem Fall mit Serializable annotiert sein)

Gemeinsame Objekte mehrerer Klienten: durch Registrierung beim CLR System.Runtime.Remoting.RemotingConfiguration. RegisterWellKnownServiceType( typeof(RemTable), "SharedTable", // local URI System.Runtime.Remoting. WellKnownObjectMode.Singleton) registriert ein lokales RemTable -Objekt unter dem Namen SharedTable - mit verzögerter Objekterzeugung (beim ersten Fernaufruf !) über parameterlosen Konstruktor „server-activated, well-known object“

Klientenverhalten: RemTable t = (RemTable)System.Activator.GetObject( typeof(RemTable), "tcp://host:8711/SharedTable"); siehe liefert (ohne Fernaufruf!) Vertreterobjekt (alternativ: mit new nach RemotingConfiguration.RegisterWellKnownClientType(.) ) t.op(...) bewirkt Fernaufruf – gegebenenfalls mit Fernerzeugung WellKnownObjectMode.SingleCall (statt Singleton ) bewirkt, daß für jeden Aufruf neues Wegwerf-Objekt erzeugt wird

Alternative: Objekt sofort erzeugen und bekanntmachen: System.Runtime.Remoting. ObjRef dummy = System.Runtime.Remoting RemotingServices.Marshal( new RemTable(arg1,...), "SharedTable"); - und der Klient: RemTable t = (RemTable)System.Activator.GetObject( typeof(RemTable), "tcp://host:8711/SharedTable");

Bereitstellung von Transportkanälen muß vor Benutzung des Fernaufrufsystems vorgenommen werden, sowohl klientenseitig als auch serverseitig Server: System.Runtime.Remoting.Channels.Tcp. TcpChannel ch = new TcpChannel(8711); System.Runtime.Remoting.Channels. ChannelServices.RegisterChannel(ch); Klient: System.Runtime.Remoting.Channels.Tcp. TcpChannel ch = new TcpChannel(); System.Runtime.Remoting.Channels. ChannelServices.RegisterChannel(ch);