Was ist Microsoft

Werbung
Was ist Microsoft-s
„Dot Net“?
Bremen, 11.11.2003
[email protected]
www.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 ...
Technisch gesehen ist Dot Net eine Java
ähnliche Erweiterung für
Betriebssysteme von Microsoft
Die Erweiterung besteht aus
• einer Ausführungseinheit für Dot Net
Programme
• einer umfangreichen Klassenbibliothek
• sowie Konfigurations- und
Programmentwicklungswerkzeugen.
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 DLLVersionen 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, ..) und
Platformen (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, ...).
Beispiel: C++/MFC/Windows
• 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).
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
Klassenbibliothek
(„Framework“)
Assembly
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)
HTTP
Client fordert Internet-Seite
beim Server an
Server sendet physikalischen Inhalt
der .html-Datei zurück
Server mit
Webanwendung
ASP.net Funktionsweise
Client
(Browser)
IIS
.aspxSeitenanfrage
Webanwendung
wird gestartet
Engine weitergeleitet
ASP.NET
Engine
IIS gibt die
Antwort zurück
HTML
Stylesheet
Images
...
Anfrage wird an ASP.NET
-.aspx-Seite wird ggf. kompiliert
Welcome
- kompilierte Klassen werden
geladen und CodebehindObjekte werden erstellt
- Codebehind-Objekte erstellen
Controls
- Controls werden in HTML
gerendert
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: Funktionsweise
Client
Server mit
Webservice
HTTP
Client fordert Daten
beim Server an
Server sendet Ergebnis
der Anfrage zurück
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.de
Dot Net Usergroup, Bremen
• http://www.guidetocsharp.de/csharp/intronet.php
Einführung: was ist dot net
• http://msdn.microsoft.com/netframework/technologyinfo/
howtoget/default.aspx
Dot 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 [email protected]
Herunterladen