Seminar: Komponentenorientierte Softwareentwicklung und Hypermedia



Ähnliche Dokumente
4D Server v12 64-bit Version BETA VERSION

.NET Framework. 3. Das.NET Framework

Einführung in Eclipse und Java

C# im Vergleich zu Java

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

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Was ist neu in Sage CRM 6.1

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

Installation der SAS Foundation Software auf Windows

Lizenzierung von System Center 2012

Die ersten C#- Programme erstellen

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Citrix-Freigabe Sage Office Line Evolution 2012

Präsentation Von Laura Baake und Janina Schwemer

DocuWare unter Windows 7

VB.net Programmierung und Beispielprogramm für GSV

Robot Karol für Delphi

Microsoft.NET und SunONE

Installationsleitfaden zum Fakturierungsprogramm

Übungen zur Softwaretechnik

Installationsanleitung. ipoint - Server

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Installieren von Microsoft Office Version 2.1

Thin versus Fat Clients

Systemvoraussetzungen

OLXTeamOutlook 1.5 für Outlook 2003, 2002/XP, 2000 und 97/98

Version 0.3. Installation von MinGW und Eclipse CDT

1 Einleitung. Lernziele. Symbolleiste für den Schnellzugriff anpassen. Notizenseiten drucken. eine Präsentation abwärtskompatibel speichern

Office in Java. 2. Info-Point Urs Frei

Die Orgadata AG ist ein stark expandierendes Software-Unternehmen aus Leer. Mit unserem System LogiKal

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Workshop: Eigenes Image ohne VMware-Programme erstellen

Thema: Microsoft Project online Welche Version benötigen Sie?

Objektorientierte Programmierung

Adminer: Installationsanleitung

2. Installation unter Windows 8.1 mit Internetexplorer 11.0

Anwenderdokumentation PersoSim

bizsoft Rechner (Server) Wechsel

Ein mobiler Electronic Program Guide für Android

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Windows 8 Lizenzierung in Szenarien

Windows Server 2008 (R2): Anwendungsplattform

Betriebshandbuch. MyInTouch Import Tool

Anwenden eines Service Packs auf eine Workstation

ITF2XML. Transferservice. Version 1.1. Tel.: 044 / Fax: 044 / CH-8005 Zürich

Updatehinweise für die Version forma 5.5.5

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

Programmieren in Java

Objektorientierte Programmierung OOP

CORBA. Systemprogrammierung WS

Perceptive Document Composition

Herzlich Willkommen bei der nfon GmbH

Interoperabilität mit Office-Anwendungen (1)

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

Herbert Penke GFAhnen 8.0 unter Windows Vista

Stepperfocuser 2.0 mit Bootloader

ELOoffice. Netzwerkinstallation. Software für Dokumentenmanagement und Archivierung. September ELO Digital Office GmbH.

Installationsanleitung

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

Übung: Verwendung von Java-Threads

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Installation und Inbetriebnahme von Microsoft Visual C Express

Java Entwicklung für Embedded Devices Best & Worst Practices!

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

System-Update Addendum

Microsoft.NET Framework

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

Netzwerkinstallation Version / Datum / Modul Arbeitsplatz+ 1 von 5

QUICK INSTALLATION GUIDE

Installieren Sie zuerst die Software bevor Sie die Sonde an den PC anschließen!

OP-LOG

Tips, Tricks und HOWTOs Virtualisierung für Profis und Einsteiger Serverkonsolidierung, Testumgebung, mobile Demo

Kurzfassung der Studienarbeit

1 Dokumentenmanagement

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Cisco AnyConnect VPN Client - Anleitung für Windows7

Pakete dienen dazu, die Software eines Projektes in größere inhaltlich zusammengehörige Bereiche mit eigenem Namen einzuteilen (siehe Java API).

Step by Step Webserver unter Windows Server von Christian Bartl

0. Einführung. C und C++ (CPP)

Konzepte von Betriebssystem-Komponenten

ArcObjects-Programmierung mit Delphi. Marko Apfel, Team Entwicklung

Step by Step Remotedesktopfreigabe unter Windows Server von Christian Bartl

Benutzerhandbuch MedHQ-App

Clients in einer Windows Domäne für WSUS konfigurieren

PC Software PPS-FM11 Windows Auswertung und Monitor BDE Betriebsdatenerfassung mit Terminals, RFID und SQL Client

Tutorium Informatik 1. Aufgabe 2: Formatierte Ein- und Ausgabe

Transkript:

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 Assemblies Die.NET-Klassenbibliothek Remoting Aussichten für die Zukunft 1

Folie 3 Entstehung von.net Ursprünglichen Entwicklungsnamen: COM 2.0 NGWS (Next Generation Windows Services) IT-Welt strebt nach Komfortabilität und Standardisierung Beispiel Windows: Verwaltung von Treibern Maus- Druckerunterstützung Ähnlich bei.net Zusammenfassung vieler Funktionen Folie 4 Entstehung von.net Reaktion auf eine veränderte Hardwarewelt, kleinere leistungsfähigere Hardware PDAs Handhelds eingebettete Systeme (Videorecorder etc.) Smartphones Zunehmende Vernetzung Applikationen arbeiten verteilt nicht monolithisch auf einem Rich Client Server stellt Komponenten bereit, Thin Clients bedienen sich 2

Folie 5 Entstehung von.net Neue Vermarktung von Software Kein Verkauf als Einzelprodukt Zugriff auf einzelne (entfernte) Komponenten, Abrechnung nach Gebrauch Dauer Umfang Nutzungsfrequenz Abonnement Stichwort Outsourcing von Funktionalität TCO (Total Cost of Ownership) senken Software kostengünstiger und besser wartbar Folie 6 Entstehung von.net Breiter werdende Hardwarelandschaft erfordert einheitliche Programmierschnittstelle Steigende Komplexität vorhandener Microsoft-Lösungen wie Win32API, COM oder ASP Komplexität API DDE COM OLE Automation OCX ActiveX DCOM COM+.NET 1990 1993 2000 Zeit 3

Folie 7 Entstehung von.net Sun vertritt die Strategie der sprachlichen Monokultur: Alle sollen mit Java programmieren keine Interoperabilitätsprobleme Strategie nicht durchsetzbar C++ und VB häufigst genutzten Programmiersprachen Microsoft erkennt Pluralität des Sprachmarktes an Jede Programmiersprache hat ihre Vor- und Nachteile Problemabhängige Eignung Forderung an.net Plattformunabhängigkeit Sprachunabhängigkeit Folie 8 CLR & MSIL Hochsprache: Abstraktion von der zugrunde liegenden Maschinensprache Compiler übernimmt Umwandlung Zwischenschaltung einer Virtual Machine: Compiler erstellt in Maschinen-C. der VM um Anschließend Umwandlung in Maschinencode der Hardware Bei.NET: Bildung einer Runtime (Common Language Runtime): Stellt Dienste (Speicherverwaltung, Funktionsbibliotheken etc.) Common : versteht sämtlicher 4

Folie 9 CLR & MSIL Durch Kompilation von Quellcode in entsteht MSIL- (Microsoft Intermediate Language), kurz IL Im IL- Metadaten über sich selbst und zum Ablauf benötigte Komponenten gespeichert im Manifest [Beispiel 1 Hello World in C#, VB.NET und die MSIL-s] CLR wandelt Zwischencode in prozessorspezifischen (Native ) CLR kann nicht zwischen unterscheiden Sprachintegration Folie 10 XML und SOAP als Transportkontrolle Kommunikation stark entkoppelter Systeme immer mehr via XML als Datenformat SOAP als Träger für entfernte Methodenaufrufe definiert: Endpunkt Methodenname Parameter Übersetzung des Resultats in XML SOAP als kleinster gemeinsamer Nenner bei dieser Kommunikation 5

Folie 11 Plattformübergreifende Kommunikation erfordert neben einheitlichem Transportformat ein einheitliches Typsystem Bisher nicht der Fall String in C/C++: Abschluß mit 0-Byte String in Delphi: vorangestelltes Längenbyte Typsystem primitive Typen: Ganzzahlen, Wahrheitswerte etc. komplexe Typen: Strukturen, Felder, Klassen etc. Folie 12 Verwirklichung mit dem (Common Type System) Keine.NET-Sprache bringt ihr eigenes Typsystem mit Sie implementieren das, bzw. Untermenge daraus, das CLS (Common Language Specification) Verschiedene Namen der CLS-Typen in den In IL gleiche Bezeichnung [Beispiel 2 Typisierung in IL] 6

Folie 13 ermöglicht sprachübergreifende Nutzung von Objekten anderer Sogar sprachübergreifende Vererbung ist möglich [Beispiel 3 Vererbung zwischen ] Folie 14.NET ist ohne Einschränkung objektorientiert Datentypen (auch primitive) erben von System.Object Referenztypen Werttypen performanter, da keine Dereferenzierung Unterscheidung in.net zwischen Wert- und Referenztypen Werttypen erben von System.ValueType und damit nur indirekt von System.Object z. B. Primtivtypen, Strukturen und Enumerations Gesonderte Behandlung durch die CLR Ablage auf dem Stack oder innerhalb von Referenztypen auf dem Heap 7

Folie 15 struct Artikel { int Nummer; float Preis; } class Kunde { int Nummer; Artikel letzterartikel; }... int j; j = 2004; Artikel a; a.nummer = 999; a.float = 13.5; Kunde k; k.nummer = 43; k.letzterartikel.nummer = 998; k.letzterartikel.preis = 18.99; j a k Stack Heap 2004 999 13.5 43 998 18.99 Folie 16 Keine Einschränkung für Werttypen hinsichtlich objektorientierter Behandlung Console.WriteLine(1.41421356.ToString()); int i; i. 8

Folie 17 Erzwingung der Behandlung von Werttypen als Referenztypen Boxing Vergleichbar mit Java-Wrapperklassen Folie 18 Stack Heap int i = 77; object o; o = i; 77 77 9

Folie 19 In C/C++ Funktionszeiger nicht kontrollierbar, ob wirklich Verweis auf richtige Funktion Lösung in.net mit typisierten Funktionszeigern (Delegates) Kontrolle über richtige Parameter und Rückgabe [Beispiel 4 Delegates] Folie 20 Mehrfachzuweisung an Delegate-Variable möglich delegate void OnClickHandler(object eventsource); OnClickHandler clickevent; void button1_onclick(object eventsource) {...} void textbox1_onclick(object eventsource) {...}... clickevent += new OnClickHandler(button1_OnClick); clickevent += new OnClickHandler(textbox1_OnClick); clickevent(this); 10

Folie 21 Übersicht Entstehung von.net CLR & MSIL XML und SOAP als Transportkontrolle JIT-Kompilation Assemblies Die.NET-Klassenbibliothek Remoting Aussichten für die Zukunft Folie 22 JIT-Kompilation Übersetzung eines Hochsprachenprogramms in Maschinencode auf dem System des Anwenders Vorteil: optimierung für jede Zielplattform Just in Time-Kompilation: PreJIT: Kompilation bei der Installation JIT: Bei Aufruf (Standard in.net) Option EconoJIT: schnellstmöglich, keine optimierung Kaum Verzögerung durch Bedarfskompilation von Methoden Höhere Sicherheit, bei jeder Kompilation Prüfung des Benutzers und der benötigten Komponenten (Managed ) 11

Folie 23 JIT-Kompilation C#- Quellcode VB.NET- Quellcode Anderer Quellcode C#- Compiler VB.NET- Compiler Anderer Compiler Entwicklung MSIL JIT-Compiler Laufzeit Ausführbarer Folie 24 Assemblies Assemblies: Ergebnis der Kompilierung eines Projekts evtl. mit mehreren Quelldateien ergibt eine ausführbare Datei (Assembly), dll oder exe dll = exe ohne Einstiegspunkt, dll benötigt exe als Host Bisher: COM stellt Funktionen global bereit dll-hölle durch COM-Prinzip zentral verwaltete Metadaten in der Registry neue COM-Komponenten können alte überschreiben Versionskonflikte, Beeinträchtigung anderer Anwendungen Undurchschaubarkeit 12

Folie 25 Assemblies Rückkehr zum C-Prinzip, benötigte dll-datei (Assembly in.net) liegt im selben Verzeichnis wie Programm Weiterhin globale Komponenten im GAC (Global Assembly Cache) Im GAC mehrere Versionen einer Assembly möglich Suchreihenfolge der.net-clr nach Assemblies eigenes Verzeichnis GAC (Shared Assemblies) Assemblies im eigenen Verzeichnis = Private Assemblies für andere Anwendungen nicht sichtbar Wegfall der globalen Registrierung Redundanz, aber größere Sicherheit & Stabilität Folie 26 Assemblies Wie werden Assemblies vor Namenskonflikten und Sabotage geschützt? Normaler Verweis: nur durch Dateiname ohne Erweiterung Lösung: Strong Names Dateiname, Version, Schlüssel (& Kulturinformation) Ablage des Schlüssels der benutzten Assembly im eigenen Manifest Public-Key-Verfahren Überprüfung der Authentizität beim Laden des Programms.assembly extern mscorlib {.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ).ver 1:0:5000:0 } //.z\v.4.. 13

Folie 27 Die.NET-Klassenbibliothek Auch FCL (Framework Class Library) oder BCL (Base Class Library) Im.NET Framework enthalten Version 1.1: 2303 öffentliche Klassen Version 2.0: 3913 öffentliche Klassen (noch nicht veröffentlicht) Einige der Klassen gemäß Standard 335 oder CLI (Common Language Infrastructure) der ECMA (European Association for Standardizing Information and Communication Systems) Allen stehen diese objektorientierten Basisklassendienste in gleicher Weise zur Verfügung Ersetzung der einzelnen Standardbibliotheken durch eine einzige Folie 28 Die.NET-Klassenbibliothek FCL verteilt auf mehrere Shared Assemblies (im GAC) FCL bietet Funktionen z. B. für Zugriff auf Dateisystem Anzeige von Fenstern Druck Remoting Serialisierung Grafik Datenbankzugriff FCL stellt Dienste zur Verfügung ähnlich wie die Java-Klassenbibliothek 14

Folie 29 Remoting Für Anwendungen die über mehrere Rechner verteilt sind Im Gegensatz zu WebServices eher für ein lokales Netz WebServices benötigen einen WebServer und sind für breite Nutzerschicht über das Internet Remoting leichtgewichtiger, jeder Rechner auf dem Server- Anwendung läuft, kann als Host dienen einfache Intranet-Technologie Nachrichtenaustausch in serialisierter Form (bestimmt durch Formatter) über Channels [Beispiel 5 Remoting] Folie 30 Für Microsoft sprachliche Pluralität wichtig Viele Einige wichtige werden hier weiter erläutert 15

Folie 31 C# gehört zur C/C++ Familie viele Eigenschaften von Java geerbt Neuentwicklung und keine Weiterentwicklung C++, da C++ zu komplex geworden und.net-sicherheitsund Stabilitätskonzept ausgehebelt würden Standard.NET-Sprache.NET Framework in C# entwickelt Folie 32 Visual Basic.NET Noch viele VB6-Programmierer, daher entstand VB.NET Diskussion, ob Standardsprache, aber Ruf von VB Unprofessionalität Kompatibel zu VB6 (Wizard für Portierung), einige Konstrukte nicht, oder sind nicht mehr.net-zeitgemäß Ersetzung der Standardbibliotheken durch die FCL Im Gegensatz zu VB6 komplett objektorientiert, mit Features wie Polymorphie, Überladen und Vererbung 16

Folie 33 Visual Basic.NET VB.NET Neuentwicklung mit Syntax-Ähnlichkeit zu VB6 VB.NET soll RAD-Sprache werden (Rapid Application Development) Automatisierung von wiederkehrenden, zeitaufwändigen Teilaufgaben Folie 34 J# Ursprünglich Java als Standardsprache für.net geplant Rechtsstreit mit Sun Verbot für Java-Implementationen in.net C# wurde zur Standardsprache Beilegung des Streites Oktober 2001 Microsoft Java-Implementation J# Microsoft-Strategie Entwickler zum Wechsel zu bringen JUMP to.net (Java User Migration Path to Microsoft.NET) 17

Folie 35 J# Keine Erzeugung von Java Byte sondern MSIL Voll kompatibel bis auf RMI (Remote Method Invocation) JNI (Java Native Interface) Applets System.Console.WriteLine("FCL oder JCL"); oder System.out.println("FCL oder JCL"); [Beispiel 6 Kompatibilität J# Java] Folie 36 VC++ 7.0 Anders als alle anderen Produziert standardmäßig prozessorabhängigen 100% kompatibel zu VC++ 6.0 Verbesserte MFC Durch Managed Extensions Integration in.net Auslaufendes Modell C# Kernsprache Anwendung in systemnahen, performanceorientierten Programmierungen für Gerätetreiber und High-Speed-Algorithmen Unmanaged- durch Nichtbenutzung der FCL 18

Folie 37 Andere Sprachen JScript.NET von Microsoft zur Portierung von JScript-Seiten Delphi for.net von Borland Eiffel von ISE Inc. COBOL von Fujitsu Software Corporation Oberon von der ETH Zürich Erleichterung der Sprachwahl durch die FCL Basisdienste in allen gleich Folie 38 C# Quellcode VB.NET Quellcode Anderer.NET Quellcode C++ Quellcode andere nicht.net-fähige Sprache C# Compiler VB.NET Compiler Compiler VC++ Compiler 7.0 Compiler Managed Managed Managed Managed Unmanaged Assemby in IL- (Managed ) Assemby in IL- (Managed ) Assemby in IL- (Managed ) Assemby in IL- (Managed ) JIT Native Native Native Native Native Native Betriebssystem 19

Folie 39 Aussichten für die Zukunft Lauffähigkeit unter jetzigen & zukünftigen Windows Versionen (wie 64 Bit) steht außer Frage Bisher keine echte Plattformunabhängigkeit Entscheidend wie Umgang mit Unix-Gemeinde, Gerüchte: Begrenztes Framework für Unix ASP.NET auf Apache-Servern Projekte für freie.net Implementationen z. B. www.go-mono.com Erst dann global echte Konkurrenz für Java C# liegt als Standard bei der ECMA vor C# wäre erste Sprache auf anderen Betriebssystemen C#: Weiterentwicklung professioneller Sprachkonstrukte wie Templates Folie 40 20