microsoft - guild42.ch · asp.net (nachfolger von active server page): ... von ada 2005 bis vb ......
TRANSCRIPT
Wer steht vor Ihnen?
2
Rolf Wenger, weroSoft GmbH
Softwareentwicklung ist seit 20 Jahren meine Berufung
.NET ist meine Passion
Was mache ich wenn ich gerade nicht referiere?
Software entwickeln, zur Zeit in einem grossen, internationalen Projekt. Natürlich mit .NET!
Bücher schreiben (Neuauflage des "Handbuchs der .NET-Programmierung" in 3 Bänden)
Die nächsten Kurse vorbereiten
Wo lebe ich?
Mit meiner Familie in Ostermundigen
Wenn ihr Fragen habt:
.NET aus 10 km Höhe
5
Aus grosser Distanz betrachtet ist .NET ein System im Softwarestapel irgendwo zwischen der Anwendung des Benutzers und der Hardware.
Der Entwurf von .NET ist hardware-neutral und unabhängig von Windows.
Das grundlegende System ist seit der Version 1 bei ECMA normiert.
.NET aus 5 km Höhe
6
.NET definiert eine virtuelle Maschine.
Darauf stellt die Basisbibliothek (BCL) die grundlegenden Funktionen von Datenformatierungen über I/O bis hin zu Kryptographie zur Verfügung.
Die oberste Ebene bilden Bibliotheken, die spezifische Funktionalitäten von Anwendungsarchitekturen zur Verfügung stellen (verschiedene UI, Client-Server …).
.NET aus 2 km Höhe
7
Die Anwendung wird in einer .NET-Sprache entwickelt.
Mittels Compiler und Linker wird Code hergestellt, der von der Hardware unabhängig ist (IL Code entspricht dem Byte Code von Java).
Die CLR (virtuelle Maschine) kompiliert den IL-Code just in time auf die Maschine und führt den Code aus. Dadurch ist .NET Code automatisch 32 und 64 Bit fähig.
.NET aus 1 km Höhe, CLR
Der Common Language Runtime (CLR) wird die Aufgabe der kontrollierten Ausführung des Codes zuteil. Wir sprechen von verwaltetem Code.
Die Aufgaben der CLR sind:
Laden von Code
Umwandlung von IL-Code in Maschinencode
Kontrollierte Ausführung des Codes
Speicherverwaltung (inkl. garbage collection)
I/O Kontrolle
Sicherheitsfunktionen
Ausnahmebehandlung
COM-Wrapping
Die CLR definiert die grundlegenden Datentypen.
9
.NET aus 1 km Höhe, BCL
Die BCL unterstützt folgende Funktionalitäten: Handhabung der grundlegenden Datentypen
Datenkonvertierungen und Formatierungen
Auflistungen (Collections)
Mathematik
I/O, Streaming, Verarbeitung von XML
Unterstützung für Language Integrated Query (LINQ)
Reflexion, Codegenerierung, Sicherheit
Prozesskontrolle, manuelles und automatisches Multithreading, Synchronisation
Diagnose (Tracing, Performance measurement, Symbol store)
Netzwerk, Messaging
COM, Zugriff auf native Bibliotheken und PlugIn-Technik
Speech
Kryptographie
10
.NET aus 1 km Höhe, Bibliotheken
Aufbauend auf der BCL stehende folgende technologiespezifische Bibliotheken zur Verfügung:
Windows Forms: Benutzeroberfläche Windows 1. Generation
Windows Presentation Foundation: Benutzeroberfläche Windows 2. Generation
ASP.NET (Nachfolger von Active Server Page): Benutzeroberfläche internetbasierte Anwendungen
Silverlight: Benutzeroberfläche internetbasierte Anwendungen
Windows Communication Foundation (WCF): Client – Server Technologien, Anwendungsserver
Enterprise Service (ES): Kompatibilitätsserver für COM+ Services (Anwendungsserver 1. Generation)
ADO.NET (Nachfolger von ActiveX Data Object): Datenbankenzugriffe verschiedener Techniken(inklusive ORM und LINQ-Unterstützung)
Workflow Foundation (WF)
11
Mit .NET auf Augenhöhe
Objektorientiertes System
Beliebige Programmiersprache
Übersetzung des Sprachcompilers immer nach IL
IL definiert grundlegende Datentypen und Aufruf- und Abhängigkeits-konventionen
Die Codeausführung erfolgt immer kompiliert
Unterstützt 32 und 64-Bit Codeausführung
Lokaler Code -> lokale Rechte, Code aus dem Netz -> Sandbox
Bibliothek > Standardumfang grösser 10´000 Klassen
Primäre Verfügbarkeit auf Windows
Einzelne Portierungen von Subsets über Silverlight auf andere Systeme in Gebrauch
Subset für X mit Mono verfügbar
12
Die Geschichte von .NET
14
.NET wurde über 10 Jahre in 6 Versionen entwickelt
Die breite industrielle Nutzung wurde mit .NET 2.0 eingeleitet
Die Geschichte von .NET
15
ADO.NETBCL Windows
Forms
4.0
3.5
3.0
2.0
LINQ2SQL
3.5 SP 1 EF
EF 2
ASP.NET
WPF WCF WF
WF 2
LINQ
Von Ada 2005 bis VB
.NET verfügt über zahlreiche Programmiersprachen
Aktuell verfügt die Liste der .NET Sprachen auf Wikipedia über 60 verschiedene Sprachen. Darunter sind Sprachen wie COBOL, Fortran, LISP, Perl, PHP …
Microsoft selber definiert: C# (wird immer mehr zur Standardsprache)
VB.NET
C++.CLI (Einzige Sprache die gemischt nativer und managed Code unterstützt)
JavaScript.NET
F#
17
Ein Sprachcompiler für .NET
Der Compiler übersetzt nach IL.
IL ist eine per Norm definierte Sprache.
Der Compiler kann dabei beliebige Sprachkonstrukte nach IL umsetzen.
Beispiel: C# unterstützt abstrakte Klassen, IL nicht. Die Umsetzung des Kompilers geht über einen privaten Standardkonstruktor. Umgekehrt kennt IL globale Methoden, C# nicht.
Die Sprachen sollen sich nur durch die definierten Schlüsselworte unterscheiden, die eigentliche Funktionalität stellt die Bibliothek zur Verfügung.
Verknüpfungen von Elementen unterschiedlicher Sprachen sind per Konvention möglich. C# erbt von C++ erbt von VB.NET …
18
C# und .NET, ein starkes Team
C# hat zusammen mit .NET ein paar Leckerbissen für den Alltag auf Lager. Dazu zähle ich:
Delegaten und Ereignisse
Generische Typen
Lambda-Ausdrücke
LINQ to SQL Abfrageform
Attribute
Parallels
19
DIE Anwendungsarchitektur
22D
ate
nlo
gik
Ge
sch
äft
slo
gik
Inte
rne
tse
rve
r
HTM
LJa
va
Sc
rip
t
Silv
erlig
ht
WP
F
ClientServer
Datenlogik
Für die Datenstufe bietet sich der Bibliotheksteil ADO.NET an.
Hier werden verschiedenste Zugriffstechniken unterstützt
Rohzugriff auf Stufe SQL und Datentabellen
Typisierte Datentabellen
ORM mit LINQ
Der ORM Entity Framework arbeitet auf der Stufe des konzeptionellen Modells und ist in der Lage Daten so zu definieren, dass diese auf Wunsch bis in das UI benutzt werden können.
Selbstverständlich sind auch eine Vielzahl von Produkten von Drittanbietern vorhanden.
Zugriffe werden für SQL Server und alle andern gängigen Datenbank-systeme unterstützt. Zum Teil werden .NET-Erweiterungen von den DBMS-Herstellern angeboten (zum Beispiel Oracle, MySQL).
23
Geschäftslogik
Typischerweise als eigenständige Bibliothek im Projekt realisiert.
Implementiert in einer Client-Server-Architektur den Serverteil.
Wird von einem Anwendungsserver der Windows Communication Foundation (WCF) zur Verfügung gestellt.
Die WCF unterstützt:
Herstellung von eigenen Anwendungsservern
Verwendung des Internetservers
Verwendung von Windows-Services
Verschiedene Instanziierungsmodelle der Anwendungsobjekte, Transaktionsunterstützung und Unterstützung beliebiger Datenklassen sind selbstverständlich.
Mit der Web-Server-Technik nach W3C können verschiedene Welten mit vernünftigem Aufwand integriert werden.
24
Internetanwendungen
Mit dem Internetserver können schlanke, rein HTML/JavaScript-basierte Webanwendungen bereitgestellt werden.
Mit dem ASP.NET Servermodell wird eine kraftvolle und breit abgestützte Plattform für den Aufbau eines, in einer .NET-Sprache programmierbaren Seitenmodells unterstützt (verschiedene Designmodelle).
Werden typischerweise mit einem zweischichtigen Programmiermodell entwickelt (Design XHTML, Funktionalität in Hochsprache).
ASP.NET unterstützt selbstverständlich die Herstellung von eigenen Erweiterungen im Server (HTTP-Handler, HTTP-Module).
AJAX kann nativ oder aber mit Hilfe von zusätzlichen Bibliotheken (JQuery) genutzt werden.
Das browserbezogene, dynamische Rendering unterstützt den Entwickler, löst aber DAS Problem nicht 100%ig.
25
Silverlight
Jüngster Spross in der Familie der .NET-Integrationen.
Basiert noch auf einem eigenen, kompatiblen .NET Framework (Problem der Grösse). Das Framework bildet ein Subset vom grossen Bruder WPF und .NET.
Wird als zweischichtiges Programmiermodell entwickelt (Design XAML, Funktionalität in Hochsprache).
Arbeitet entweder webbasiert (in HTML integriert) oder alternativ als eigenständige Anwendung auf dem Desktop.
Extreme Entwicklungsgeschwindigkeit in den letzten Releases.
Verfügbar für Intel-basierte Browser (IE, FF, Safari (inkl. MAC), Chrome, Opera …).
Die Plattform für Windows Phone 7.
26
WPF
DAS Paradepferd der UI Entwicklung von Microsoft.
Wird als zweischichtiges Programmiermodell entwickelt (Design XAML, Funktionalität in Hochsprache).
Enorme Fähigkeiten für Individualisierung, enorme Unterstützung von Steuerelementen am Markt.
Arbeitet vektororientiert und unterstützt Animationen, ist 3D fähig.
Unterstützt separate Toolsuite für Designer (Expression Blend) und Programmierer (Visual Studio).
Arbeitet direkt auf der Hardware mit DirectX sehr gute Performance.
Erlaubt Mischung von Alt (Windows Forms) und Neu (WPF).
27
Entwicklungsprozess
Der Entwicklungsprozess von .NET-Anwendungen obliegt wie bei andern Technologien vor allem dem Entwicklerteam.
Mit den Möglichkeiten der Instrumentalisierung ist die Unterstützung von agilen und klassischen Methoden sichergestellt.
Je nach Wahl der Instrumentalisierung werden von der reinen Quellcodeverwaltung bis hin zum komplett integrierten Projektmanagement-Umgebung der Prozess unterstützt.
30
Visual Studio
Mit Visual Studio bietet Microsoft eine sehr kräftige, integrierte Entwicklungsumgebung an.
VS 2010, wie die aktuelle Version kurz genannt wird, ist in verschiedenen Editionen erhältlich:
VS 2010, Express Edition (kostenlose Version)
VS 2010, Professional Edition
VS 2010, Premium
VS 2010, Ultimate
Je nach Version sind Unit Testing, Automated UI Testing, Performance Analysis, UML Design integriert.
Mit dem Team Foundation Server (TFS) wird Visual Studio zum Team Tool für ganzheitliche Projektentwicklung.
Der TFS integriert Tasks von Anforderungsengineering, über Projektmanagement bis hin zu Automated Build und Bugtracking.
31
Erweiterungen der Entwicklungsumgebung
Am Markt sind viele Erweiterungen zu den Werkzeugen von MS erhältlich
Editoren
Editorerweiterungen
Generatoren
Tools für Laufzeitumgebung
Hilfegeneratoren (Codedokumentation)
Hier reicht die Spannweite ebenfalls von kostenlos bis saftigen Lizenzpreisen.
Die Unterstützung umfasst auch Integration von TFS in Eclipse oder IBM Rational Application Developer (TFS Everywhere).
32
Pros auf einen Blick
.NET ist ein neuzeitliche, sehr polyvalente Laufzeitumgebung für Anwendungen.
Eine sehr gutes Laufzeitverhalten, die grosse Funktionalität und die gute Stabilität erlauben den Aufbau von geschäftskritischen Anwendungen.
Mit der breiten Unterstützung von Kommunikationsmöglichkeiten und der feingliedrigen Integration der Präsentationstechnik können auch nicht Windowsplattformen erreicht werden.
Durch die durchgängige Unterstützung und die Integration verschiedenster Techniken kann eine Lösung aus einer Hand aufgebaut werden.
Hervorragende Kompatibilitätseigenschaften zu legacy Systemen auf Windows.
Gleichzeitig mehrere Versionen und mehrere Sprachen auf einem System unterstützt.
34
Cons auf einen Blick
Das .NET Framework ist enorm gross und erfordert einen erheblichen Aufwand um sich zurecht zu finden.
Da die X-basierten Versionen funktionell stark der aktuellen Windows Version hinterher sind, ist eine .NET Anwendung ausserhalb von Windows kaum sinnvoll.
Nicht realtime-fähig.
35
Links
Microsoft .NET Framework 4.0http://www.microsoft.com/germany/net/net-framework-4.aspx
MSDN Library (Deutsch)http://msdn.microsoft.com/de-de/library/default.aspx
MSDN Library (Englisch)http://msdn.microsoft.com/en-us/library/default.aspx
Visual Studio, Übersicht der Editionenhttp://www.microsoft.com/germany/visualstudio/products/features.aspxhttp://www.microsoft.com/visualstudio/de-ch/products
Microsoft Visual Studio Team Explorer Everywhere 2010 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=af1f5168-c0f7-47c6-be7a-2a83a6c02e57
36
Weiterführende Literatur
37
Handbuch der .NET 4.0 Programmierung
Band 1, C# 2010 und .NET-Grundlagen
958 Seiten
Microsoft Press Deutschland
2010
ISBN: 978-3-86645-438-5
Handbuch der .NET 4.0 Programmierung
Band 2, Benutzeroberflächen
ca. 940 Seiten
Microsoft Press Deutschland
Ende 2.Q 2011
ISBN: 978-3-86645-439-2
Handbuch der .NET 4.0 Programmierung
Band 3, Client-Server-Techniken
ca. 700 Seiten
Microsoft Press Deutschland
ca. 4.Q 2011
ISBN: 978-3-86645-440-8