Was ist Microsoft-s „Dot Net“? Bremen, 11.11.2003 Klaus.Evers@hec.de

Preview:

Citation preview

Was ist Microsoft-s „Dot Net“?

Bremen, 11.11.2003

Klaus.Evers@hec.dewww.dotnet-hb.de

www.hec.de

Inhalt• Einleitung• Überblick: Eigenschaften aus Sicht des

– Endanwenders– Administrators– Managers– Entwicklers

• Architektur: So Funktioniert Dot Net– Exkurs Softwareelemente– Konventionelle Softwarearchitektur – Neuerungen in Dot Net

• Vertiefung– Eigenschaften der Betriebssystemerweiterung „CLR“– Klassenbiliothek „Dot Net Framework“– Internet/Wap/Imode Anwendungen– Webservices– PDA Anwendungen.

Einleitung

• Microsofts Strategie

• Wo kann man Dot Net begegnen?

• Bestandteile von Dot Net.

Microsofts Dot Net Strategie

Dot Net steht für Microsofts Strategie, Software zu entwickeln, die Benutzer jederzeit, an jedem Ort und auf jedem Gerät mit optimalem Nutzen einsetzen können.

Wo kann man Dot Net begegnen?

• Internetbrowser (asp.net)• Handy-Browser (WAP, IMODE, ...)• Windowsprogramme (ab Windows 98)• PDA-Programme (PocketPC2002, Windows

CE)• Elektronischer Geschäftsdatenaustausch

(„Webservice“)• MS Office Erweiterungen (ab Office 2003)• ? SQL-Server ?• ? Free BSD ? („Rotator“)• ? Linux ? („Mono“).

Dot Net Besteht aus ...

• einer Ausführungseinheit für Dot Net Programme

• einer umfangreichen Klassenbibliothek • sowie Konfigurations- und

Programmentwicklungswerkzeugen.

Technisch gesehen ist Dot Net eine Java ähnliche Erweiterung für Betriebssysteme von Microsoft

Die Erweiterung besteht aus

Eigenschaften von Dot Net

Eigenschaften aus unterschiedlichen Blickwinkeln

• Endanwender• Administrator• Manager• Entwickler.

Dot Net aus Endanwendersicht

• Internetanwendungen wie bisher ...• Windowsprogramme aus dem Internet startbar

(Nur MSIE 6)• Stabileres System ohne „DLL-Hölle“• Schutz vor Viren, Trojanern, Hackern,

Systemmanipulationen möglich• Durchsetzung von Urheberrechten, DRM,

„Trustworty Computing“ möglich

• ==> Sicherheit schränkt ggf Komfort oder Funktionalität ein

• ==> Sicherheit erfordert Konfiguration durch Administrator.

Security Administration unter Dot Net

Ende der „DLL-Hölle“

• Installatonsprogramm ersetzt gemeinsam genutzte DLLs durch „neuere“ Versionen. Dadurch funktionieren andere Programme nicht mehr ==> „DLL-Hölle“

• Unter Dot Net können verschiedene DLL-Versionen koexistieren. Eine Dot Net Anwendung greift automatisch auf die „richtige“ Version zu.

Dot Net aus Managersicht

Eine Lösung für alle Aufgaben („One fits all“)• Eine Softwareentwicklungsumgebung für alle

Dot Net Sprachen (c++, c#, vb, ..) undPlatformen (Win32, PDA, Internet, Office, ...)

• Eine gemeinsame Klassenbibliothek für alles• Programmiersprachen sind „mischbar“• Einheitliches Programmiermodell für die

Benutzeroberflächen aller Platformen (Internetseiten, WAP, Win32 und PDA)(„Wenn du eine kennst, kennst du alle“)

• Eigene Bibliotheken sind auf allen Platformen und in allen Dot Net Sprachen nutzbar.

Dot Net aus Entwicklersicht

• Automatische Speicherverwaltung• Umfangreiche Klassenbiliothek

– Mächtige Offline Datenbank („Dataset“)– XML-Unterstützung– Einheitliche Fehlerbehandlung („Exceptions“) ...

• Mächtige Entwicklungsumgebung von Microsoft („Visual Studio Dot Net“)

• Alles ist anders als bisher– Hoher Lernaufwand für neue Klassenbibliothek– C++ neue Semantik (New/Delete, Konstructor/Destructor)– Portierung von VB6 nach VB.Net nicht möglich– ASP und ASP.NET nicht kompatibel– ADO und ADO.NET nicht kompatibel– „Alte“ Funktionen nicht mehr Nutzbar– Umdenken durch Security-Features erforderlich.

Architektur

• Exkurs: Softwareelemente– Beispiel Rechnung– Softwareelemente– Wo kommen die Elemente her?– Beispiel: Elemente unter C++/MFC/Windows– Nachteile bisheriger Architekturen

• Dot Net Schichtenmodell– Architekturüberblick– Compiler und Sprachen– Common Language Runtime (CLR)– Klassenbibliothek (Framework)

• Dot Net Platform.

Exkurs: Elemente am Beispiel

Bsp: gedruckte Rechnung

Exkurs: Softwareelemente• Variablen (Anzahl, Preis, Name)• Einfache Datentypen (Zahl, Text, Datum)• Komplexe Datentypen (Bestellposition, Liste)• Kontrollstrukturen (Wenn Anzahl < 0 Dann ...)• Dateifunktionen (Drucken)• Zeichenketten (Länge, Verketten, ...)• Speicherverwaltung (Bestellposition hinzufügen)• Fehlerbehandlung (kein Druckerpapier)• Netzwerk (Anmeldung)• Datenbank• Grafische Benutzeroberfläche (Eingabemasken).

Exkurs: Softwareschichten

Die von Software verwendeten Elemente stammen aus unterschiedlichen Schichten

• Programmiersprache / Runtime– (C++, PHP, VB, Java, ...)

• Klassenbibliothek– (MFC, QT/KDE, AWT, ...)

• Benutzeroberfläche und Betriebssystem– (Fenster unter Windows2000, X-Windows unter Linux, ...)

• Externe Softwarekomponenten– (z.B. Oracle Datenbank, ...).

• Programmiersprache / Runtime von C/C++– Compiler erzeugt Code für einen Microprozessor.– Datentypen (int, char*,FILE) – Kontrollstrukturen (if then else, while, ....)– Dateifunktionen (stdio.h: printf), Zeichenketten (string.h: strcpy)– Speicherverwaltung (malloc, new, delete)– Fehlerbehandlung (try catch throw, ioresult)

• Klassenbibliothek MFC– Klassen für Datei und Zeichenketten (CFile, CString)– Speicherverwaltung ( CObject::new CObject::delete )– Fehlerbehandlung (TRY, CATCH, CException, ...)– Grafische Benutzeroberfläche (CWindow, CListbox, CMenu )

• Benutzeroberfläche und Betriebssystem– Dateifunktionen (FileOpen), Zeichenketten (lstrcpy)– Speicherverwaltung (GlobalAllocate, LocalAllocate)– Grafische Benutzeroberfläche (HWND, SendMessage).

Beispiel: C++/MFC/Windows

Exkurs: Konsequenzen

• Fehlende Sprachinteroperabilität– Software, die sprachspezifische Elemente verwendt, kann nur

bedingt mit Modulen anderer Programmiersprachen zusammenarbeiten

– Workaround: Kapsung der Schnittstellen (OLE-Datentypen und COM-Schnittstellen)

• Fehlende Betriebssysteminteroperabilität– Software, die Funktionen aus GUI und Betriebssystem verwendet,

kann nicht auf andere Betriebssysteme portiert werden.– Workaround: Das Betriebssystem emuliert das andere

Betriebssystem. (Beispiel Linux-Wine)– Workaround: Verwendung von Betriebssystemunabhängigen

Klassenbibliotheken. (QT oder Java-AWT)

• Fehlende Binärkompatibilität– Workaround: Verwendung von virtuellen Microprozessoren

(Java Virtual Machine).

Dot Net Architektur (1)

VB – Quellcode C# - Quellcode Java – Quellcode

VB – Compiler C# - Compiler Java – Compiler

Assembly Klassenbibliothek („Framework“)

Ausführungsmodul („CLR“)

MSIL Interpreter

Betriebssystem

Dot Net Architektur (2)

• Es gibt verschiedene Dot Net Sprachen – (C#, VB, C++, ...)

• Alle Compiler für Dot Net erzeugen Zwischencode („MSIL“)

• Compilierte Module werden zu Assemblies zusammengefasst (EXE- oder DLL-Datei)

• Die Dot Net Laufzeitumgebung („CLR“) enthält u.a. einen Interpreter für MSIL - er führt Assemblies aus

• Die Klassenbibliothek („Dot Net Framework“) enthält u.a. Klassen für Zeichenketten, Dateien, Grafische Benutzeroberflächen, ... .

Common Language Runtime (CLR)

Die CLR ist das Ausführungsmodul von Dot Net.Zu seinen Aufgaben gehören u.a.• Interpreter

– Konvertierung von Zwischensprache (MSIL) in Computersprache (80x86-Assembler)

• Codeverwaltung (Laden und Ausführen)• Erzwingung von Codesicherheit• Überprüfung von Typensicherheit• Fehlerbehandlulng (Exceptions)• Speicherverwaltung (Garbage Collection)• Nebenläufigkeit (Threadunterstützung).

Dot Net Sprachen• Die Sprache ist nur noch Syntax für

– Variablen– Kontrollstrukturen (if then else, while, ....)– Unterprogramme– Einbindung anderer Module

• Es gibt keine sprachspezifische Runtime mehr– Datentypen, Speicherverwaltung, Fehlerbehandlung und

Nebenläufigkeit sind Bestandteil der Common Language Runtime– Dateiverwaltung und Zeichenketten sind Bestandteil der

Klassenbibliothek („Framework“)

• Es gibt keine (*) Betriebssystem-Aufrufe mehr– Die Klassenbibliothek kapselt alle Betriebssystemfunktionen

einschließlich graphischer Benutzeroberfläche

• (*)Ausnahme: Non-Dot Net Module verwenden– COM-Interop (Com-Module verwenden)– C++ - P/Invoke (Per C++ beliebigen Code ausführen).

Sprachen: VB.net• Syntax ähnlich wie Visual Basic (VB6)• Unterstützt Code-Vererbung• Bestandteil des Office2003 SDK• Features, die nicht mehr unterstützt werden

– On Error Gosub – Resume; – Optionale Parameter

• VB6 Programme können nicht nach Dot Net portiert werden.– Workaround: unter VB6 erstellte Com-Komponenten können von

VB.net verwendet werden

Class MyApp Public Shared Sub Main()

System.Console.WriteLine("Hello, VB.NET!“) End Sub

End Class .

Sprachen: C# (C Sharp)

• Von Microsoft erfundene Programmiersprache• Syntax und Semantik ähnlich wie Java oder

C++• Durchgehend objektorientiert• Standardisiert nach European Computer

Manufacturers Association (ECMA)• Einfach zu Programmieren wie Delphi oder

Visual Basic• Entwicklungssprache der Klassenbibliothek.

class MyApp { public static void Main() {

System.Console.WriteLine("Hello, C#!"); }

}.

Sprachen: C++

„C++ with managed extentions“• Erweiterung von C++ um automatische

Speicherverwaltung• Die einzige Möglichkeit, DLLs direkt aufrufen

zu können („unmanaged code“)• Features, die wegen der Speicherverwaltung

nicht mehr unterstützt werden– Delete, Destruktor, stdio.h, stdlib.h, stl, ......– Heisst zwar „C++“ ist aber kein echtes „C++“ mehr :-(

class MyApp { public static void Main() {

System.Console.WriteLine("Hello, C#!"); }

}.

Weitere Sprachen

• J#.net „Jay Sharp“– ist Microsofts Version von Java– basierend auf Java 1.1– keine Alternative zu Java !

• JScript.net– Javascript für Dot Net– Implementiert nach ECMA– Nicht interpretierend

• Delphi.net (noch nicht fertig)• ??? .

Klassenbibliothek• String, Int32, Int16, DateTime, Boolean, ...• Drawing

– Drawing2D, Imaging, Printing, Text

• Web.UI.WebControls– Button, Calendar, CheckBox, DataGrid, Hyperlink, Image, Label,

ListBox, Panel, ....

• Windows.Forms– Button, Calendar, CheckBox, DataGrid, Image, Label, ListBox,

Panel, ....

• Data (Datenbanken)– OleDb, Odbc, SqlClient, SqlCeClient, MySql, Oracle, ...– Dataset, Connection, Command, DataAdapter, DataReader

• Xml– Document, Reader, Writer, Node, Element, Attribute– Schema (XSD), XPath, Xsl.

Dot Net: Mehr als 4500 Klassen

Dot Net Platformen• ASP.NET

– zur Erstellung von Internet-Seiten mit dynamischen Inhalten

• MIT Mobile Internet Toolkit– Internetseiten für Handies (IMode, WAP, cHtml, ...)

• XML-Webservice– Datenaustausch zwischen Programmen

• WindowsForms Anwendungen– Normale „Fat Client“ Anwendungen ab Windows98

• Dot Net Compact Framework (DotNetCF)– Programme für PDAs (PocketPC ab 2002, WindowsCE)

• ? Office 2003 Erweiterungen• ? Sql-Server Erweiterungen • ? Mono, Rotator

– Dot Net Programme unter Linux bzw. Free BSD.

ASP.net Konzepte

Erstellung von dynamischen Internet-Seiten • Ereignisgesteuerte Programmierung

– wie unter Delphi, Visual Basic oder Dot Net WindowsForms– OnButtonClick, OnFormLoad, OnSelchanged, ....

• Trennung von Layout und Programmlogik– „Code Behind“

z.B. MyForm.aspx (Layout) und MyForm.aspx.cs (Code in C#)

• Automatisches Statusmanagement möglich– Über Hidden Fields oder Session-Cookies

• Code wird einmalig kompiliert– bei erster Anforderung– Updates im laufenden Betrieb möglich

Internetseiten für Handies (IMode, WAP, cHtml).

Statische Internetanwendungen

Client(Browser)

Server mit Webanwendung

HTTP

Client fordert Internet-Seite

beim Server an

Server sendet physikalischen Inhalt

der .html-Datei zurück

ASP.net Funktionsweise

Client(Browser)

Webanwendungwird gestartet

.aspx-

Seitenanfrage

IISAnfrage wird an ASP.NET

Engine weitergeleitet

ASP.NET Engine

-.aspx-Seite wird ggf. kompiliert

- kompilierte Klassen werden geladen und Codebehind- Objekte werden erstellt

- Codebehind-Objekte erstellen Controls

- Controls werden in HTML gerendert

WelcomeHTML

StylesheetImages

...

IIS gibt dieAntwort zurück

Dot Net Webservice – Konzepte

• Webservice– Zweck: Datenaustausch zwischen Programmen– Oft auch bezeichnet als A2A, EDI, EAI– Alternative zu RPC, DCOM

• Verwendet– Microsoft Internet Information Server (IIS) ab Version 5– HTTP(S) als Transportprotokoll– SOAP als Nachrichtenprotokoll

• Dot Net ist nur eine von vielen Möglichkeiten um Web Services zu erstellen

• Einstieg in „Pay Per Use“ Software.

Webservice: FunktionsweiseServer mit WebserviceHTTP

Client fordert Daten

beim Server an

Server sendet Ergebnisder Anfrage zurück

Client

MyService s = new MyService();s.Url = „http://MyServer.de/“+

„MyService.asmx“; string result = s.MyFunction(1234);

public class MyService { [WebMethod] public string MyFunction(int a) { return ...; }}

Entwicklungswerkzeuge• Microsoft Dot Net SDK (0€)

– Runtime ab Win98, Compiler, Tools, API-Dokumentation, Beispiele

• MS Visual Studio Dot Net (130€ .. 1800€)– Sehr komfortable Enwicklungsumgebung

• Microsoft Webmatrix (0 €)– APS.net Entwicklungsumgebung– Unterstützt kein Code-Behind

• Borland C# Builder (0€ .. 1300€)– Komfortable Entwicklungsumgebung– Derzeit nur WindowsForms und DLLs, noch kein Asp.net/PDA– Derzeit nur C#.; Delphi in Vorbereitung

• Sharp Develop (0€)– Grafische Entwicklungsumgebung für WindowsForms– Open Source

Visual Studio Dot Net

Anzeige basierend auf aktuellem Profil

Weitere Informationen

• Http://www.dotnet-hb.deDot Net Usergroup, Bremen

• http://www.guidetocsharp.de/csharp/intronet.phpEinführung: was ist dot net

• http://msdn.microsoft.com/netframework/technologyinfo/howtoget/default.aspxDot Net SDK von Microsoft

• http://www.asp.net/webmatrix/Webmatrix, kostenl. ASP.NET Entwicklungsumgebung

• http://www.go-mono.com/Mono project, an effort to create an open source implementation of the .NET Development Framework.

• http://www.icsharpcode.net/OpenSource/SD/Default.aspx#develop (short for SharpDevelop) is a free IDE for C# and VB.NET projects on Microsoft's .NET platform

Fragen ?

© 2003 by Klaus.Evers@hec.de

Recommended