was ist microsoft-s „dot net“? bremen, 11.11.2003 [email protected]

38
Was ist Microsoft-s „Dot Net“? Bremen, 11.11.2003 [email protected] www.dotnet-hb.de www.hec.de

Upload: sigrid-sommer

Post on 06-Apr-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

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

Was ist Microsoft-s „Dot Net“?

Bremen, 11.11.2003

[email protected]

www.hec.de

Page 2: Was ist Microsoft-s „Dot Net“? Bremen, 11.11.2003 Klaus.Evers@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.

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

Einleitung

• Microsofts Strategie

• Wo kann man Dot Net begegnen?

• Bestandteile von Dot Net.

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

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.

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

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

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

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

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

Eigenschaften von Dot Net

Eigenschaften aus unterschiedlichen Blickwinkeln

• Endanwender• Administrator• Manager• Entwickler.

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

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.

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

Security Administration unter Dot Net

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

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.

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

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.

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

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.

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

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.

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

Exkurs: Elemente am Beispiel

Bsp: gedruckte Rechnung

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

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

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

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

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

• 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

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

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

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

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

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

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

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

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

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

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

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

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 .

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

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#!"); }

}.

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

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#!"); }

}.

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

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)• ??? .

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

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.

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

Dot Net: Mehr als 4500 Klassen

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

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.

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

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

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

Statische Internetanwendungen

Client(Browser)

Server mit Webanwendung

HTTP

Client fordert Internet-Seite

beim Server an

Server sendet physikalischen Inhalt

der .html-Datei zurück

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

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

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

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.

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

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

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

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

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

Visual Studio Dot Net

Anzeige basierend auf aktuellem Profil

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

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

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

Fragen ?

© 2003 by [email protected]