Microsoft - guild42.ch · ASP.NET (Nachfolger von Active Server Page): ... Von Ada 2005 bis VB ......

38
Microsoft .NET A brief introduction weroSoft GmbH Rolf Wenger 1

Transcript of Microsoft - guild42.ch · ASP.NET (Nachfolger von Active Server Page): ... Von Ada 2005 bis VB ......

Microsoft .NET

A brief introduction

weroSoft GmbH

Rolf Wenger

1

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:

[email protected]

Agenda

Architektur

Die Sprachen

Das Framework

Entwicklungsprozess und Tools

Zusammenfassung

3

Architektur

4

.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.

8

.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

Blick zurück

13

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

Sprachen

16

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

20

Die Zugpferde der Bibliothek

21

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

28

Entwicklungsprozess

Instrumentalisierung

29

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

Summary

33

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

Notizen

38