Title: .NET
1.NET
Nico Orschel Microsoft Student Partner,
TU-Ilmenau nico.orschel_at_studentprogram.de http//
www.studentprogram.de/ilmenau
2Agenda
- Situation heute
- .NET für den Entwickler
- Common Language Runtime (CLR)
- .NET Klassenbibliothek
- Zukunft
3Agenda
- Situation heute
- .NET für den Entwickler
- Common Language Runtime (CLR)
- .NET Klassenbibliothek
- Zukunft
4Die 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 - APIs
- Es gibt eine Vielzahl von APIs (COM, Win32, MFC,
usw.) - Plattformabhängigkeit der APIs
5Die 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
6Vision / Zukunft
- Software als Service
- Unterstützung von Smart Devices
- offene Standards als Grundlage
Microsoft Web Services
Partner Web Services
andere Web Services
Internet XML
Clients
Ihr Unternehmen.com
Geschäftslogik der Applikation
Datenzugriff und -speicherung
andere Applikationen
7.NET Framework
VB
C
C
Visual Studio.NET
J
Common Language Specification
ASP.NET
Windows Forms
ADO.NET and XML
Base Class Library
Common Language Runtime
8Agenda
- Situation heute
- .NET für den Entwickler
- Common Language Runtime (CLR)
- .NET Klassenbibliothek
- Zukunft
9.NET für Entwickler
VB
C
C
Visual Studio.NET
J
Common Language Specification
ASP.NET
Windows Forms
ADO.NET and XML
Base Class Library
Common Language Runtime
10Der Weg zum Maschienencode
Source Code
VB
C
C
Compiler
Compiler
Compiler
Assembly
Assembly
Assembly
IL Code
Common Language Runtime JIT Compiler
Ngen
CLR
Native Code
Managed Code
Managed Code
Managed Code
Unmanaged Code
CLR Services
Operating System Services
11Assemblies (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
12Assemblies (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
13Code wird kompiliert
- IL-Code wird vor der Ausführung immer (!) durch
Compiler in echten Maschinencode übersetzt - IL-Code ist unabhängig von Hardwareplattformen
14Common 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
15Alles ist ein Objekt!
Object
Value Type
Boolean
Int64
Byte
Enum
SByte
Char
Single
Type
Currency
TimeSpan
Typen im Namespace System
DateTime
String
TypedRef.
Decimal
UInt16
Double
Array
UInt32
Guid
UInt64
Exception
Int16
Void
Int32
Delegate
16Common 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 (!)
17Implikation / 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 doesnt matter!Dan Appleman
18Agenda
- Situation heute
- .NET für den Entwickler
- Common Language Runtime (CLR)
- .NET Klassenbibliothek
- Zukunft
19Common Language Runtime
VB
C
C
Visual Studio.NET
J
Common Language Specification
ASP.NET
Windows Forms
ADO.NET and XML
Base Class Library
Common Language Runtime
20Robust 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)
21Plattform 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.
22Wartung 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
23Web Service
Demo
24Zusammenfassung CLR
- Einheitliches Typsystem
- Sprachen werden gleichwertig
- Alles ist von Object abgeleitet
- Das Common Type System definiert welche Typen
nach außen gegeben werden sollten
25Agenda
- Situation heute
- .NET für den Entwickler
- Common Language Runtime (CLR)
- .NET Klassenbibliothek
- ADO.NET und XML
- Web Services und Web Applikationen
- Zukunft
26.NET Klassenbibliothek
VB
C
C
Visual Studio.NET
J
Common Language Specification
ASP.NET
Windows Forms
ADO.NET and XML
Base Class Library
Common Language Runtime
27Putting it all together
Unabhängigkeit von der verwendeten
Programmiersprache
RAD, Composition, Delegation
Stateless, Code embedded in HTML pages
Subclassing, Power, Expressiveness
ASP
MFC/ATL
Windows API
28.NET Framework Namespaces
System.Web
System.Windows.Forms
System.Drawing
System.Data
System.Xml
System
29Agenda
- Situation heute
- Common Language Spezification (CLS)
- Common Language Runtime (CLR)
- .NET Klassenbibliothek
- ADO.NET und XML
- Web Services und Web Applikationen
- Zukunft
30.NET Framework Namespaces
System.Web
System.Windows.Forms
Services
UI
Design
ComponentModel
Description
HtmlControls
Discovery
WebControls
Protocols
System.Drawing
Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data
System.Xml
ADO
SQL
XSLT
Serialization
Design
SQLTypes
XPath
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Remoting
Diagnostics
Reflection
Text
Serialization
Globalization
Resources
Threading
31ADO.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
32Das 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
Relation
33Agenda
- Situation heute
- .NET für den Entwickler
- Common Language Runtime (CLR)
- .NET Klassenbibliothek
- ADO.NET und XML
- Web Services und Web Applikationen
- Zukunft
34.NET Framework Namespaces
System.Web
System.Windows.Forms
Services
UI
Design
ComponentModel
Description
HtmlControls
Discovery
WebControls
Protocols
System.Drawing
Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data
System.Xml
ADO
SQL
XSLT
Serialization
Design
SQLTypes
XPath
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Remoting
Diagnostics
Reflection
Text
Serialization
Globalization
Resources
Threading
35Web 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.
36Veränderungen am ServerWeb Services Mehr als
Browsen
HTML
37Web 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)
38Datenaustausch
39Web Services
SOAP
XML
40Web Service
Demo
41Agenda
- Situation heute
- .NET für den Entwickler
- Common Language Runtime (CLR)
- Base Libraries
- ADO.NET und XML
- Web Services und Web Applikationen
- Zukunft
42Zukunft
- 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
43Fragen?
44Links
- http//msdn.microsoft.com/webservices/indigo/defau
lt.aspx - http//msdn.microsoft.com/netframework
- http//www.codeproject.com
- http//www.guidetocsharp.de
- http//www.codezone.de
- http//www.terraserver.com
45Events 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 nico.orschel_at_studentprogram.de
46Danke!
- Vielen Dank fürIhre Aufmerksamkeit !