.NET Framework. 3. Das.NET Framework

Ähnliche Dokumente
Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

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

Die ersten C#- Programme erstellen

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

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

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Vorlesung Informatik II

Lokale Installation von DotNetNuke 4 ohne IIS

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Java Einführung Programmcode

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Interoperabilität mit Office-Anwendungen (1)

HTBVIEWER INBETRIEBNAHME

Vorkurs Informatik WiSe 15/16

Grundlagen von Python

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Programmieren in Java

Prinzipien Objektorientierter Programmierung

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

4D Server v12 64-bit Version BETA VERSION

Installationsanleitung

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

SJ OFFICE - Update 3.0

Office Objektmodell (1)

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Erste Schritte mit Sharepoint 2013

Applications Applets (eingeschränkte Rechte)

Java: Vererbung. Teil 3: super()

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Konzepte von Betriebssystem-Komponenten

.NET Code schützen. Projekt.NET. Version 1.0

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

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

Anwenderdokumentation PersoSim

VB.net Programmierung und Beispielprogramm für GSV

Seite Seite 2

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

SRH Hochschule Heidelberg

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 17: 3-Schichten-Architektur 2

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Anwenderhandbuch logiware IO-Stick

Einführung in Eclipse und Java

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Vorkurs C++ Programmierung

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

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

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

4. Objektorientierte Programmierung mit C++

Präsentation Von Laura Baake und Janina Schwemer

CADEMIA: Einrichtung Ihres Computers unter Windows

Web Engineering.

Beschreibung einer Musterkonfiguration für PBS-Software in einem WINDOWS 2003 Netzwerk - Rel. 2 (mit NPL Runtime Package Rel. 5.

1. Formulieren Sie den Algorithmus <Bedienung eines Getränkeautomaten> nach den oben genannten Kriterien.

CL-Mini-ABF. Kurzbeschreibung. Installation und Vorbereitung. Stand Ihre HTK-Filiale Michelstadt

Kurzanweisung für Google Analytics

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Kurzfassung der Studienarbeit

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Dokumentenmanagement mit hyscore

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

1. Voraussetzungen Windows Mac Installation Rechte Sicherheitseinstellungen Aufruf des Editors 3

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Vorlesung Objektorientierte Softwareentwicklung. Kapitel 0. Java-Überblick

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Updatehinweise für die Version forma 5.5.5

Einspielanleitung für das Update DdD Cowis backoffice DdD Cowis pos

Anleitung IPSec VPN. Datum: Version: 1.1. Gültig ab: Ablage:

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Access Grundlagen für Anwender. Susanne Weber. 1. Ausgabe, 1. Aktualisierung, Juni 2013

C# im Vergleich zu Java

Gesicherte Prozeduren

Archiv - Berechtigungen

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

INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

AKTUEL ZU JAVA 8 PROGRAMMIEREN IN JAVA. 7. Auflage. Im Internet: Alle Beispielprogramme und Lösungen

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

Collax VPN. Howto. Vorraussetzungen Collax Security Gateway Collax Business Server Collax Platform Server inkl. Collax Modul Gatekeeper

Virtueller Campus. Virtueller Campus Horw mit interaktiver Steuerung. HowTo: Externe Bibliotheken

SEP 114. Design by Contract

Javakurs 2013 Objektorientierung

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

Perceptive Document Composition

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Arbeiten mit den Mastercam Werkzeug-Managern

Transkript:

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 verwendbar zu machen - es enthält - Laufzeitsystem mit - automatischer Speicherbereinigung - Sicherheitsmechanismen - Versionierung - Interoperabilität zwischen verschiedenen Programmiersprachen - objektorientierte Klassenbibliotheken - ist ein aufeinander abgestimmtes Ensemble von Bibliotheken, Betriebssystemkomponenten, Werkzeugen und Servern Komponenten & Frameworks Seite 1

Das.Net Framework.NET Framework Anwendung (C#, J#, VB.NET, Managed C++,...) Klassenbibliothek (Base Class Library) ASP.NET ADO.NET Web-Services... Laufzeitumgebung (Common Language Runtime) Garbage-Collection Sicherheit Jit-Compiler... Betriebssystem Komponenten & Frameworks Seite 2

Base Class Library - System.Collections Klassen zur Verwaltung von Sammlungen von Objekten - System.IO Klassen zur Ein- und Ausgabe - System.Threading Mechanismen für die parallele Programmierung - System.Net Klassen zur Unterstützung der Netzwerkprogrammierung - System.Reflection Erlaubt Zugriff auf Typinformationen von Programmen - System.Windows.Forms Klassen zur Behandlung grafischer Benutzerschnittstellen, erstellen per Drag and Drop möglich Ersetzt die bisherige MFC Komponenten & Frameworks Seite 3

3.2 Hello World - von der Codierung(C#) zur Ausführung 3.2.1 Codierung Aufgabenstellung: Erstellen eines Programms, das den Text Hello World auf der Console ausgibt. class HelloWorld { static void Main(string[] args) { System.Console.Write("Hello World!"); System.Console.Read(); } } Komponenten & Frameworks Seite 4

Das Programm - besteht aus der Quellcode-Datei - enthält eine (oder mehrere) Klassen (hier: HelloWorld) (Klassenname muss nicht dem Dateinamen entsprechen) - Beim Starten des Programms wird die statische Funktion Main gesucht und aufgerufen static void Main(string[] args) Die Methode Main - in jeder C# Anwendung muss es eine Main-Methode geben - Main kann in einer beliebigen Klasse definiert sein - Main muss static (Klassenmethode) sein - Kann einen int-wert zurückgeben (Batch-Verarbeitung) - Kann Befehlszeilenargumente auswerten - Kann in mehreren Klassen vorkommen, Auswahl der auszuführenden Main-Funktion erfolgt über Compileraufruf csc datei.cs /main:namensbereich.klassenname Komponenten & Frameworks Seite 5

Die Klasse - sämtliche Funktionen müssen innerhalb einer Klasse definiert werden - es gibt keine globalen Funktionen - Deklaration und Definition von Methoden erfolgt innerhalb der Klasse (abweichend zu C++) - Schlüsselwort class{...} - Elemente einer Klasse werden später besprochen, dies sind u.a. Felder, Methoden, Konstanten, Propertys, Ereignisse, Indexer, Operatoren, Konstruktoren, Destruktoren - Klassen sowie deren Elemente können mit Attributen versehen werden (deklarative Programmierung) Die Funktionen Write und Read - sind im Namespace System in der Klasse Console definiert - sind statische Methoden Komponenten & Frameworks Seite 6

3.2.2 Compilierung - Die.Net Compiler, der verschiedenen.net Sprachen, generieren keinen lauffähigen Binärcode sondern CIL (Common Intermediate Language) Code - CIL ist assemblerartiger Code - aus jeder beliebigen.net Sprache wird CIL erzeugt - Voraussetzungen für Interoperabilität - gemeinsames Typsystem CTS (Common Type System) - Definition minimaler Sprachanforderungen für.net Sprachen CLS (Common Language Specifikation) -.Net Sprachen: C#, Visual Basic, Managed C++, Fortran, Eiffel, Java, Oberon, Perl,... - Der Assembler ILASM ermöglicht es in.net Anwendungen direkt in MSIL zu schreiben - Der Disassembler ILDASM kann den Code disassemblieren Näheres zu CTS und CLS siehe: Kapitel Typen Komponenten & Frameworks Seite 7

Compilieren des Programms C#-Quelltext + Visual C#.NET- Compiler = Metadaten Intermediate Assembly Language Assembly Komponenten & Frameworks Seite 8

Disassemblierung (der.exe bzw.dll) mit ILDASM Das Manifest beschreibt die Assembly (entspricht Inhaltsverzeichnis) Komponenten & Frameworks Seite 9

Das Manifest - enthält Namen und Versionsnummer einer Assembly - enthält Informationen über Assemblies von denen die aktuelle Assembly abhängt - enthält die Informationen über die Typen der Assembly - Sicherheitsrichlinien.Net Security - Rollenbasierte Sicherheit - Codebasierter Sicherheit - ermöglicht im Vergleich zu COM-Komponenten den Verzicht der Registrierung, sowie mehrere Versionen einer Assembly - einfacher Copy-Befehl ermöglicht Verwendung einer Assembly Komponenten & Frameworks Seite 10

Komponenten & Frameworks Seite 11

MSIL-Code der Hello-World Anwendung MSIL-Code der Main-Funktion Komponenten & Frameworks Seite 12

Die Assembly - ist eine logische Gruppe von Dateien: Module und Ressourcedateien - kleinste Einheit für Wiederverwendbarkeit, Sicherheit und Versionsverwaltung (siehe: starker Namen) - hat genau ein Manifest, das die Dateien aus denen die Assembly besteht beschreibt - alle.net-binärdateien, die in Laufzeitschicht laufen sollen, bestehen aus einer (mehrere) Assembly - Beim Kompilieren eines C# Programms wird automatisch Assembly erstellt - Assembly kann signiert (privater öffentlicher Schlüssel, Projekt Eigenschaften Signierung) werden und erhält eindeutigen (starken) Namen - Zum Erstellen einer DLL ist der Schalter /t:library zu verwenden (Neu Projekt Klassenbibliothek) Komponenten & Frameworks Seite 13

Die Assembly - Module werden mit dem Kompilerschalter /t:module erstellt und enthalten kein Manifest (DLL ohne Manifest) (siehe: [Beer] S.153 ff.) - Zur Verwendung muss ein Modul in eine Assembly aufgenommen werden - Eine Assembly kann aus mehreren Dateien zusammengesetzt werden - Manifest enthält die Versionsangaben der Assembly d.h. es können gleichzeitig unterschiedliche Versionen verwendet werden (Keine DLL-Hölle) Komponenten & Frameworks Seite 14

3.2.3 Ausführen der Assembly CLR (Common Language Runtime) - ist Laufzeitumgebung unter der Assemblies ausgeführt werden - basiert auf einer virtuellen Maschine - ist ein Just-in-time-compiler - jede Methode wird beim ersten Aufruf in vorliegenden Maschinencode übersetzt, der bei nachfolgenden Aufrufen verwendet wird - Maschinencode wird nach Programmende verworfen - es besteht die Möglichkeit, Maschinencode komplett erzeugen zu lassen Komponenten & Frameworks Seite 15

3.3 Verteilte Anwendungen in.net (Übersicht) -.NET Remoting - ersetzt DCOM - ist die ideale Wahl für Intranet Szenarien - effiziente Technologie, binäre Kanäle möglich - WebServices (siehe:wcf) - geeignet für Internetanwendungen - Plattform-, Sprachen- und Betriebssystem übergreifend - geeignet für zustandslose Lösungen - pro Klientenaufruf: Webservice erstellen und zerstören - weit weniger performant als.net Remoting - ASP.NET (Active Server Pages) - Klient ist ein Webbrowser der HTML-Seiten erhält - basiert auf dem ASP-Worker-Prozess - wie bei WebServices, bei jedem Aufruf Webseiten-Objekt erstellen und anschliessend wieder zerstören - Unterschied zu Webservices: Webservices benötigen eine Anwendung die diese verwendet Komponenten & Frameworks Seite 16