Einführung in Microsoft.NET



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

und die Programmiersprache C# Marcel Kulicke Mirijam Joka Sokenou

.NET Framework. 3. Das.NET Framework

Grundlagen von Python

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

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

Konzepte von Betriebssystem-Komponenten

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

Microsoft.NET Framework

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

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Step by Step Webserver unter Windows Server von Christian Bartl

Java Einführung Packages

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

4. Fortgeschrittene.NET-Techniken

Lokale Installation von DotNetNuke 4 ohne IIS

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

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

Office Objektmodell (1)

TwinCAT HMI Application

Installation der SAS Foundation Software auf Windows

.Net Security. Proseminar Objektorientiertes Programmieren mit.net und C# Sabahattin Giritli. Institut für Informatik Software & Systems Engineering

Smap3D PDM 10. Installation. Stand-Alone-Migration-Analyzer

Version 0.3. Installation von MinGW und Eclipse CDT

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

.NET Security. Proseminar Objektorientiertes Programmieren mit.net und C# Bulwahn Julian. Institut für Informatik Software & Systems Engineering

Kurzfassung der Studienarbeit

Installation SelectLine SQL in Verbindung mit Microsoft SQL Server 2012 Express with management tools

Installation von horizont 4 bei Verwendung mehrerer Datenbanken

Installationsbeschreibung Flottenmanager 7.1

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Installation SelectLine SQL in Verbindung mit Microsoft SQL Server 2014 Express with management tools

Microsoft.NET und SunONE

Dokumentation: Erstellung einer Content App für Windows 8

Installation Wawi SQL in Verbindung mit Microsoft SQL Server 2008 R2 Express with management Tools

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

Linux PDA und mono. Präsentation im Rahmen der Veranstaltung Anwendungen 1. 7/12/05 Mirco Gerling Linux PDA und mono 1

Interoperabilität mit Office-Anwendungen (1)

Comtarsia SignOn Familie

Visual Basic Express Debugging

C# im Vergleich zu Java

Grundlagen und Best Practices bei der SharePoint Entwicklung

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

FAQ zur Steuerungstechnik

Tutorial Windows XP SP2 verteilen

Übung: Verwendung von Java-Threads

Installationsanleitung WibuKey Treiber

Databear Software Installer

Anleitung zum Prüfen von WebDAV

LEHRSTUHL FÜR DATENBANKEN

Die ersten C#- Programme erstellen

Installationsanleitung MS SQL Server für Sage 50 Ablage & Auftragsbearbeitung. Sage Schweiz AG D4 Platz 10 CH-6039 Root Längenbold

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Innere Klassen in Java

4D Server v12 64-bit Version BETA VERSION

Office und.net - zwei Welten wachsen zusammen mit VSTO 3.0. Lars Keller netcreate OHG

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Kompatibilitätsmodus und UAC

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Automatisierungsarchitekturen für das Smart Grid Am Beispiel der OPC UA und der IEC Dr.-Ing. Mathias Uslar, Sebastian Rohjans

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

Qt-Projekte mit Visual Studio 2005

Titel. SCSM ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab

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

QDB AddOn. Eine NetIQ AppManager Erweiterung von generic.de

Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz

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

Federated Identity Management

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

NET.Compact Framework

License Use Management. Target ID

Application Performance Management. Auch eine Frage des Netzwerkes?

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Es gibt zwei Wege die elektronischen Daten aus Navision zu exportieren.

Installation der Konfigurationsdateien für alle Windows-Versionen bis einschließlich Microsoft Windows 7

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

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

Workflow Systeme mit der Windows Workflow Foundation

Handbuch zur Installation des Smart Card- Lesegerätes MiniLector USB

Exception Handling, Tracing und Logging

TimeSafe Installationsanleitung mit InfotechStart

Mobile-Szenario in der Integrationskomponente einrichten

Enterprise Application Integration Erfahrungen aus der Praxis

Nach dem Einstecken des mdentity wird die Anwendung nicht gestartet

crm-now/ps Webforms Webdesigner Handbuch Erste Ausgabe

Applets I. Grundlagen der g Applet-Programmierung

Transkript:

Einführung in Microsoft.NET Martin Saternus Martin Saternus Technical Student Consultant Microsoft Academic Program Microsoft Deutschland GmbH i-martsa@microsoft.com

In diesem Vortrag Der Weg zu Microsoft.NET Common Language Runtime (CLR) Base Class Library (BCL) Deklarative Programmierung mit.net

Vision Software als Service Unterstützung tzung von Smart Devices offene Standards als Grundlage Partner Web Services Internet + XML Microsoft Web Services andere Web Services Clients Ihr Unternehmen.com Geschäftslogik der Applikation Datenzugriff und -speicherung andere Applikationen

Entwicklungsparadigmen (1/2) Vereinfachung von Development und Deployment Selbstbeschreibende Komponenten Hierarchische Namespaces Einheitliches Objektmodell Strukturierte Exceptions Gemeinsames Root Object Common Type System (CTS) Einheitliche Vererbungs- und Typdefinitionen

Entwicklungsparadigmen (2/2) Robuste und sichere Ausführungsumgebung Code Access Security Sicherheit basiert auf der Identität t des Codes Administrativ über Richtlinien konfigurierbar ASP.NET: Integrierte Benutzer-Authentifizierung Windows identity,, Passport, forms-based based, Kryptographie Bibliothek für f r XML Deployment und Management Side-by by-side Ausführungen Verschiedene Versionen derselben Komponente können auf einem System nebeneinander existieren

.NET Framework VB C++ C# JScript J# Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit ADO.NET and XML Base Class Library Windows Forms Visual Studio.NET Common Language Runtime Operating System

Common Language Runtime Base Class Library Support Thread Support Type Checker Security Engine COM Marshaler Exception Manager Debug Engine MSIL to Native Compilers (JIT) Code Manager Garbage Collector (GC) Class Loader

Die CLR Jeder Win32-Prozess, der die CLR benutzen möchte, muss diese laden Multi-Instance Instance-Singleton genau eine CLR pro Win32 Prozess Viele Instanzen von CorRuntimeHost Alle Instanzen greifen auf gemeinsame Daten zu Die Execution Engine der CLR ist in Form einer COM-DLL implementiert CorRunTimeHost

Ausführen einer EXE-Datei Eine Instanz der CLR wird erzeugt CLR erzeugt eine Appdomain EXE Datei implementiert einen Stub aus der MSCOREE.DLL IL-Code wird durch den JIT Compiler in nativen Code übersetzt Assembly der EXE-Datei wird in die AppDomain geladen Die CLR sucht nach der statischen Methode Main und führt f diese aus ggf. wird eine Exception geworfen

Übersetzen von Sourcen Source Code (app1.vb) Typ A { } Typ B { } Compiler (C#, VB.NET, etc.) Typ C { } Assembly (app1.dll) Modul Manifest MSIL-Code für Typ A MSIL-Code für Typ B MSIL-Code für Typ C Metadaten für die Typen A, B und C

Kategorien (laut Doku) Private Assembly Assembly kann nur von genau einer Anwendung benutzt werden Shared Assemby Assembly kann global von allen Anwendungen benutzt werden

Private Assembly Identifikation anhand eines einfachen Namens, z.b. Reverse Keine Versionsüberpr berprüfung Installation per Filecopy Standardmäß äßig befinden sich Assembly und Anwendung im gleichen Verzeichnis Verzeichnis kann per CFG-Datei definiert werden

Shared Assembly Identifikation über einen Strong Name Eindeutig per Public-Key Key-Verschlüsselungsselung Strong Name = Identität + Public Key Versionsüberpr berprüfung durch die Runtime Installation im Global Assembly Cache ( SDK-Tool gacutil.exe) systemweiter Speicherbereich basiert auf dem Filesystem, normale Dateien keine Registry-Eintr Einträge

Strong Name & Codesigning Strong Name garantiert Codeintegrität Unbemerktes Einschleusen von modifiziertem Code wird verhindert Aber: Auch böse b Menschen arbeiten mit Strong Names Code-Signing garantiert Codeindentität Code ist aufgrund seines X.509-Zertifikats eindeutig identifizierbar

Assemblies

Kategorien in der Praxis Private Assemblies Alle Assemblies,, die im nicht-produktiven Betrieb eingesetzt werden Published Assemblies Alle Assemblies,, die im produktiven Betrieb eingesetzt werden Diese Assemblies sollten grundsätzlich mit einem Strong Name versehen werden Shared Assemblies setzen einen Strong Name voraus!

Zwischenstation... Assemblies dienen zur physikalischen Organisation von Code Flexibles Gruppieren von Modulen Mobiler Code Shared Assemblies benutzen keine Registry Setzen Sie bei allen Assemblies,, die Sie ausliefern Strong Names ein! Nach Möglichkeit M sollten Sie auch Codesigning einsetzen

Framework, Languages und Tools VB C++ C# JScript J# Common Language Specification ASP.NET Web Forms Web Services Mobile Internet Toolkit ADO.NET and XML Base Class Library Windows Forms Visual Studio.NET Common Language Runtime Operating System

Einheitliches Programmier Model Gleiche API ungeachtet der Sprache und des Models.NET Framework VB Forms MFC/ATL ASP Windows API

Wieviel einfacher? Windows API HWND hwndmain = CreateWindowEx( 0, "MainWClass" MainWClass", "Main Window", WS_OVERLAPPEDWINDOW WS_HSCROLL WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL, hinstance,, NULL); ShowWindow(hwndMain,, SW_SHOWDEFAULT); UpdateWindow(hwndMain);.NET Framework Form form = new Form() form.text = "Main Window" form.show()

System System System.Data System.Data System.Xml System.Xml System.Web System.Web Globalization Globalization Diagnostics Diagnostics Configuration Configuration Collections Collections Resources Resources Reflection Reflection Net Net IO IO Threading Threading Text Text ServiceProcess ServiceProcess Security Security Common Common OleDb OleDb SQLTypes SQLTypes SqlClient SqlClient XPath XPath XSLT XSLT Runtime Runtime InteropServices InteropServices Remoting Remoting Serialization Serialization Serialization Serialization Configuration Configuration SessionState SessionState Caching Caching Security Security Services Services Description Description Discovery Discovery Protocols Protocols UI UI HtmlControls HtmlControls WebControls WebControls System.Drawing System.Drawing Imaging Imaging Drawing2D Drawing2D Text Text Printing Printing System.Windows.Forms System.Windows.Forms Design Design ComponentModel ComponentModel Klassenbibliothek Klassenbibliothek

Metadaten - Reflection System.Type Felder public class Person { public string firstname; public string lastname; Methoden... } public bool Save() { System.Type t = this.gettype(); foreach(fieldinfo f in t.getfields()) {... } } Person p = new Person( Martin", Saternus"); p Person Martin Saternus

typeof() vs. GetType() Alle Typinformationen können k über einen Typ Type besorgt werden. GetType liefert Typ zur Laufzeit Auflösung über Name Type t = Type.GetType( System.Int32 System.Int32 ) typeof liefert Typ zur Compilezeit Auflösung über type token Type t = typeof(system.int32) In VB.NET TypeOf

Attribute Klassen und Methoden können k über Attribute mit Metadaten versehen werden Deklarative Definition von Objektverhalten (?) Attribute sind Klassen Einheitliche Vorgehensweise erleichtert die Definition eigener Attribute Attribute können k an Typen und Member angehängt werden Auch Attribute können k per Reflection ausgelesen werden

Definieren von Attributen Attribute werden über Klassen definiert, die von System.Attribute abgeleitet sind Klasse wird nur bei Bedarf instanziert C# Syntax für f r Attribute Attribute werden einem Subjekt mit eckigen Klammern vorangestellt Mehrere Attribute werden durch ein Komma voneinander getrennt Der Geltungsbereich von Attributen wird über ein eigenes Attribut definiert System.AttributeUsageAttribute

Attribute

Fragen!? Uff...