Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer

Slides:



Advertisements
Ähnliche Präsentationen
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Advertisements

C Sharp (C#) Martin Saternus Senior Student Partner
M a r c – o l i v e r p a h l Informatik I – Kapitel 7 Klassen und höhere Datentypen Zusammenfassung des Kapitel 7 Küchlin, Weber, Einführung in die Informatik,
Objektorientierte Programmierung
PL/SQL - Kurze Einführung -.
Kurt Rosenberg. C# für.NET oder.NET für C# is(C# == C++ && Java)? true : false ; reines C# Ausblick Überblick.
Visual Basic.NET und Visual Basic 6 Ralf Westphal MSDN Regional Director, freier Fachautor & Berater
DI Christian Donner cd (at) donners.com
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Klassen in Java.
Public interface native private abstract final strictfp synchronized transient static volatile protected in KürzeKürze java.lang.reflect.Modifier1.
Verteilte Software - Java - Prozedurale Programmierung 1
Spec# Proseminar Assertions im SS 2007 Uni Paderborn Andreas Martens Betreuer: Dipl. Inform. Björn Metzler.
Design by Contract with JML - Teil 2
Dipl. Inf. (FH) Paul Mizel Compilerbau.NET Compiler / Codegeneratoren / Skriptsprachen.
Objektrelationales Mapping mit JPA Advanced Mapping Jonas Bandi Simon Martinelli.
Objektrelationales Mapping mit JPA Entity Mapping Jonas Bandi Simon Martinelli.
Erweiterte Zuweisungskompatibilität
M a r c – o l i v e r p a h l Die ObjektOrientierte Mühle Das Beispiel soll noch einmal das Konzept der Objektorientiertheit erläutern. Dabei werden außerdem.
Objektorientierte Programmierung JDK-Klassenbibliothek
Java-Kurs - 2. Übung Entwicklungsumgebung Struktur von Programmen
Programmieren mit JAVA
Programmieren mit JAVA
„Component and Aspect Engineering“
Objektorientierte Vererbung
Reverse Engineering 1 Reverse Engineering WS 04 / 05 A. Zündorf.
Overwiew COM.
Proxy Pattern Vorlesung Design Patterns Sieglinde Heinrich
F açade P attern By Nicolas Lanquetin. Façade Pattern Structural Pattern Bietet ein gemeinsames Interface, anstatt vieler Interfaces eines Subsystems.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
1DVG3 - anonyme Klassen Anonyme Klassen. DVG3 - anonyme Klassen 2 Syntax new BasisKlasse(Parameterliste) { Modifikationen und Erweiterungen der Basisklasse.
DVG Interfaces. DVG mehrfache Vererbung 4 Mehrfache Vererbung ist die Ableitung einer Klassen von mehreren anderen Klassen. –farbigerPunkt.
DVG Einführung in Java1 Einführung in JAVA.
DVG Klassen und Objekte
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
© 2005 Pohlig – Taulien: Die Matheamatik-GUI als Applet Come Together 1 April 2005 Was ist ein Applet Ein Applet ist ein Javaprogramm, das die VM benutzt,
WebCast: Managed Smart Tags mit VSTO Jens Häupel.NET Technologieberater Microsoft Deutschland GmbH
Björn Schmidt, Hoang Truong Nguyen
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
Frank Fischer Manager Evangelism and Marketing Microsoft Deutschland GmbH.
Bonn-to-code.net Obfuscation mit {smartassembly} Jan Welker Website:
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
Anwendungen der nächsten Generation
Patric Boscolo Garbage Collection Patric Boscolo
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung.
C# Einheitliches Typsystem
CuP - Java Elfte Vorlesung Montag, 11. November 2002.
Gameplay Systems I Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung SS 2012 Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz.
Entity Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
MVVM in Windows 8 und Windows Phone 8
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Abteilung für Telekooperation Übung Softwareentwicklung 2 für Wirtschaftsinformatik Dr. Wieland Schwinger
Linker & Loader in .NET August Steinbacher.
Equals, Hashcode und CompareTo Micha Kessler
CIL – Common Intermediate Language All roads lead to Rome (proverb).NET Framework & CLR: All languages lead to Intermediate Language.
Learning By Doing Konstruktoren Gleicher Name wie die Klasse Zur Initialisierung des Objekts, insbesondere mit Parametern Wir immer bei der Objekterzeugung.
Lind 02/2005 Einführung in JAVA. Lind 02/2005 Beispiel: Mittelwert Es soll ein Programm erstellt werden, das den Mittelwert zweier reeller Zahlen berechnet.
Informatik I : Software höhere Programmiersprachen Java Klassen: hat Methoden (Funktionen) und Daten (Variablen) es kann mehrere Klassen geben nur eine.
Java-Kurs Übung Besprechung der Hausaufgabe
Microsoft Student Partner
JAVA - Einführung. © Übersicht Hintergrund und Geschichte Wie sieht ein JAVA Programm aus ? Was ist ein JAVA Programm ? Wie schreibt/übersetzt.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
„Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen.“
Hello World! Javakurs 2013 Arne Kappen
Dynamisches Laden von Klassen
Einführung in die Programmierung mit Java
Grundlagen der OO-Programmierung in C#
 Präsentation transkript:

Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer

Seminar Softwareentwicklung2

3 Common Language Runtime Laufzeitumgebung CIL-Code und Metadaten Hauptbereiche Common Type System (CTS) Common Language Specification (CLS) Virtual Execution System (VES) Metadata System

Seminar Softwareentwicklung4 Vorteile von CLR Typsicherheit Sicherheit verschiedene Sprachen Performanz Deployment (DLL-hell) Metadata (self-describing Code) Garbage Collection

Seminar Softwareentwicklung5 Common Type System Gemeinsames Typsystem für alle Sprachen legt Regeln fest: wie Typen definiert werden wie sie sich verhalten alle Typen erben von System.Object Typen bestehen aus Menge von Werten darauf definierten Operationen zwei grundlegende Typen Werttypen Referenztypen

Seminar Softwareentwicklung6 Werttypen - Referenztypen WerttypenReferenztypen Speicherort StackLocation: Stack Inhalt: Heap Initialisierung 0null Garbage Collection neinja Objektvergleich InhaltReferenz Vererbung neinja Basisklasse System.ValueSystem.Object

Seminar Softwareentwicklung7 Übersicht der Typen Boxing Unboxing WerttypenReferenztypen Vordefinierte Typen Benutzerdefinierte Typen Vordefinierte Typen Pointers Klassen Schnittstellentyp Arrays Delegates

Seminar Softwareentwicklung8 Benutzerdefinierte Werttypen (1/2) Struktur.class (auto|sequential) sealed Person extends System.ValueType{.field string name.field int32 age } Vereinigung.class explicit sealed IntFloat extends System.ValueType{.field [0] float32 f.field [0] int32 i }

Seminar Softwareentwicklung9 Benutzerdefinierte Werttypen (2/2) Enumeration Basisklasse System.Enum Namen/Wert Paare werden unter bestimmten Namen gruppiert.class sealed Color extends System.Enum{.field static literal valuetype Color red = int32 (0x ).field static literal valuetype Color green = int32 (0x ).field static literal valuetype Color blue = int32 (0x ) }

Seminar Softwareentwicklung10 Benutzerdefinierbare Referenztypen (1/2) Klassen Speicherplatzreservierung und Initialisierung in einer Anweisung abgeleitet von System.Object Keine Mehrfachvererbung erlaubt Methoden.class Bar extends System.Object {.method static void foo() {…}.method instance virtual void goo() {…}.method instance void hoo() {…} } Methodenaufrufe Call void Bar:: foo() oder call instance void Bar:: (goo() | hoo()) Callvirt instance void Bar:: (goo() | hoo())

Seminar Softwareentwicklung11 Benutzerdefinierbare Referenztypen (2/2) Interfaces müssen abstract sein, keine Instanzen können davon erzeugt werden mehrfache Schnittstellenvererbung erlaubt.class interface abstract ILockable {.method public abstract instance virtual void Lock() {} } Arrays Daten vom Array müssen alle den gleichen Typ enthalten Zugriff auf die Daten über den Index Arten (newarr, newobj)

Seminar Softwareentwicklung12 Common Language Specification legt Mindestanforderungen an jede Programmiersprache fest Regelwerk CLS-Regel 1: CLS-Regeln betreffen lediglich die Teile eines Typs, die außerhalb des definierenden Assemblys zur Verfügung stehen. [assembly: CLSCompliant(true)]

Seminar Softwareentwicklung13 weitere CLR-Regeln Namen Member Access Type visibility Member accessibility Security constraints Type Members Properties Events

Seminar Softwareentwicklung14 Virtual Execution System Starten einer.exe Datei CLR starten Windows Loader lädt Datei MSCorEE.dll laden _CorExeMain starten CLR initialisieren CLR beginnt zu arbeiten

Seminar Softwareentwicklung15 Execution Engine JIT-Compiler AppDomain Laden einer PE-Datei Laden eines Assemblies Sicherheitsmanager Rechtsvergabe Klassenlader Laden eines Moduls Laden eines Typs Übersetzung in Maschinencode Codemanager Ausführung des Programms Verifikation der CIL Managed Native Code Image