Seminararbeit. zum Hauptseminarvortrag Konzepte hinter Microsoft's.NET. Michael Voigt

Größe: px
Ab Seite anzeigen:

Download "Seminararbeit. zum Hauptseminarvortrag Konzepte hinter Microsoft's.NET. Michael Voigt"

Transkript

1 Seminararbeit zum Hauptseminarvortrag Konzepte hinter Microsoft's.NET Michael Voigt Abstract: Microsoft hat mit dem.net Framework eine neue Laufzeitumgebung veröffentlicht, die im Gegensatz zu der Java Virtual Machine nicht nur für eine bestimmte, sondern für viele Programmiersprachen ausgelegt wurde. Die Seminararbeit gibt einen Überblick über die wesentlichen Konzepte des.net Frameworks und erläutet, was sich überhaupt hinter Microsoft's.NET verbirgt. Neben der Darstellung zentraler Technologien des. NET Frameworks wird auch auf Anwendungsmöglichkeiten eingegangen, die OpenSource Implementierung Mono vorgestellt und ein Vergleich von.net mit Java durchgeführt. Außerdem wird im Speziellen das theoretische Threading Modell von.net vorgestellt und eine Implementierungsmöglichkeit angegeben.

2 Inhaltsverzeichnis 1. Einleitung: Was ist.net? 2. Das.NET Framework 2.1 Common Language Runtime (CLR) 2.2 Common Intermediate Language (CIL) 2.3 Common Type System (CTS) 2.4 Framework Class Libary (FCL) 2.5 Sprachen im.net Framework C# J# Visual C++.NET (möglicherweise unvollständige) Liste weiterer.net Sprachen 3. Threading unter.net 3.1 Konzept 3.2 Implementierung unter Windows XP/ Anwendungen 4.1 ASP.NET 4.2 WebServices 5. Plattformunabhängikeit 5.1 ECMA Standards 5.2 Mono 6. Java vs..net 6.1 Gemeinsamkeiten 6.2 Unterschiede

3 1. Einleitung: Was ist.net? Die wohl erste Frage, die sich einem stellt, wenn man sich mit dem Thema.NET befassen möchte, lautet: Was ist.net überhaupt?.net ist in erster Linie eine neue Technologie von Microsoft, das.net Framework. Ein wesentlicher Bestandteil des.net Frameworks ist die Common Language Runtime (CLR), eine Lauftzeitumgebung vergleichbar mit der Java Virtual Machine. Die CLR führt einen virtuellen Zwischencode aus, die Common Intermediate Language (vgl. Java Bytecode). Außerdem enthält das.net Framework eine Klassenbibliothek, die Framework Class Libary (FLC), die die Funktionalität des Betriebssystems in objektorientierte Klassen kapselt. Ähnlich wie die Java Runtime stellt das.net Framework also eine vom Betriebssystem abstrahierende Laufzeitumgebung zur Verfügung; im Gegensatz aber zum Java Bytecode wurde die CIL daraufhin ausgelegt, dass nicht nur eine bestimmte, sondern viele verschiedene Programmiersprachen in sie kompilieren können sollen. Abb C# VB.NET C# Compiler VB Compiler... Common Intermediate Language (CIL) führt aus Common Language Runtime (CLR) Betriebssystem Das.NET Framework 2.1. Common Language Runtime (CLR) Wie in der Einleitung schon erwähnt, ist die Common Language Runtime eine sprachübergreifende Laufzeitumgebung, die auf das Betriebssystem aufsetzt. Die CLR ist somit im Prinzip ein Programm des jeweiligen Betriebssystems, das CIL Code zur Ausführung bringt. Dies geschieht, indem sie immer wechselweise einen Abschnitt CIL Code in den jeweiligen nativen Prozessorcode kompiliert und diesen dann ausführt (Bereits kompilierter CIL Code, der ein weiteres Mal aufgerufen wird, wird natürlich nicht noch einmal neu übersetzt, sondern gleich ausgeführt). Man bezeichnet diese Art und Weise des Ausführens von virtuellen Code als Just in Time Compilation. Außerdem leistet die CLR eine automatische Speicherverwaltung inklusive Garbage Collection, sie überprüft bei jeder Operation, ob diese auf dem entsprechenden Objekt auch erlaubt ist und bietet ein einheitliches objektorientiertes Ausnahmenmodell, indem sie Fehler von verschiedenen Ebenen in.net Exceptions umwandelt. Des Weiteren kann man gewisse Sicherheitsanforderungen an.net Programme oder Programmbibliotheken stellen, deren Einhaltung die CLR gewährleistet Common Intermediate Language (CIL) Die Common Intermediate Language ist eine assemblerartige Zwischensprache für eine virtuelle Maschine, die Common Language Runtime. Eine.NET Sprache wird nicht in nativen Prozessorcode übersetzt, sondern in CIL. Erst zur Laufzeit wird dieser CIL Code dann Just In Time in den entsprechenden Maschinencode kompiliert und ausgeführt. Die CIL ist zwar assemblernäher als eine Hochsprache, aber durch die Anreicherung mit Metadaten kennt sie trotzdem objektorientierte Konstrukte wie zum Beispiel Klassen, Methoden, Objekte, Ausnahmen usw. So ermöglicht sie der CLR, oben genannte Punkte, wie z.b. Typsicherheit, gewährleisten zu können.

4 2.3. Common Type System (CTS) Das Common Type System ist das Typsystem der CIL..NET Sprachen haben kein eigenes Typsystem, sondern setzten auf das CTS auf, d.h. sie verwenden Teile des CTS. Das CTS ist extrem weit gefächert und sehr flexibel, sodass Typen nahezu jeglicher heutiger Sprachen in ihm darstellbar sind. C# CTS Eine sehr kleine Untermenge des CTS ist die Common Language Specification (CLS). Sie stellt das Mindestmaß an Typen dar, die eine Sprache unterstützen muss, um unter.net laufen zu können. Die CLS kann quasi als die Schnitt und das CTS als die Vereinigungsmenge der Typsysteme aller.net Sprachen gesehen werden. Siehe dazu auch Abbilung Abb Fortran CLS J# Da alle.net Sprachen die CLS unterstützen, fungiert sie als eine Art Schnittstelle zwischen den verschiedenen Sprachen und ermöglicht somit Interoperabilität, wie zum Beispiel Vererbung, über Sprachgrenzen hinweg. Im Gegensatz zu Java ist im Common Type System jede Variable ein Objekt. Aber schon in einer Ebene der Vererbung tiefer wird, wie in Java, zwischen Wert und Referenztypen unterschieden. Diese Unterscheidung wird aus Geschwindigkeits und Effizienzgründen getroffen und beinhaltet eine unterschiedliche Behandlung der beiden Typen im Speicher. Der Inhalt von Werttypen wird direkt auf dem Stack abgelegt, während sich bei Refernztypen auf dem Stack selbstdef.: struct class vordef.: z.b. int z.b. String Abb Werttypen System.Object Referenztypen 'mensch' 'hund' nur eine Speicheradresse befindet, die angibt, wo der Inhalt des gesuchten Objekts auf dem Heap zu finden ist (siehe Abb ). Werttypen kann man durch das Schlüsselwort struct und Refernztypen durch das Schlüsselwort class selbst definieren. Ein typisches Beispiel für vordefinierte Werttypen ist das struct int, für Referenztypen ist dies die Klasse String. 'dino' Stack Stack Heap 2.4. Framework Class Libary (FCL) Der vierte wesentliche Bestandteil des. NET Frameworks ist dessen Standardklassenbibliothek, die Framework Class Libary. Diese kapselt die Funktionalität des Betriebssystems und bietet sie.net Programmen als Klassen bzw. Methoden zum Gebrauch an. Dadurch schirmt sie. NET Programme vom direkten Zugriff auf das Betriebssystem ab, abstrahiert auf diese Art und Weise vom Betriebssystem und trägt so zur Plattformunabhängikeit des.net Frameworks bei. Framework Class Libary System.Windows.Forms Dateizugriff typische Algorithmen Abb Threading WebServices...

5 Die FCL bietet unter anderem Klassen und Methoden zur Erstellung graphischer Benutzeroberflächen (im Namensraum System.Windows.Forms), zur Unterstützung von Threading, zum Dateizugriff und zur Erstellung von WebServices an. Sie hält aber auch typische, oft gebrauchte Algorithmen wie Heapsort oder die FFT bereit Sprachen im.net Framework Mittlerweile gibt es für viele Sprachen Compiler, die in CIL übersetzten. Hier sollen drei wichtige Sprachen betrachtet werden, für die.net Compiler von Microsoft existieren. Im Anschluss daran wird eine (möglicherweise unvollständige) Liste von weiteren Sprachen angegeben, von denen bekannt ist, dass für sie CIL Compiler existieren C# C# ist eine neue objektorientierte Hochsprache, die extra von Microsoft für das.net Framework entwickelt worden ist und auf die Kompilation in CIL zugeschnitten wurde. Sie enthält keine eigenen Klassenbibliothek, sondern stützt sich nur auf das.net Framework und die dessen FCL. Im Prinzip ist C# sehr ähnlich zu Java, geht aber in einigen Punkten über Java hinaus (Möglichkeit zur Verwendung von Zeigern, Unterstützung von typisierten Funktionszeigern und Ereignissen). Warum hat Microsoft eine neue Sprache entwickelt, wenn sie doch sehr ähnlich zu Java ist? Eigentlich hatte Microsoft damit geliebäugelt, Java als eine der Hauptsprachen von.net zu verwenden und es nur ein bisschen zu erweitern. Zur Zeit der Entwicklung des.net Frameworks stand Microsoft aber im Rechtsstreit mit Sun. Aus diesem Grund wohl hat Microsoft eine neue Java ähnliche Programmiersprache erschaffen, deren Name aber bewusst nicht nach Java klingt J# Als Microsoft.NET auf der Professional Developer Conference 2000 vorgestellt hatte, wurde öfter die Frage gestellt, was denn nun mit Java sei. Die Antwort Microsoft's darauf war eher verhalten. Es werde Implementierungen von Java für.net geben, aber nicht von Microsoft. Kaum 12 Monate später, im Oktober 2001, war der Rechtsstreit mit Sun inzwischen beigelegt und Microsoft veröffentlichte nun doch eine eigene.net Implementierung von Java, genannt J#. J# ist kompatibel zum JDK und enthält seine gesamte Klassenbibliothek (außer JNI, RMI und Applets). Trotzdem ist J# vollkommen in die.net Welt integriert; ein J# Programm kompiliert in CIL und die FCL ist von J# genauso wie von jeder anderen.net Sprache aus nutzbar Visual C++.NET Visual C++.NET (=VC++ 7.0), Microsoft's C++ Implementierung für.net, nimmt eine Sonderstellung unter den.net Sprachen ein, denn es ist die einzige Sprache, die in der Standardeinstellung noch prozessorabhänigen Maschinencode erzeugt. VC ist hundertprozentig abwärtskompatibel zu VC++ 6.0; ein fehlerfreies VC Programm sollte also auch fehlerfrei mit dem Visual C++.NET Compiler übersetzt werden können. C# J# C# Compiler J# Compiler C++ Compiler Common Intermediate Language Die CLR erlaubt aber sogenannten unsicheren Code in der CIL. Das ist Code, in dem der Programmierer die Common Language Runtime Verwaltung des Speichers selbsttätig übernimmt. Man (CLR) kann einen Abschnitt in CIL Code als unsicher kennzeichnen und in diesem Abschnitt dann Speicher von Betriebssystem Hand allokieren, deallokieren und mit Zeigern auf diesem Speicher arbeiten. Der betreffende Speicherbereich muss Abb C++ Maschinencode

6 jedoch vorher durch den Programmierer explizit fixiert werden, dass er von der automatischen Speicherverwaltung unberührt bleibt. JIT Kompilierung und unsicherer Code machen es möglich, dass man unter VC++.NET durch eine veränderte Compilereinstellung auch sogenannte gemischte Module erzeugen kann. Das sind Programme (oder Bibliotheken), die sowohl CIL Code als auch Maschinencode in ein und derselben Datei enthalten. Der Compiler übersetzt dann all die Code Abschnitte, bei denen es möglich ist, in CIL, und die anderen, bei denen es nicht möglich ist (die beispielsweise Inline Assembler Befehle enthalten), weiterhin in nativen Prozessorcode. Durch sogenannte managed extensions, das sind in VC neu hinzugekommene Schlüsselwörter, ist es sogar möglich, auch absolut reinen.net Code in Visual C++.NET zu erzeugen, zum Beispiel Klassen zu definieren, deren Instanzen der Garbage Collection unterliegen (möglicherweise unvollständige) Liste weiterer.net Sprachen Ada APL AsmL CAML Cobol Delphi Forth Eiffel Fortran Haskell Lisp Lua Mercury Mixal ML Mondrian Nemerle Oberon Pascal Perl PHP Prolog Python RPG Ruby Ruby Scheme Smalltalk 3. Threading unter.net Ruft man unter Windows ein.net Programm auf, wird ein neuer Betriebssystem Prozess gestartet und dieser lädt die CLR, welche dann schließlich das aufgerufene Programm ausführt. Genauso geschieht es in einem anderen, neuen Prozess, ruft man ein weiteres.net Programm auf (oder auch das gleiche noch einmal). Will man nun innerhalb eines Programms weitere Betriebssystem Prozesse oder Threads starten, ist dies unter.net nicht möglich, da das.net Framework wiederum aus Gründen der Plattformunabhängigkeit sein eigenes, vom Betriebssystem unabhängiges AppDomain soft thread BS Prozess 1 Abb Threading Konzept verwendet. Dieses Konzept soll im Folgenden kurz vorgestellt und danach dessen derzeitige Implementierung unter Windows XP und Windows 2000 angegeben werden. CLR AppDomain soft thread CLR BS Prozess 2

7 3.1. Konzept Das Threading unter.net läuft auf der Ebene der CLR ab und wird auch von dieser verwaltet. Sie bietet dafür zwei unterschiedliche Konstrukte: Application Domains (oder kurz App Domains), diese entsprechen den Betriebssystem Prozessen, und soft threads, diese sind das Pendant zu den BS Threads. AppDomain 1 Abb soft thread 1.1 AppDomain 2 soft thread 2.3 soft thread 2.2 soft thread 2.1 CLR BS Prozess AppDomain 3 soft thread 3.2 soft thread 3.1 Normalerweise wird ein.net Programm vorerst in einer AppDomain mit einem soft thread gestartet. Der Programmierer kann nun weitere AppDomains und innerhalb einer AppDomain auch weitere soft threads erzeugen. Jeder soft thread gehört zu genau einer AppDomain, in einer AppDomain können hingegen mehrere soft threads laufen. Die AppDomains haben auf Variablenebene voneinander getrennte Adressräume, soft threads in der selben AppDomain können auf die selben Daten zugreifen. Verwenden beispielsweise soft thread 2.1 und soft thread 2.3 in Abbildung die Variable x, so ist das ein und dieselbe Variable, während, wenn soft thread 1.1 auch eine Variable mit dem Namen x verwendet, dies eine andere zu der ist, die soft thread 2.1 und soft thread 2.3 verwenden. Diese Illusion der getrennten Adressräume erlischt allerdings bei Verwendung von unsicherem Code, da der Adressraum der Speicheradressen nach wie vor der des Betriebssystem Prozesses ist. Das.NET Framework hält einige Möglichkeiten zur Thread Synchonisation bereit, darunter z.b. Monitore oder locks (das sind Sperren ähnlich wie die von Datenbanksystemen) Implementierung unter Windows XP/2000 Nun stellt sich die Frage, wie man das theoretische Threading Modell AppDomain 1 AppDomain 2 AppDomain 3 der CLR BS Thread 3 soft thread 2.3 unter einem bestimmten Betriebssystem implementiert, konkret: welche Abbildung von soft threads auf BS Threads man BS Thread 2 BS Thread 1 soft thread 1.1 soft thread 2.2 soft thread 2.1 CLR soft thread 3.2 soft thread 3.1 wählt. Die derzeitige BS Prozess Implementierung der Abb CLR unter Windows XP und Windows 2000 bildet jeden soft thread auf genau einen BS Thread ab, wobei einem BS Thread auch mehrere soft threads zugeordnet sein können, aber maximal einer pro AppDomain. Die BS Threads springen dann immer gescheduled von der CLR zwischen den AppDomains hin und her und sind dann immer der BS Thread Vertreter des soft threads der jeweiligen AppDomain. Siehe dazu auch Abbildung

8 4. Anwendungen 4.1. ASP.NET ASP.NET ist eine neu konzipierte Fassung der Microsoft Active Server Pages und nun ein Bestandteil der Framework Class Libary. Es dient zur Erstellung dynamischer serverseitiger Websites. Client Abb HTML Browser ASP.NET.NET Programm HTML Server Die Idee von ASP.NET ist, dass ein Entwickler eine dynamische Website objektorientiert in.net wie eine Windows Anwendung programmieren kann (mit sogenannten WebForms), ohne je HTML oder Scriptsprachen bei der Erstellung gesehen zu haben. Die fertige Seite funktioniert auf Client Seite dann so, dass der Benutzer eine Anfrage in HTML die sein Browser erstellt, jenachdem, was er in dem HTML Formular klickt, anwählt oder ausgefüllt hat an den Server schickt und der Server dann eine, entsprechend der Anfrage dynamisch kreierte, HTML Seite an den Client zurückschickt. Die Brücke zwischen diesen beiden Welten stellt ASP.NET dar, dass einem die müßige Scriptprogrammierung in HTML Code abnehmen soll WebServices WebServices sind Server, die Methoden unter Einhaltung eines SOAP gewissen Standarts zum entfernten (kostenpflichtigen) Aufruf über das Internet via HTTP anbieten. Der WebService Standard Server Server besagt, dass das Ergebnisobjekt der Methode in XML Form zurückgeben werden und der Methodenaufruf über SOAP (eine XML XML Spezifikation eben genau für Methodenaufrufe von WebServices) Abb erfolgen muss. Dabei spielt die Implementierung des WebServices (ob nun mit Java,.NET, PHP oder ganz anders realisiert) keine Rolle, solange er sich an den Standard hält. Ein Paradebeispiel für die Verwendung von WebServices ist ein Online Reisebüro. Über das HTML Webinterface des Reisebüros kann der Anwender zum Beispiel herausfinden, ob noch Flüge zu einem bestimmten Datum und einem bestimmten Preis buchbar sind. Dazu stellt das Online Reisebüro Anfragen via SOAP an alle WebServices der Fluggesellschaften mit dem es in Vertrag steht und kann so dem User einen Überblick über die Flüge, die noch freie Plätze haben, geben und gegebenfalls auch einen davon buchen. Die FCL des.net Frameworks enthält Klassen zur Erstellung und Verwendung von WebServices, die es dem Programmierer ermöglichen, einerseits sehr einfach seine.net Methoden als WebServices anbieten und andererseits den Aufruf einer Methode eines WebServices wie einen lokalen.net Methoden Aufruf starten zu können. 5. Plattformunabhängigkeit 5.1. ECMA Standards Während der Entwicklung des.net Frameworks hat Microsoft im November 2000 Teile davon der ECMA zur Standardisierung vorgelegt. Nach einem intensiven Standardisierungsprozess, an dem unter anderem Firmen wie Microsoft, HP, Intel, IBM, Fujitsu, Sun, Netscape, Plum Hall und OpenWave beteiligt waren, wurden schließlich der Standard ECMA 334, der C# und einen C# Compiler beinhaltet, und der Standard ECMA 335, der die die CLR, die CIL und Teile der FCL charakterisiert, verabschiedet. Diese sind patentfrei und können von jedem, der es möchte, (kommerziell) implementiert werden.

9 5.2. Mono Mono ist ein Projekt, das sich zum Ziel gesetzt hat, eine OpenSource Implementierung der ECMA Standards, aber auch weiteren Teilen des.net Frameworks unter Linux, MacOS und Windows zu realisieren. Nach über zweijähriger Entwicklung ist nun im Juni 2004 Mono 1.0 erschienen. Es enthält eine CLR Version, einen Compiler für C# 1.0, einen Java CIL Compiler, Klassen zur Erstellung von WebServices und sogar die Alpha Version einer Entwicklungsumgebung, Monodevelop. Jedoch bestehen auch noch große Mängel. Zum Beispiel läuft ein einfaches GUI Tool, das mit Visual Studio.NET erstellt wurde, unter Mono noch nicht, da Mono 1.0 keine Unterstützung des Namensraums Abb System.Windows.Forms bietet. Diese wird aber für Mitte 2005 versprochen. Dafür enthält Mono 1.0 bereits die Klassenbibliothek Gtk#, die es ermöglicht, von.net Programmen aus auf die Gtk GUI Steuerelemente der GNOME Bibliothek zuzugreifen. Die Bibliothek Gtk# wurde auch auf Windows und den Macintosh portiert. Ein groß angelegtes Ziel des Mono Projektes ist es, im zweiten Quartal von 2006 Mono 2.0 herauszubringen, das eine komplette Implementation der Funktionen des.net Frameworks 2.0 enthält, welches 2005 erscheinen soll. Abbildung zeigt einen Screenshot von SkyNET unter Linux, ein Programm, dass einem beim Auffinden und Klassifizieren von Sternbildern am Himmel hilft. Es wurde mit C# und Gtk# unter Mono entwickelt. Auf Abbildung erkennt man die Entwicklungsumgebung Monodevelop unter MacOS. Abb In dem Magazin von ist 2004 ein Artikel namens Völcker Informatik AG. Success Story erschienen, der beschreibt, dass die Stadt München mehr als 350 seiner Server im Bindungsbereich auf Linux umgestellt hat. München sei langjähriger Kunde der Firma Völcker Informatik AG und habe diese gebeten, Ihre Software für sie so umzuschreiben, dass sie nicht mehr nur ausschließlich unter Windows, sondern auch auf Linux Systemen läuft. Um dies zu realisieren, habe Völcker Informatik Mono verwendet. Matthias Bauer, der Chefentwickler dieses Projekts, sagt in dem Artikel über Mono: We found Mono to be very stable and easy to learn. It s a commercial grade development platform that really works. [...] Using Mono was the only way for us to leverage our existing software and give our customers what they need on Linux.

10 6. Java vs..net Es soll nun ein Vergleich von.net mit Java (bzw. der Java 2 Enterprise Edition) angestellt werden. Dazu wird zuerst auf die Gemeinsamkeiten der beiden Systeme, dann auf ihre Unterschiede eingegangen Gemeinsamkeiten Sowohl Java als auch.net Programme basieren auf einem (prinzipiell) plattformunabhängigen virtuellen Zwischencode, der von einer Laufzeitumgebung ausgeführt wird. Die Java Virtual Machine unterstützt, genauso wie die CLR, Objektorientierung, leistet automatische Speicherverwaltung (Garbage Collection) und gewährt Typsicherheit. Mit der Java 2 Enterprise Edition ist es, wie auch mit dem.net Framework, möglich, WebServices zu erstellen und zu verwenden und dynamische Websites zu kreieren. Java (JVM).NET virtueller Zwischencode/VM JA JA Objektorientierung JA JA Garbage Collection JA JA Typsicherheit JA JA WebServices JA JA Dynamische Webpages JSP ASP.NET Abb Unterschiede Eine Java Runtime existiert für sehr viele Systeme und obwohl es in einigen Java Versionen betriebssystemspezifische Features gibt, so ist es in der Regel doch recht unkompliziert, ein Java Programm auf einer andere Plattform zu portieren. In vielen Fällen kann man sogar exakt den gleichen Java Bytecode auf sehr vielen Systemen ausführen. Will man ein plattformübergreifendes.net Programm haben, so muss es bewusst auf die Plattformunabhängigkeit hin entwickelt worden Java (JVM).NET Plattformunabhängigkeit Realität bedingt Sprachunabhängigkeit th. möglich Realität Performance < Bytecode/CIL Größe < Betriebssystemintegration schwach mittel unsicherer Code NEIN JA imperative Prog. Sprachen NEIN/schlecht JA Kompilierung Interpreter, JIT JIT Abb sein (z.b. mit Mono). Unter Visual Studio.NET erzeugter Code, lässt sich in vielen Fällen heutzutage noch sehr schlecht auf andere Plattformen wie Linux, FreeBSD oder Mac Systeme übertragen. Allerdings hat Microsoft das.net Compact Framework publiziert, das es möglich macht,.net Programme auf Pocket PCs mit WindowsCE auszuführen. Unter Punkt kann man erkennen, dass die Sprachpluralität von.net bereits Realität geworden ist. Compiler anderer Sprachen als Java, die auf Java Bytecode und die Java Virtual Machine und abzielen, gibt es nur wenige, es ist aber natürlich theoretisch möglich, nicht nur für Java Compiler zu entwicklen, die in Java Bytecode kompilieren. Jeremy Singer von der University of Cambridge hat jedoch eine Studie unter dem Namen JVM versus CLR: A comparative Study veröffentlicht, in der er ein CIL Backend für den GNU C Compiler entwickelt und dieses mit dem bereits existierenden Java Bytecode Backend egcs jvm von Trent Waddigton verglichen hat. Als Singer nun verschiedene einfache C Programme mit den beiden Compilern übersetzt hatte, war der von egcs jvm erzeugte Java Bytecode leider nicht (fehlerfrei) ausführbar, während sein Compiler immer funktionierende und sogar sehr performante Programme lieferte. Dies zeigt, dass die CLR durch die Unterstützung von unsicherem Codes gegenüber der JVM für die Implementierung imperativer Programmiersprachen klar im Vorteil ist. Die Studie hat aber auch noch die Geschwindigkeit und die Zwischencode Größen der beiden Systeme bei Kompilierung und Ausführung gleicher Programme verglichen und ist zu dem Ergebnis gekommen, dass der CIL Code des gleichen Programms durchschnittlich etwas größer ist als der entsprechende Java Bytecode, dass er im Schnitt dafür aber etwas schneller ausgeführt wird. Die Unterschiede hier sind aber derart gering, dass sie leicht zu vernachlässigen sind.

11 Quellen [1] Ralph Wesphal:.NET kompakt. Spektrum Akademischer Verlag, 2002 [2] Don Box with Chris Sells: Essential.NET. Volume 1. The Common Language Runtime. Addison Wesley, 2002 [3] Jeffrey Richter: Applied.NET Framework Programming, chapter 1. Microsoft Press, 2002 [4] Peter Drayton, Ben Albahri & Ted Neward: C# in a nutshell, Deutsche Übersetzung, insbes. Kapitel 1. O'Reilly Verlag GmbH & Co. KG, 2003 [5] Betrand Meyer:.NET Is Coming. In: Software Technologies, August 2001 [6] Jeremy Singer: JVM versus CLR: A Comperative Study. University of Cambrigde Computer Laboratory, 2003 [7] Chad Vawter and Ed Roman: J2EE vs. Microsoft.NET. A comparison of building XML based web services. Middleware Company, 2001 [8] White Paper: Microsoft.NET or Java Enterprise Edition: Is it just a question of platforms and languages? CGI Group Inc., 2004 [9] project.com [10] Kein Autor angegeben: Völcker Informatik AG. Succes Story. In: Zeitschrift von

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

Konzepte hinter Microsoft's.NET. Ein Hauptseminarvortrag von Michael Voigt Konzepte hinter Microsoft's.NET Ein Hauptseminarvortrag von Michael Voigt Gliederung des gesamten Vortrags 1.Einleitung: Was ist.net? 2.Das.NET Framework 3.Threading unter.net 4.Anwendungen 5.Plattformunabhängigkeit

Mehr

9.5 Microsoft.NET

9.5 Microsoft.NET 9.5 Microsoft.NET http://www.microsoft.com/net http://msdn.microsoft.com/netframework Architektur: objektorientiert/fernaufrufe (8.1.6 ) IDL: (unsichtbare Metadaten, vom Übersetzer erzeugt) Dienste: (über

Mehr

Typsystem Plattform- und Sprachenunabhängigkeit in.net

Typsystem Plattform- und Sprachenunabhängigkeit in.net Typsystem Plattform- und Sprachenunabhängigkeit in.net C# J# VB.NET Zwischencode CIL Windows Unix Auf welchen Grundlagen basiert dies? Komponenten & Frameworks Seite 1 Typsystem Grundlagen - CLR Common

Mehr

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

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber 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

Mehr

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

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler Microsoft.NET InfoPoint 8. Juni 2005 Stefan Bühler Inhalt Was ist.net Was steckt dahinter Warum ist.net so wie es ist Die Säulen von.net.net Framework 2.0 / VisualStudio 2005 Beispiel Referenzen & Links

Mehr

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder

Java: Kapitel 1. Überblick. Programmentwicklung WS 2008/2009. Holger Röder Holger Röder Java: Kapitel 1 Überblick Programmentwicklung WS 2008/2009 Holger Röder holger.roeder@informatik.uni-stuttgart.de Was ist Java? Die Java-Technologie umfasst die Programmiersprache Java sowie die Java-Plattform

Mehr

Microsoft.NET Überblick. Matthias Nübling

Microsoft.NET Überblick. Matthias Nübling Microsoft.NET Überblick Matthias Nübling Gliederung Was ist Microsoft.NET? Überblick wichtiger.net-technologien Common Language Runtime.NET Framework ADO.NET Windows Forms Web Forms mit ASP.NET Web Services

Mehr

Seminar Softwarearchitekturen SoSe Martin Schrage

Seminar Softwarearchitekturen SoSe Martin Schrage Seminar Softwarearchitekturen SoSe 2011 Martin Schrage Gliederung 1. Common Language Infrastructur 2. Microsoft.NET 2.1Common Language Runtime 2.2 Programmausführung 2.3 Framework Class Library 2.4 Programmiersprachen

Mehr

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

Gliederung. .NET Vision. Was ist Microsoft.NET? Microsoft.NET Überblick. Was ist Microsoft.NET? Überblick wichtiger.net-technologien. Gliederung Microsoft.NET Überblick Matthias Nübling Was ist Microsoft.NET? Überblick wichtiger.net-technologien Common Language Runtime ADO.NET Windows Forms Web Forms mit ASP.NET Visual Studio.NET Was

Mehr

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

MICROSOFT.NET: EINE NEUE ENTWICKLUNGSPLATTFORM AUCH FÜR NUMERISCHE PROBLEME? Titel MICROSOFT.NET: EINE NEUE ENTWICKLUNGSPLATTFORM AUCH FÜR NUMERISCHE PROBLEME? Jan Linxweiler, Sören Freudiger mail@bau-ings.de www.bau-ings.de 30.09.2004 Jan Linxweiler 1 Übersicht Prof. M. Krafczyk

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2017/2018 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 12. Januar 2018 Betriebssysteme / verteilte

Mehr

Janeva:.NET meets J2EE

Janeva:.NET meets J2EE Inhalt: Motivation Was ist Janeva? Systemvoraussetzungen Installation Beispiel Converter Fazit Motivation Motivation: Janeva testen einen Überblick verschaffen Lauffähiges Beispiel Entscheidungshilfe über

Mehr

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

mitp Professional Visual C# 2012 Einstieg und Praxis von Christopher Martel 1. Auflage mitp Professional Visual C# 2012 Einstieg und Praxis von Christopher Martel 1. Auflage Visual C# 2012 Martel schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG Thematische Gliederung:

Mehr

Vergleich CLR von.net mit JVM:

Vergleich CLR von.net mit JVM: Vergleich CLR von.net mit JVM: Art und Martin Ahke, Marco Fiedler und Lars Schittly, Institut für Informatik 30.11.05 Basic mit JVM Applet Designer: - Generiert Javaquell- und Bytecode aus Visual Basic

Mehr

Einführung in die Programmiersprache C#

Einführung in die Programmiersprache C# Einführung in die Programmiersprache C# C# Übersicht Einführung in das.net Framework Konzepte / Architektur Einführung in C#, speziell Unterschiede zu Java .NET: Framework, Sprachen und Werkzeuge .NET

Mehr

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

Software Reuse Sommer Einfache, aus 3 Komponenten bestehende, Anwendung Was ist eine Komponente? Rückblick Einfache, aus 3 Komponenten bestehende, Anwendung Was ist eine Komponente? Eine einzelne Klasse? Eine ganze Anwendung? Komponente In sich abgeschlossener Baustein Klar definierte Schnittstelle

Mehr

.NET Framework. 3. Das.NET Framework

.NET Framework. 3. Das.NET Framework 3. Das.NET Framework.NET Framework 3.1 Übersicht - 2002 von Microsoft bereitgestellt - Ziel: Entwicklung von Anwendungen (Windows, Web, Embedded,..) bequemer und sicherer zu machen und bestehenden Code

Mehr

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

Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware VDMS Stephan Püngel Vergleich von Webtechnologien zur Erstellung einer Rich Internet Applicationam Beispiel der Kundenverwaltungssoftware sübersicht Einstieg Vorstellung als Rich Internet Application Technologie

Mehr

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

CLR CIL MCS ECMA-335. Linux.Ne t. 2005 Albrecht Liebscher, Erlanger Linux Tage C# CLR CIL MCS ECMA-335 Linux.Ne t Was ist.net? Microsoft Homepage:.NET is the Microsoft Web services strategy to connect information, people, systems and devices through software. Mono Handbuch:.Net besteht

Mehr

Grundlagen der Informatik für Ingenieure I

Grundlagen der Informatik für Ingenieure I 2 Java: Java-Einführung 2 Java: Java-Einführung 2.1 Java-Entwicklungsgeschichte 2.2 Java Eigenschaften 2.3 Java-Entwicklungsumgebung 2.4 Application vs. Applet 2.5 Ein erstes Programm 2.1 2.1 Java - Entwicklungsgeschichte

Mehr

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

Programmieren II. Dr. Klaus Höppner. Hochschule Darmstadt WS 2006/2007 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt WS 2006/2007 1 / 15 Einführung: Grafische Benutzeroberflächen 2 / 15 Einführung: GUI Fast alle Programme besitzen mittlerweile eine grafische Benutzeroberfläche

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe

Mehr

Definitionen/Vorarbeit zum Thema Java

Definitionen/Vorarbeit zum Thema Java Definitionen/Vorarbeit zum Thema Java Programmiersprachen: System von Wörtern und Symbolen, die zur Formulierung von Programmen für die elektronische Datenverarbeitung verwendet werden. Arten: z.b. Javascript

Mehr

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

Universität Karlsruhe (TH) Moderne Programmiersysteme am Beispiel von.net Moderne Programmiersysteme am Beispiel von.net Prof. Walter F. Tichy Was ist.net? Hannes Preishuber auf devtrain.de: (http://www.devtrain.de/artikel_823.aspx) Wenn man Hundert Menschen befragt,.net in

Mehr

Einführung in die Programmierung

Einführung in die Programmierung 1 Einführung in die Programmierung Sebastien Vaucouleur ETH Zurich 21. Dezember 2004 Diese Vorlesung: Einführung in.net 2 Kurze (< 2 Stunden) Einführung in.net Was ist.net Geschichte von.net Mehrwert von.net

Mehr

Vorlesung Software aus Komponenten

Vorlesung Software aus Komponenten Vorlesung Software aus Komponenten 3. Komponenten-Modelle Prof. Dr. Hans-Gert Gräbe Wintersemester 2006/07 1 Was ist.net? "... komplette Neudefinition der Art, wie Microsoft in Zukunft Geschäfte machen

Mehr

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

360.NET. Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland 360.NET Jan Schenk Developer Evangelist Web/Live Microsoft Deutschland Was ist.net? Eine Strategie Eine Plattform Eine Laufzeitumgebung Eine Software-Sammlung Ein Set von Services Warum so ein Framework?

Mehr

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

8.4 Microsoft.NET. .NET Framework = 1 CLR Common Language Runtime ist objektorientierte virtuelle Maschine für Ausführung von managed cod 8.4 Microsoft.NET http://www.microsoft.com/net.net Framework = 1 CLR Common Language Runtime ist objektorientierte virtuelle Maschine für Ausführung von managed cod 2 Reichhaltige Klassenbibliotheken für

Mehr

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure

2. JAVA-Programmierung. Informatik II für Verkehrsingenieure 2. JAVA-Programmierung Informatik II für Verkehrsingenieure Problem-Algorithmus-Umsetzung Problemstellung Algorithmus Umsetzung 2 Beispiele für Algorithmen 3 Definitionsversuch Algorithmus Anleitung, wie

Mehr

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden

Teil 3 - Java. Grundlagen Klassen, Attribute Methoden Teil 3 - Java Grundlagen Klassen, Attribute Methoden 1 Java 2 - Geschichte Ursprung: Green -Project bei der Firma Sun Microsystems 1991 Entwicklung eines Systems mit folgenden Eigenschaften: hardwareunabhängig

Mehr

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

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 3 RMI over IIOP el0100 copyright Abt. Technische Informatik,

Mehr

Microsoft.NET und SunONE

Microsoft.NET und SunONE Microsoft.NET und SunONE, Plattformen und Application Service Providing Agenda Einordnung.NET und SunONE Kurzvorstellung Gegenüberstellung Zusammenfassung ASP (Application( Service Providing) ) und Ausblick

Mehr

Vergleich.Net und COM

Vergleich.Net und COM Vergleich und COM Komponentenorientierte Programmierung und Interoperabilität Einleitung Komponentenmodelle der Firma Microsoft Unterschiedlich in Entstehung und technologischer Umsetzung : Schaffung eines

Mehr

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

.NET als alternative Middleware-Technologie. .NET als alternative 1.NET als alternative Middleware-Technologie Einführung und Überblick Vortragender: Veranstaltung: Jens Zimmermann Hauptseminar Telematik 2 Inhalt Motivation Einführung in.net Historische Entwicklung Bestandteile

Mehr

J.5 Die Java Virtual Machine

J.5 Die Java Virtual Machine Java Virtual Machine Die Java Virtual Machine 22 Prof. Dr. Rainer Manthey Informatik II Java-Compiler und Java Virtual Machine Quellcode-Datei class C... javac D.java Java-Compiler - Dateien class class

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, R. Wolfinger 1 Vortragende Dr. Herbert Praehofer (G1 u. G2) Mag. Reinhard Wolfinger (G3 u. G4) Institute for System Software

Mehr

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter Die Programmiersprache Java Dr. Wolfgang Süß Thorsten Schlachter Eigenschaften von Java Java ist eine von der Firma Sun Microsystems entwickelte objektorientierte Programmiersprache. Java ist......a simple,

Mehr

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung

Grundlagen Internet-Technologien. Clientseitige Web-Programmierung Clientseitige Web-Programmierung mit JavaScript Version 1.1 3.5.2010 1 aktuelles 2 clientseitige Web-Programmierung verschiedene Ansätze JavaScript Java Applet Adobe Flash Microsoft Silverlight RIA: rich

Mehr

Kapitel 21 Nativer Code

Kapitel 21 Nativer Code Kapitel 21 Nativer Ali Jannessari IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Wann muss man verwalteten und nicht-verwalteten

Mehr

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

Inhalt I. Blick in die Geschichte. .NET für kleine und grosse Applikationen .NET für kleine und grosse Applikationen Ralf Günther Consultant HP Services April, 2003 Ralf.Guenther@hp.com DECUS Symposium 2003, Vortrag 1A05 Inhalt I. Blick in die Geschichte II. Was ist.net? III.

Mehr

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 02. Java was, wann, warum, wieso. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 02 Java was, wann, warum, wieso Java, eine objektorientierte Programmiersprache Java ist eine objektorientierte Programmiersprache und als solche ein eingetragenes Warenzeichen der Firma Sun Microsystems.

Mehr

Grundlagen der Programmierung UE

Grundlagen der Programmierung UE Grundlagen der Programmierung UE Research and teaching network GdP UE H. Prähofer, M Löberbauer 1 Vortragende Dipl.-Ing. Markus Löberbauer (G1) Dr. Herbert Praehofer (G2 u. G3) Institute for System Software

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Die Webtechnologien PHP und ASP.NET im Vergleich

Die Webtechnologien PHP und ASP.NET im Vergleich 20.1.2010 Vortrag zur Seminararbeit Die Webtechnologien PHP und im Vergleich Autor: Janina Jansen 1. Betreuer: Prof. Dr. Ing. Andreas Terstegge 2. Betreuer: Marion Brandt-Röhrig, M.A. Inhalt: Motivation

Mehr

Konzepte von Betriebssystem-Komponenten

Konzepte von Betriebssystem-Komponenten Konzepte von Betriebssystem-Komponenten Wilhelm.Haas@informatik.stud.uni-erlangen.de 11. Januar 2005 1 Einleitung Im Jahre 1998 lies Microsoft verlauten, dass sie mit der Entwicklung einer neuen Version

Mehr

Microsoft Visual Studio Code mit RPG und IceBreak

Microsoft Visual Studio Code mit RPG und IceBreak Microsoft Visual Studio Code mit RPG und IceBreak ( 2018 Markus A. Litters) Inhaltsverzeichnis 1. Vorwort... 2 2. Voraussetzungen und Installation... 3 3. Der erste Start... 4 4. Die IceBreak Erweiterung...

Mehr

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL3 Folie 1 Grundlagen Software steuert Computersysteme

Mehr

Einführung in die Programmierung mit Java

Einführung in die Programmierung mit Java Einführung in die Programmierung mit Java Martin Wirsing 2 Ziele Geschichte der OO-Programmiersprachen Warum Java als Programmiersprache verwenden? Ein einfaches Java-Programm erstellen, übersetzen und

Mehr

Microsoft.NET Framework

Microsoft.NET Framework Microsoft.NET Framework Anita Sosnecki Universität Bonn Institut für Informatik Seminar Softwaretechnologie WS 2003 Übersicht Einleitung Was ist.net?.net Framework.NET Komponenten Assemblies Deployment

Mehr

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

Mono - Hands On. Anwendungsentwicklung mit Mono und Gnome. Mario Manno Mono - Hands On Anwendungsentwicklung mit Mono und Gnome Mario Manno Chaos Computer Club Cologne e.v. http://koeln.ccc.de Mario Manno http://manno.name 25.06.2006 Vortrag Mario Manno (CCC) Mono - Hands

Mehr

Einführung in die Programmierung

Einführung in die Programmierung 1 Diese Vorlesung: Einführung in.net 2 Einführung in die Programmierung Sebastien Vaucouleur ETH Zurich Kurze (< 2 Stunden) Einführung in.net Was ist.net Geschichte von.net Mehrwert von.net Eiffel +.NET

Mehr

Institut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 1. Markus Reschke Java 1 Markus Reschke 06.10.2014 Überblick Einführung in die Programmierung zur Vereinfachung des Einstiegs ins Studium Erstellung von ausführbaren Programmen für den Computer Denk- und Vorgehensweisen

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Einführung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 04.10.2016 Technische Universität Braunschweig, IPS Überblick Organisatorisches Hello! 04.10.2016 Dr. Werner Struckmann / Stephan Mielke,

Mehr

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

DCOM und.net. B. Sc. Tobias Buchloh. Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover DCOM und.net B. Sc. Tobias Buchloh Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Informatik Universität Hannover 2004-12-21 Gliederung Motivation Einordnung (D)COM.NET

Mehr

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

Einführung in C# Teil 1. Matthias Nübling Einführung in C# Teil 1 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Empfehlenswerte Literatur

Empfehlenswerte Literatur Empfehlenswerte Literatur 1 Flanagan, David: Java in a Nutshell, O Reilly, UK, 2002 (50 ) Online Referenzen unter http://www.wi3.uni-erlangen.de/lehre/ http://java.sun.com http://www.javaworld.com/ Online

Mehr

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

Vorlesung AFCW, Microsoft.NET Wintersemester 2002/03. Völlig neue Systemstruktur als Antwort auf Java .NET Vorlesung Application Frameworks and Componentware Peter Sturm Universität Trier.NET Völlig neue Systemstruktur als Antwort auf Java Assembly = Komponente Zwischensprache (IL = Intermediate Language)

Mehr

Prof. Dr.-Ing. Dietrich Schröder GIS und Programmiersprachen: Wohin geht die Reise?

Prof. Dr.-Ing. Dietrich Schröder GIS und Programmiersprachen: Wohin geht die Reise? Prof. Dr.-Ing. Dietrich Schröder GIS und Programmiersprachen: Wohin geht die Reise? 1954 1960 1965 1970 1975 1980 1985 1990 1995 01 02 03 04 40 Jahre Programmierenausbildung im Studiengang VG Programmiersprachen

Mehr

2. Programmierung in C

2. Programmierung in C 2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten, Operatoren und Ausdrücke Anweisungen und Kontrollstrukturen (Steuerfluss)

Mehr

Seminar: Komponentenorientierte Softwareentwicklung und Hypermedia

Seminar: Komponentenorientierte Softwareentwicklung und Hypermedia Folie 1 Seminar: Komponentenorientierte Softwareentwicklung und Hypermedia Sebastian Heybach Daniel Böhner Folie 2 Übersicht Entstehung von.net CLR & MSIL XML und SOAP als Transportkontrolle JIT-Kompilation

Mehr

Moderne Entwicklungsumgebungen am Beispiel von.net

Moderne Entwicklungsumgebungen am Beispiel von.net Moderne Entwicklungsumgebungen am Beispiel von.net Prof. Dr. Walter F. Tichy Dipl.-Inform. Philip Pfaffe IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH

Mehr

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

Inhaltsverzeichnis. Grundlagen und Einführung (1. Band) 1 Inhaltsverzeichnis Grundlagen und Einführung (1. Band) 1 1 Einleitung und Vorwort 1 1.1 Vorwort zur 13. Auflage....................... 1 1.2 Vorwort zur 10. Auflage....................... 1 1.3 Voraussetzungen...........................

Mehr

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

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07, Web Services Vision: Web of Services Applikationen und Services Ralf Günther Compaq Computer GmbH, Köln Ralf.Guenther@compaq.com DECUS Symposium 2002, Vortrag 1K07, 16.04.2002 Web Services in the News

Mehr

4. Objektorientierte Programmierung mit C++

4. Objektorientierte Programmierung mit C++ 4. Objektorientierte Programmierung mit C++ Einführung C++ / Entwicklung/ Sprachfamilie Nicht objektorientierte Erweiterungen von C Grundlagen des Typkonzepts von C++ Ziele der Objektorientierung Objekt

Mehr

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1. Einführung Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Ein Zitat zu Beginn Vor der Wahl, ein theoretischer Physiker oder ein Programmierer

Mehr

ASP.NET - Entwicklerbuch

ASP.NET - Entwicklerbuch Holger Schwichtenberg ASP.NET - Entwicklerbuch Microsoft Press Begleittext Holger Schwichtenberg (Hrsg.) unter Mitarbeit von Sven Conrad, Thomas Gartner, Peter Krause, Oliver Scheer Microsoft ASP.NET -

Mehr

Kapitel 1: Einführung

Kapitel 1: Einführung Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 1: Einführung Folie 1 : Rückblick Entwicklung von Java begann etwa 1990 Erste öffentliche Version 1994 Erste große Anwendung:

Mehr

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen...

Dataport IT Bildungs- und Beratungszentrum. HTML- Grundlagen und CSS... 2. XML Programmierung - Grundlagen... 3. PHP Programmierung - Grundlagen... Inhalt HTML- Grundlagen und CSS... 2 XML Programmierung - Grundlagen... 3 PHP Programmierung - Grundlagen... 4 Java - Grundlagen... 5 Java Aufbau... 6 ASP.NET Programmierung - Grundlagen... 7 1 HTML- Grundlagen

Mehr

Praktische Informatik 1

Praktische Informatik 1 Praktische Informatik 1 Imperative Programmierung und Objektorientierung Karsten Hölscher und Jan Peleska Wintersemester 2011/2012 Session 2 Programmierung Begriffe C/C++ Compiler: übersetzt Quellcode

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen

Mehr

III.1 Prinzipien der funktionalen Programmierung - 1 -

III.1 Prinzipien der funktionalen Programmierung - 1 - 1. Prinzipien der funktionalen Programmierung 2. Deklarationen 3. Ausdrücke 4. Muster (Patterns) 5. Typen und Datenstrukturen 6. Funktionale Programmiertechniken III.1 Prinzipien der funktionalen Programmierung

Mehr

F A C H H O C H S C H U L E W E D E L S T U D I E N A R B E I T. Microsoft.NET Strategien und Konzepte

F A C H H O C H S C H U L E W E D E L S T U D I E N A R B E I T. Microsoft.NET Strategien und Konzepte F A C H H O C H S C H U L E W E D E L S T U D I E N A R B E I T in der Fachrichtung Medieninformatik Thema: Microsoft.NET Strategien und Konzepte Verfasst von: Verfasst im: Stephan Zuch Kleiner Schäferkamp

Mehr

im Rahmen des Seminars - Programmiersprachen Markus Nestvogel

im Rahmen des Seminars - Programmiersprachen Markus Nestvogel C# im Rahmen des Seminars - Programmiersprachen Markus Nestvogel 2 Gliederung 1. Einführung 2. Microsoft.NET 3. C# 3 1 Einführung objektorientierte Programmiersprache für Microsoft.NET entwickelt Konkurrenz

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

Mehr

Parallele und verteilte Anwendungen in Java

Parallele und verteilte Anwendungen in Java Rainer Oechsle Parallele und verteilte Anwendungen in Java ISBN-10: 3-446-40714-6 ISBN-13: 978-3-446-40714-5 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40714-5

Mehr

Studienarbeit von Jan Linxweiler WS 2003/2004

Studienarbeit von Jan Linxweiler WS 2003/2004 Studienarbeit von WS 2003/2004 Studienarbeit von WS 2003/2004 Institut für Computeranwendungen im Bauingenieurswesen Technische Universität Braunschweig 1. Aufgabenstellung 2. Microsoft.NET 3. Der FlowSim

Mehr

Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper

Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester 2018 Dipl.-Ing. (FH) Volker Schepper 1 Organisation Vorlesungstermine 7. März 2018 14. März 2018 21. März 2018 28. März 2018 4. April

Mehr

.NET und wieder eine Middleware Architektur?

.NET und wieder eine Middleware Architektur? .NET und wieder eine Middleware Architektur? Volker Birk CCC ERFA Ulm vb@ebios.de Volker Birk, vb@ebios.de 1 .NET na und?.net soll die Architektur im Internet werden meint Microsoft. Genau so wie Windows?.NET

Mehr

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick Vorlesung Objektorientierte Softwareentwicklung Sommersemester este 2008 Kapitel 0. Java-Überblick Was sind die Ziele? Warum Java? Komplexe Anwendungen e-business verteilt zuverlässig sicher mobil persistent

Mehr

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke. 31.03.2003 J.M.Joller 1

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke. 31.03.2003 J.M.Joller 1 Web Services XML, WSDL, SOAP und UDDI Einblicke und Ausblicke 31.03.2003 J.M.Joller 1 Inhalt Architekturen Main Stream.NET J2EE und Applikations-Server Sicht der Anbieter Java J2EE J2EE versus.net Web

Mehr

Modellierung und Programmierung 1

Modellierung und Programmierung 1 Sinn der Übung: Vertiefung des Vorlesungsstoffes Vorbereitung zum Lösen der Übungsaufgaben Besprechung der Lösungen nach Abgabe Materialien: https://www.informatik.uni-leipzig.de/~stjaenicke/mup1/ Einschreibung

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Java Einführung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 04.10.2017 Technische Universität Braunschweig, IPS Überblick Organisatorisches Arbeitsablauf Hello World 04.10.2017 Dr. Werner Struckmann

Mehr

- dynamisches Laden -

- dynamisches Laden - - - Fachbereich Technik Department Elektrotechnik und Informatik 21. Juni 2012 1/23 2/23 s dynamisch Code kann von mehreren Programmen genutzt werden => kleinere Programme einzelne Teile eines Programms

Mehr

Algorithmen versus Programmiersprachen

Algorithmen versus Programmiersprachen Coma I Einleitung Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen Literaturhinweise Computer und Algorithmen Programmiersprachen Algorithmen versus Programmiersprachen

Mehr

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -

n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 - n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information

Mehr

Microsoft.NET Framework- Programmierung

Microsoft.NET Framework- Programmierung Jeffrey Richter Microsoft.NET Framework- Programmierung Microsoft Press Danksagungen Einführung Bestandteile der Microsoft.NET-Initiative Ein Betriebssystem als Basis: Windows Nützliche Produkte: Die.NET

Mehr

1.1 Das.NET-Framework Was bringt.net? Unterschiede zu Java Weiterführende Literatur Überblick...

1.1 Das.NET-Framework Was bringt.net? Unterschiede zu Java Weiterführende Literatur Überblick... xiii 1 Was ist.net? 1 1.1 Das.NET-Framework... 2 1.2 Was bringt.net?... 10 1.3 Unterschiede zu Java... 12 1.4 Weiterführende Literatur... 14 2 Die Sprache C# 15 2.1 Überblick... 15 2.2 Symbole... 20 2.3

Mehr

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

2.1 Visual C Express installieren Visual C Express starten Visual C Express registrieren... Datei: 5220_A02Inhalt.doc, Seite3 15. September 2010 Teil I Erste Schritte 1 Einleitung.... 9 1.1 Was Sie erwartet und was Sie nicht erwartet.... 9 1.2 Wie die Kapitel aufgebaut sind.... 10 1.3 Beispieldateien....

Mehr

Dominik Doerner, Jonathan Bechtle ESCde

Dominik Doerner, Jonathan Bechtle ESCde Dominik Doerner, Jonathan Bechtle ESCde Kursübersicht Einführung in ASP.NET Core 01 Was ist ASP.NET Core? 02 Startup und Middleware 03 Wie funktioniert MVC? 04 Debugging und Logging Trainer Dominik Doerner

Mehr

Moderne Entwicklungsumgebungen am Beispiel von.net

Moderne Entwicklungsumgebungen am Beispiel von.net Moderne Entwicklungsumgebungen am Beispiel von.net Prof. Dr. Walter F. Tichy Dipl.-Inform. Korbinian Molitorisz Ma. Sc. Ali Jannesari IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von

Mehr

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

Technische Universität München. Thomas Kofler. Oktober 2013 Thomas Kofler Oktober 2013 Motivation für.net Unzulänglichkeiten des Component Object Models (DLL-Hell: DLLs werden im Windows-Verzeichnis abgelegt. Nur beschränkte Möglichkeit versch. Versionen zu verwalten.

Mehr

Web-based Engineering. SPS-Programmierung in der Cloud

Web-based Engineering. SPS-Programmierung in der Cloud Web-based Engineering SPS-Programmierung in der Cloud Dortmund, 15.02.2017 Einleitung Seite 2 Zeitreise: Back to the Future - 1992 Was wissen Sie noch aus diesem Jahr? Persönlich, Politk, Sport, etc Technik

Mehr

Enterprise Application Integration Erfahrungen aus der Praxis

Enterprise Application Integration Erfahrungen aus der Praxis Enterprise Application Integration Erfahrungen aus der Praxis Teil 4: EAI und.net, EAI und J2EE Tutorial NODs 2002, Wolfgang Keller and Generali 2001, 2002, all rights reserved 1 Überblick EAI und....net

Mehr

Die Klasse Vertiefung

Die Klasse Vertiefung Die Klasse Vertiefung Vom Objekt zur Klasse Basis des OO-Paradigmas ist (wen verwundert es): Das Objekt Objekte werden in der Lehre und im allgemeinen Programmier-Jargon selbstverständlich mit Klassen

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dr. Thomas Scheidl Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz scheidl@pervasive.jku.at Java Einführung Java

Mehr