.NET Nico Orschel Microsoft Student Partner, TU-Ilmenau [email protected] .

46
.NET ico Orschel icrosoft Student Partner, TU-Ilmenau [email protected] ttp://www.studentprogram.de/ilmenau

Transcript of .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau [email protected] .

Page 1: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

.NET

Nico OrschelMicrosoft Student Partner, [email protected]

http://www.studentprogram.de/ilmenau

Page 2: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Agenda

• Situation heute• .NET für den Entwickler• Common Language Runtime (CLR)• .NET Klassenbibliothek• Zukunft

Page 3: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Agenda

• Situation heute• .NET für den Entwickler• Common Language Runtime (CLR)• .NET Klassenbibliothek• Zukunft

Page 4: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Die heutigen Probleme (1/2)

• Deployment komponentenbasierter Anwendungen ist nicht einfach– Es droht die DLL-Hölle

• Das Web-Programmierungsparadigma– Zustandslose HTML-Seiten (oder Web-

Applikationen) sind schwer zu entwickeln

• API‘s– Es gibt eine Vielzahl von API‘s (COM, Win32, MFC,

usw.)– Plattformabhängigkeit der API‘s

Page 5: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Die heutigen Probleme (2/2)

• Applikationen integrieren– Sprachen haben unterschiedliche Typsysteme

• COM „sitzt auf“ anderen Objektkonzepten– „Internetfähigkeit“ von COM

• Dienst- und Plattformintegration– Keine Standards für die Interoperabilität

• Kontrolle von Code• Ressourcenverwaltung• Fehler bei der Entwicklung

Page 6: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

• Software als Service• Unterstützung von Smart Devices• offene Standards als

GrundlagePartner Web Services

Microsoft Web Services

andere Web Services

Datenzugriff und -speicherung

Geschäftslogik der Applikation

Ihr Unternehmen.com

Internet + XML

andere Applikationen

Clients

Vision / Zukunft

Page 7: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

.NET Framework

Base Class Library

Common Language Specification

Common Language Runtime

ADO.NET and XML

VB C++ C#V

isual S

tud

io.N

ET

ASP.NET

J# …

Windows Forms

Page 8: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Agenda

• Situation heute• .NET für den Entwickler• Common Language Runtime (CLR)• .NET Klassenbibliothek• Zukunft

Page 9: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

.NET für Entwickler

Base Class Library

Common Language Specification

Common Language Runtime

ADO.NET and XML

VB C++ C#V

isual S

tud

io.N

ET

ASP.NET

J# …

Windows Forms

Page 10: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Der Weg zum Maschienencode

CLR

VBSource Code

Compiler

C++C#

Assembly AssemblyAssembly

Operating System Services

IL Code

Common Language Runtime JIT Compiler

Compiler Compiler

NativeCode

ManagedCode

ManagedCode

ManagedCode

UnmanagedCode

CLR Services

Ngen

Page 11: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Assemblies (1/2)

• .NET Anwendungen bestehen aus Assemblies• Private Assemblies

– Identifikation anhand eines einfachen Namens– Keine Versionsü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-Verschlüsselung• Strong Name = Identität + Public Key

– Versionsüberprüfung durch die Runtime– Installation im Global Assembly Cache

Page 12: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Assemblies (2/2)

• Strong Name garantiert Codeintegrität– Unbemerktes Einschleusen von modifiziertem Code

wird verhindert– Aber: Auch böse Menschen arbeiten mit Strong

Names

• Code-Signing garantiert Codeidentität– Code ist aufgrund seines X.509-Zertifikats eindeutig

identifizierbar

Page 13: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Code wird kompiliert

• IL-Code wird vor der Ausführung immer (!) durch Compiler in echten Maschinencode übersetzt

• IL-Code ist unabhängig von Hardwareplattformen

Page 14: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Common Type System

• Das Typsystem wandert vom Compiler in die Runtime– Typen werden eindeutig

• „Ein String unter C# und ein String unter VB.NET sind identisch“

– Sprachen werden „per Definition“ interoperabel, da sie das gleiche Typsystem benutzen

• Compilerbau wird einfacher

Page 15: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Alles ist ein Objekt!

Object Value Type

Enum

Type

String

Array

Exception

Boolean

Byte

Char

Currency

DateTime

Decimal

Double

Guid

Int16

Int32

Int64

SByte

Single

TimeSpan

TypedRef.

UInt16

UInt32

UInt64

Void

Delegate

Typen imNamespaceSystem

Page 16: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Common Language Specification

• „Kleinster gemeinsamer Nenner“ für Typen– C++ und C# kennen Zeiger; VB.NET nicht– C++ kennt die STL; VB.NET und C# nicht– „komplette“ Sprachintegration schwierig

• Die Common Language Specification (CLS) definiert den kleinsten gemeinsamen Nenner aus dem Common Type System, den jeder Compiler unterstützen sollte

• „Mapping“ der CLR-Typen auf Sprachtypen– Integer unter VB.NET entspr. bspw. System.Int32– Für COM-Programmierer ist System.Object die moderne

Form eines Variant ;-)

• C# Typen sind Managed Types (!)

Page 17: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Implikation / Zusammenfassung

• Sprachen werden gleichwertig, da alle Compiler IL-Code erzeugen– Eine C# Klasse kann (z.B.) von einer VB.NET

Klasse abgeleitet sein• Vererbungsfähigkeit kommt aus der

Runtime– Einheitliche Fehlerbehandlung– Ähnliche Performance

„The language doesn‘t matter!“Dan Appleman

Page 18: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Agenda

• Situation heute• .NET für den Entwickler• Common Language Runtime (CLR)• .NET Klassenbibliothek• Zukunft

Page 19: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Common Language Runtime

Base Class Library

Common Language Specification

Common Language Runtime

ADO.NET and XML

VB C++ C#V

isual S

tud

io.N

ET

ASP.NET

J# …

Windows Forms

Page 20: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Robust und sicher

• Automatisches Lifetime Management– Alle .NET Objekte werden ‘garbage collected’– Keine ‘Stray Pointers’, keine zirkulären Referenzen

• Eingebautes, strukturiertes Exception Handling– keine HRESULTS (kryptische Fehlernummern) mehr!

• Prüfbar und Typsicher– Verhindert die häufigsten Programmierfehler

• Evidence-based Sicherheit– Herkunft des Codes und Benutzerrechte – Erweiterbare Rechte (Extensible permissions)

Page 21: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Plattform für alle Sprachen

• Alle Features des .NET Framework sind in jeder .NET Programmiersprache zugänglich

• Nahtlose Mehrsprachige Entwicklung– Vererbung über Sprachgrenzen hinweg

• Implementierungen verschiedener Sprachen– Perl, COBOL, Eiffel, Python, etc.– Andere wie APL, Smalltalk, Lisp

• Hochproduktive Werkzeuge– Debugger, Profilers, Code Analyzers, etc.

arbeiten für alle Sprachen.

Page 22: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Wartung und Verteilung

• Keine Registrierung notwendig– Einfach die Applikationskomponenten kopieren

(xcopy deployment)– Der Code ist vollständig selbstbeschreibend

(MetaDaten [Manifest])– Nebenwirkungsfreie Installation (Zero-impact install)

• ‘Side-by-Side’ Ausführung– Verschiedene Versionen derselben Komponente

können sogar in einem Prozess kooexistieren

Page 23: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Web Service

Demo

Page 24: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Zusammenfassung CLR

• Einheitliches Typsystem• Sprachen werden gleichwertig• Alles ist von Object abgeleitet• Das Common Type System definiert welche

Typen nach außen gegeben werden sollten

Page 25: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Agenda

• Situation heute• .NET für den Entwickler• Common Language Runtime (CLR)• .NET Klassenbibliothek

– ADO.NET und XML– Web Services und Web Applikationen

• Zukunft

Page 26: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

.NET Klassenbibliothek

Base Class Library

Common Language Specification

Common Language Runtime

ADO.NET and XML

VB C++ C#V

isual S

tud

io.N

ET

ASP.NET

J# …

Windows Forms

Page 27: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Putting it all together

Windows API

.NET Framework

Unabhängigkeit von der verwendeten Programmiersprache

ASPMFC/ATLVisual Basic®

Forms

RAD,Composition,Delegation

Subclassing, Power,Expressiveness

Stateless,Code embeddedin HTML pages

Page 28: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

System.Web

.NET Framework Namespaces

System

System.Data System.Xml

Design

ADO

SQLTypes

SQL

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security RuntimeInteropServices

Remoting

Serialization

XPath

XSLT Serialization

System.Drawing

System.Windows.Forms

Imaging

Drawing2D

Text

Printing

Design ComponentModelServices

Configuration SessionState

Caching Security

UIHtmlControls

WebControls

Description

Discovery

Protocols

Page 29: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Agenda

• Situation heute• Common Language Spezification (CLS)• Common Language Runtime (CLR)• .NET Klassenbibliothek

– ADO.NET und XML– Web Services und Web Applikationen

• Zukunft

Page 30: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

.NET Framework Namespaces

System

System.Data System.Xml

System.Web

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security

Design

ADO

SQLTypes

SQL

XPath

XSLT

RuntimeInteropServices

Remoting

Serialization

Serialization

Configuration SessionState

Caching Security

ServicesDescription

Discovery

Protocols

UIHtmlControls

WebControls

System.Drawing

Imaging

Drawing2D

Text

Printing

System.Windows.Forms

Design ComponentModel

Page 31: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

ADO.NET und XML

• Verarbeitet alle Arten von Daten– XML (hierarchical), Relational

• Leistungsfähiger In-Memory Daten Cache – Lightweight, stateless, disconnected– sowohl relational wie XML Zugriff, unabhängig von

der Datenquelle

• XML Unterstützung: – W3C DOM, XSL/T, XPath und Schema

• Data Reader für Streamzugriff mit geringem Overhead

Page 32: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Das DataSet

• Relationale Sicht der Daten– Tabellen, Spalten, Zeilen,

Beschränkungen, Beziehungen

• Direkte Erzeugung vonMetadaten einfaches Einfügenvon Daten

• Explizites Cache Modell– Disconnected, remotable Objekt– Hat keine Kenntnis über die Datenquelle Zugriff wie

auf ein Array– Strong Typing möglich– Filtern und Aggregieren möglich

DataSet

Tables

Table

Columns

ColumnColumnConstraints

ConstraintRows

RowRelations

Relation

Page 33: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Agenda

• Situation heute• .NET für den Entwickler• Common Language Runtime (CLR)• .NET Klassenbibliothek

– ADO.NET und XML– Web Services und Web Applikationen

• Zukunft

Page 34: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

.NET Framework Namespaces

System

System.Data System.Xml

System.Web

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security

Design

ADO

SQLTypes

SQL

XPath

XSLT

RuntimeInteropServices

Remoting

Serialization

Serialization

Configuration SessionState

Caching Security

ServicesDescription

Discovery

Protocols

UIHtmlControls

WebControls

System.Drawing

Imaging

Drawing2D

Text

Printing

System.Windows.Forms

Design ComponentModel

Page 35: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Web Forms

• Einheitliches Modell• Trennung zwischen Form und Code• Ereignisorientiert• Viel bessere Performance als ASP

• Neu in ASP.Net 2.0: viele neue Controls für Standardaufgaben– Bsp.: Userverwaltung, Masterpages, Profiles, etc.

Page 36: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Web Web SiteSiteWeb Web

ServiceService

Veränderungen am ServerWeb Services: Mehr als Browsen

Web Web ServiceService

XMLXML

HTMLHTML

ClientClient

XML

XML

ClientClientXMLXML

Web Web ServiceService

XMLXML

Web Web ServiceService

XMLXML

XM

LX

ML

Page 37: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Web Services

• Technische Definition - "Eine programmierbare Anwendung, auf die über Standardwebprotokolle zugegriffen werden kann"– Basiert auf SOAP

• „Aufbau“ Web Service Stack– SOAP (Codierung, Transport)– UDDI (Finden, Suchen)– WSDL (Schnittstellenbeschreibung)

Page 38: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Datenaustausch

Page 39: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Web Services

SOAPSOAP

XMLXML

Page 40: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Web Service

Demo

Page 41: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Agenda

• Situation heute• .NET für den Entwickler• Common Language Runtime (CLR)• Base Libraries

– ADO.NET und XML– Web Services und Web Applikationen

• Zukunft

Page 42: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Zukunft

• Windows Communication Foundation (WCF)– ehemals Codename „Indigo“– Beschreibung von Services ( Contracts )– Nachrichten basierend

Quelle:http://www.dotnetpro.de/articles/freearticles/pdf/2005-11-Indigo.pdf

Page 43: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Fragen?

Page 44: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Links

• http://msdn.microsoft.com/webservices/indigo/default.aspx

• http://msdn.microsoft.com/netframework

• http://www.codeproject.com• http://www.guidetocsharp.de• http://www.codezone.de

• http://www.terraserver.com

Page 45: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Events an der TU-Ilmenau

• Ready to Launch Event– Veröffentlichung von Visual Studio 2005 und SQL

Server 2005– Vorträge

• .NET Usergroup Ilmenau– Vorträge, Workshops zu .NET Themen

• Informationen unter– http://www.studentprogram.de/ilmenau– Mail: [email protected]

Page 46: .NET Nico Orschel Microsoft Student Partner, TU-Ilmenau nico.orschel@studentprogram.de .

Danke!

Vielen Dank fürIhre Aufmerksamkeit !