Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric...

52
Grundlagen des Grundlagen des Microsoft .NET Microsoft .NET Frameworks Frameworks Master Seminar Master Seminar Advanced Software Engineering Topics Advanced Software Engineering Topics Patric Zbinden Patric Zbinden 1. Mai 2003 1. Mai 2003

Transcript of Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric...

Page 1: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Grundlagen des Grundlagen des Microsoft .NET Microsoft .NET FrameworksFrameworks

Master SeminarMaster SeminarAdvanced Software Engineering TopicsAdvanced Software Engineering Topics

Patric ZbindenPatric Zbinden

1. Mai 20031. Mai 2003

Page 2: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

ÜbersichtÜbersicht

(1)(1) Die .NET StategieDie .NET Stategie

(2)(2) Common Language Runtime (CLR)Common Language Runtime (CLR)

(3)(3) Programming in .NET (C#, VB.NET)Programming in .NET (C#, VB.NET)

(4)(4) .NET Framework Klassenbibliothek.NET Framework Klassenbibliothek(1)(1)Datentechnik (ADO.NET)Datentechnik (ADO.NET)

(2)(2)Web Forms (ASP.NET)Web Forms (ASP.NET)

(3)(3)Weitere ThemenWeitere Themen

(5)(5) FazitFazit

Page 3: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

.NET Strategie.NET Strategie

Page 4: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Was ist .NETWas ist .NET

►Framework für Software EntwicklungFramework für Software Entwicklung► Interface zu Windows services und APIInterface zu Windows services und API►ProduktgruppenProduktgruppen

Entwicklungstools (Programmiersprachen, Entwicklungstools (Programmiersprachen, Visual Studio.NET, .NET Framework SDK)Visual Studio.NET, .NET Framework SDK)

Spezialisierte Server (SQL, Exchange, Spezialisierte Server (SQL, Exchange, BizTalk)BizTalk)

WebServicesWebServices Geräte (Windows CE, PocketPC)Geräte (Windows CE, PocketPC)

Page 5: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

.NET Strategie.NET Strategie

►Verteiltes Rechnen (XML Web Services)Verteiltes Rechnen (XML Web Services) Remoting Architektur basierend auf offene Remoting Architektur basierend auf offene

Internet Standards (HTTP, XML, SOAP)Internet Standards (HTTP, XML, SOAP)►Komponenten InfrastrukturKomponenten Infrastruktur

COM war zu komplexCOM war zu komplex►Enterprise servicesEnterprise services►Web TechnologieWeb Technologie►Einfaces Deployment, Zuverlässigkeit, Einfaces Deployment, Zuverlässigkeit,

Sicherheit, …Sicherheit, …

Page 6: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

.NET Enterprise Servers.NET Enterprise Servers► Microsoft Application Center 2000Microsoft Application Center 2000 to deploy and manage highly available to deploy and manage highly available

and scalable Web applications. and scalable Web applications. ► Microsoft BizTalk Server 2002Microsoft BizTalk Server 2002 to build XML-based business processes to build XML-based business processes

across applications and organizations. across applications and organizations. ► Microsoft Commerce Server 2002Microsoft Commerce Server 2002 for quickly building scalable e- for quickly building scalable e-

commerce solutions. commerce solutions. ► Microsoft Content Management Server 2001Microsoft Content Management Server 2001 to manage content for to manage content for

dynamic e-business Web sites. dynamic e-business Web sites. ► Microsoft Exchange Server 2000Microsoft Exchange Server 2000 to enable messaging and collaboration to enable messaging and collaboration

anytime, anywhere. anytime, anywhere. ► Microsoft Host Integration Server 2000Microsoft Host Integration Server 2000 for bridging to data and for bridging to data and

applications on mainframe legacy systems. applications on mainframe legacy systems. ► Microsoft Internet Security and Acceleration Server 2000Microsoft Internet Security and Acceleration Server 2000 for SSL- for SSL-

secured, fast Internet connectivity. secured, fast Internet connectivity. ► Microsoft Mobile Information 2001 ServerMicrosoft Mobile Information 2001 Server to enable application support to enable application support

by mobile devices like cell phones. by mobile devices like cell phones. ► Microsoft SharePoint™ Portal Server 2001Microsoft SharePoint™ Portal Server 2001 to find, share, and publish to find, share, and publish

business information. business information. ► Microsoft SQL Server™ 2000Microsoft SQL Server™ 2000 to store, retrieve, and analyze structured XML to store, retrieve, and analyze structured XML

data. data.

Page 7: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Component InfrastructureComponent Infrastructure

► Vor COM existierte kein einfacher Weg um Vor COM existierte kein einfacher Weg um Bibliotheken ohne Source Code zu Bibliotheken ohne Source Code zu integrieren. integrieren.

► COMCOM Vorteil: Sprachunabhängig, Internet tauglich Vorteil: Sprachunabhängig, Internet tauglich

(DCOM)(DCOM) Nachteile: Nachteile:

► Kompliziert (COM identity, lifetime, binary layout Kompliziert (COM identity, lifetime, binary layout rules…)rules…)

► Keine Sprachintegration (keine Vererbung, keine Keine Sprachintegration (keine Vererbung, keine Exceptions, …)Exceptions, …)

Page 8: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Common Language Runtime Common Language Runtime (CLR)(CLR)

►Wie: Java Virtual MachineWie: Java Virtual Machine►Virtuelle Maschine für Intermediate Virtuelle Maschine für Intermediate

Language IL Code.Language IL Code.►AufgabenAufgaben

Ausführung von CodeAusführung von Code TypenkontrolleTypenkontrolle SicherheitsüberprüfungenSicherheitsüberprüfungen Garbage collectionGarbage collection ……

Page 9: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Ausführbare DateienAusführbare Dateien

► Datei-Endungen: EXE, DLLDatei-Endungen: EXE, DLL► Windows Portable Executable (PE) StandardWindows Portable Executable (PE) Standard

Page 10: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

CLR AusführungCLR Ausführung

►Kein Interpreter!Kein Interpreter!►Verschiedene Compiler für die Verschiedene Compiler für die

Erzeugung von MaschinencodeErzeugung von Maschinencode Global Assembly Cache (GAC)Global Assembly Cache (GAC) Just-In-Time (JIT) CompilerJust-In-Time (JIT) Compiler

►Vergleich mit der JVM:Vergleich mit der JVM: InterpreterInterpreter Erweiterungen: HotSpot CompilerErweiterungen: HotSpot Compiler

Page 11: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

JVM vs. CLRJVM vs. CLR

►CLRCLR Ausgerichtet für verschiedene Ausgerichtet für verschiedene

ProgrammiersprachenProgrammiersprachen Im Moment für Windows-SystemeIm Moment für Windows-Systeme

(Mono Projekt (Mono Projekt Linux) Linux)

► JVMJVM Nur für JavaNur für Java Erhältlich auf den meisten PlattformenErhältlich auf den meisten Plattformen

Page 12: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Common Type System (CTS)Common Type System (CTS)

► Interoperabilität erfordert gemeinsame Interoperabilität erfordert gemeinsame TypenTypen

►Zwei KategorienZwei Kategorien Referenz-TypenReferenz-Typen Werte-TypenWerte-Typen

Page 13: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Referenz- vs. Werte-TypenReferenz- vs. Werte-Typen

► Interne Behandlung der CLRInterne Behandlung der CLR

Stack

ManagedHeap

Referenz

Mein Objekt

Stack

ManagedHeap

Mein Wert

Page 14: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Referenz- vs. Werte-TypenReferenz- vs. Werte-Typen

►Konsequenzen für ProgrammiererKonsequenzen für Programmierer Zuweisung: a = bZuweisung: a = b Gleichheit: a == bGleichheit: a == b InitialisierungInitialisierung

Page 15: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Werte-TypenWerte-Typen

►UnterkategorienUnterkategorien Basis-Typen („build-in types“, „primitive Basis-Typen („build-in types“, „primitive

types“)types“)Werden von der CLR implementiertWerden von der CLR implementiert

Benutzerdefinierte WertetypenBenutzerdefinierte WertetypenIn C# mit dem Schlüsselwort In C# mit dem Schlüsselwort structstruct (anstatt mit (anstatt mit classclass) ) erzeugte Typen.erzeugte Typen.

AufzählungstypenAufzählungstypenIn C# mit dem Schlüsselwort In C# mit dem Schlüsselwort enumenum erzeugt. erzeugt.

Page 16: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Basis-TypenBasis-Typen► BooleanBoolean ( (truetrue oder oder falsefalse))► ByteByte (0 .. 255) (0 .. 255)► CharChar (Unicode Zeichen) (Unicode Zeichen)► DateTimeDateTime (Zeit- und Datumswert) (Zeit- und Datumswert)► DecimalDecimal (28 signifikante Dezimalstellen) (28 signifikante Dezimalstellen)► DoubleDouble (64-Bit Fliesskomma Zahl) (64-Bit Fliesskomma Zahl)► GUIDGUID (128-Bit) (128-Bit)► Int16Int16 (16-Bit Zahl mit Vorzeichen) (16-Bit Zahl mit Vorzeichen)► Int32Int32 (32-Bit Zahl mit Vorzeichen) (32-Bit Zahl mit Vorzeichen)► Int64Int64 (64-Bit Zahl mit Vorzeichen) (64-Bit Zahl mit Vorzeichen)► SbyteSbyte (-128 .. 127) (-128 .. 127)► SingleSingle (32-Bit Fliesskomma Zahl) (32-Bit Fliesskomma Zahl)► TimeSpanTimeSpan (Zeitspanne mit Vorzeichen) (Zeitspanne mit Vorzeichen)

Page 17: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Referenz-TypenReferenz-Typen

►UnterkategorienUnterkategorien Selbstbeschreibende TypenSelbstbeschreibende Typen

►Array TypenArray Typen►KlassenKlassen

Benutzerdefinierte KlassenBenutzerdefinierte Klassen Gekapselte Wertetypen (boxed classes)Gekapselte Wertetypen (boxed classes)

►DelegatesDelegates

Zeiger-Typen (Pointer)Zeiger-Typen (Pointer) Interface-TypenInterface-Typen

Page 18: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Boxing / UnboxingBoxing / Unboxing

►Boxing: Konvertierung von Wertetyp Boxing: Konvertierung von Wertetyp zu Referenztypzu Referenztyp BeispielBeispielintint i = 20; // Wertetyp i = 20; // Wertetypobjectobject box = i; // Referenztyp -> Boxing box = i; // Referenztyp -> Boxing

►Unboxing: Umgekehrte OperationUnboxing: Umgekehrte Operation BeispielBeispielintint j = (int)box; // Unboxing j = (int)box; // Unboxing

►Vergleich mit Java: Explizite Boxing Vergleich mit Java: Explizite Boxing KlassenKlassen

Page 19: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Objektorientiere KonzepteObjektorientiere Konzepte

►Die CLR unterstützt OO Konzepte (wie Die CLR unterstützt OO Konzepte (wie Kapselung, Vererbung und Kapselung, Vererbung und Polymorphismus)Polymorphismus) KlassenKlassen MethodenMethoden FelderFelder Statische Felder/MethodenStatische Felder/Methoden Innere KlassenInnere Klassen InterfacesInterfaces u.s.w.u.s.w.

Page 20: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

ProgrammiersprachenProgrammiersprachen

►C#C#►Visual Basic.NET (auch: VB.NET)Visual Basic.NET (auch: VB.NET)►C++ C++ ►Viele weitere SprachenViele weitere Sprachen

APL, COBOL, Delphi, Eiffel, Forth, Fortran, APL, COBOL, Delphi, Eiffel, Forth, Fortran, Haskel, J#, JScript.NET, Mercury, Haskel, J#, JScript.NET, Mercury, Mondrian, Oberon, Pascal, Perl, Python, Mondrian, Oberon, Pascal, Perl, Python, RPG, Scheme, S#RPG, Scheme, S#

Viele sind aber noch in Beta-PhaseViele sind aber noch in Beta-Phase

Page 21: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C#C#

►Neue ProgrammierspracheNeue Programmiersprache►Objekt-orientiertObjekt-orientiert►Nur einfache Vererbung (Mehrfache Nur einfache Vererbung (Mehrfache

Vererbung nur über Interfaces)Vererbung nur über Interfaces)►Designierter Nachfolger von C++. Designierter Nachfolger von C++.

(Auch beeinflusst von Java)(Auch beeinflusst von Java)►Ausgerichtet auf .NET FrameworkAusgerichtet auf .NET Framework

Page 22: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C# vs. JavaC# vs. Java

► Viele Gemeinsamkeiten aber auch Viele Gemeinsamkeiten aber auch UnterschiedeUnterschiede SyntaxSyntaxJavaJava C#C#

supersuper basebase

final classfinal class sealed classsealed class

extendsextends ::

packagepackage namespacenamespace

(kein (kein Schlüsselwort Schlüsselwort notwendig)notwendig)

overridesoverrides

(Methoden sind (Methoden sind bereits virtuell, bereits virtuell, d.h. d.h. überschreibbar)überschreibbar)

virtualvirtual

weitere…weitere…

Page 23: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C#C#

► AufzählungstypenAufzählungstypen Typen-KontrolleTypen-Kontrolle

public enum DayOfWeek {Sunday = 0,Monday = 1,Tuesday = 2,Wednesday = 3,Thursday = 4,Friday = 5,Saturday = 6

}

Page 24: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C# - FunktionsparameterC# - Funktionsparameter

public static void SwitchValues(ref int a, ref int b) {

int c = a;a = b;b = c;

}

public static int Main(string[] args) {

int a = 10;int b = 20;SwitchValues(ref a, ref b);Console.WriteLine(a + " " + b);return 0;

}

Ausgabe: 20 10

Page 25: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C# - foreach SchleifeC# - foreach Schleife

public static int Main(string[] args) {

int[] aInt = {1, 2, 2, 3, 5, 7};foreach (int j in aInt) Console.WriteLine(j);return 0;

}

Ausgabe:122357

Page 26: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C# - PropertiesC# - Properties

► Verwendung wie Felder, aber funktioniert wie MethodenVerwendung wie Felder, aber funktioniert wie MethodenBeispiel:Beispiel: Anstelle von zwei Methoden getVisible(), setVisible(…) Anstelle von zwei Methoden getVisible(), setVisible(…)

public bool Visible {

get { return _bVisible; }set {

if (_bVisible != value) {if (_bVisible) Hide(); else Show();_bVisible = value;

}}

}

Page 27: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C# - IndexersC# - Indexers

►Zugriff auf Elemente eines Arrays:Zugriff auf Elemente eines Arrays:

intint[] a = {3, 4};[] a = {3, 4};a[i] = 1;a[i] = 1;Console.Write(a[i]); // Ausgabe: 1Console.Write(a[i]); // Ausgabe: 1

► Indexer ermöglicht diesen Syntax auch Indexer ermöglicht diesen Syntax auch für andere Klassen zu verwenden:für andere Klassen zu verwenden:

stringstring s = “Test“; s = “Test“;Console.Write(s[0]); // Ausgabe: TConsole.Write(s[0]); // Ausgabe: T

Page 28: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C# - Indexers (2)C# - Indexers (2)

► Wie ein Property mit dem Namen „this“ und mit Wie ein Property mit dem Namen „this“ und mit Argument(e) in eckigen Klammern.Argument(e) in eckigen Klammern.

public virtual int this[int row, int col]{

get { … }set { … }

}

Page 29: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C# - Operator overloadingC# - Operator overloading

public struct Complex { public int real; public int imaginary;

public Complex(int real, int imaginary) { this.real = real; this.imaginary = imaginary; }

public static Complex operator +(Complex c1, Complex c2) { return new Complex(c1.real + c2.real,

c1.imaginary + c2.imaginary); }}

► Bekannt in C++Bekannt in C++► In Java nicht vorhandenIn Java nicht vorhanden

Page 30: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

C# - Events / DelegatesC# - Events / Delegates

►Delegate: Typensicherer Delegate: Typensicherer FunktionszeigerFunktionszeiger

public delegate void ClickHandler(int x, int y);

public class Test {public event ClickHandler Click;

public void Test(){

this.Click += new ClickHandler(OnClick);}

private void OnClick(int x, int y){

//... Event behandeln}

}

Page 31: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Visual Basic.NETVisual Basic.NET

► Vollwertige Objekt-orientierte Vollwertige Objekt-orientierte ProgrammierspracheProgrammiersprache

► ThreadingThreading► Windows ServicesWindows Services► Historische Überreste von DOS Zeiten Historische Überreste von DOS Zeiten

wurden entfernt, Anpassungen für CTSwurden entfernt, Anpassungen für CTS Variant-DatentypVariant-Datentyp SETSET / / LETLET / / OPTION BASEOPTION BASE / / GOSUBGOSUB / / ONON x x GOTOGOTO / etc. / etc.

► Weitere Neuheiten Weitere Neuheiten (z.B. (z.B. AndAlsoAndAlso, , OrElseOrElse Operatoren) Operatoren)

Page 32: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Visual Basic.NET (1)Visual Basic.NET (1)

►Nachteile:Nachteile: Umstellung für Visual Basic Umstellung für Visual Basic

Programmierer ist gross. Auch für Programmierer ist gross. Auch für Einsteiger ist der Lernaufwand grösser.Einsteiger ist der Lernaufwand grösser.

Viele neue SchlüsselwörterViele neue Schlüsselwörter Portierung von VB6 Projekten nur sehr Portierung von VB6 Projekten nur sehr

beschränkt möglich.beschränkt möglich.

Page 33: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

.NET Klassenbibliothek.NET Klassenbibliothek

►Vorher: Win32 API, MFC, ATL, VB, …Vorher: Win32 API, MFC, ATL, VB, …► .NET Framework bietet OO-Bibliothek .NET Framework bietet OO-Bibliothek

mit über viel Funktionalität verteilt in mit über viel Funktionalität verteilt in über 100 Namespacesüber 100 Namespaces

Page 34: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

.NET Klassenbibliothek (1).NET Klassenbibliothek (1)Namespace Beschreibung

System Allgemeine Klassen, die häufig verwendet werden.

System.CodeDom Zum Parsen von Source-Code Dokumenten.

System.CodeDom.Compiler Klassen zum Erzeugen von Compiler

System.Collections Klassen zum Erzeugen von Listen, Hashtables, Warteschlagen etc.

System.ComponentModel Klassen, die für die Implementation von Laufzeit- und Designzeit-Verhalten von Komponenten.

System.Configuration Zum Abspeichern und Laden von Konfigurationseinstellungen

System.Data Die zentralen Klassen von ADO.NET

System.Data.Odbc Zugriff auf Daten via ODBC

System.Data.OleDb Zugriff auf Daten via OleDb

System.Data.OracleClient Für Oracle optimierte ADO.NET Schicht

System.Data.SqlClient Für Microsoft SQL Server optimierte ADO.NET Schicht

Page 35: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

.NET Klassenbibliothek (2).NET Klassenbibliothek (2)System.Diagnostics Erlaubt Interaktion mit Systemprozessen, Zugriff auf

EventLogs und Perfomance Counters.

System.DirectoryServices Ermöglicht den Zugriff auf ActiveDirectory

System.Drawing GDI+ Grafikfunktionen

System.Drawing.Drawing2D Bietet 2-dimensionale Vektorgrafik Funktionalitäten.

System.Drawing.Printing Ermöglicht Zugriff zu Druck-Funktionalitäten.

System.EnterpriseServices Bietet Grundstrukturen Unternehmenssoftware.

System.Globalization Ermöglicht Implementation von Anwendungen für verschiedene Kulturen (Sprachen, Kalender, Währungen, Zahlenformate, String-Sortierordnung etc.)

System.IO Klassen für synchrone und asynchrone Ein-/Ausgabefunktionen

System.Net Bietet einfache Schnittstellen zu gängigen Kommunikationsprotokollen.

System.Net.Sockets Erlaubt Programmierung von Netzwerkanwendungen, die auf Windows Sockets aufbauen.

System.Reflection Bietet Reflection-Funktionalität für .NET Sprachen

Page 36: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

.NET Klassenbibliothek (3).NET Klassenbibliothek (3)System.Runtime.InteropServices Bietet Zugang zu nicht .NET Bibliotheken, z.B. zu COM

System.Runtime.Remoting Für die Erstellung von verteilten Anwendungen.

System.Runtime.Serialization Bietet Unterstützung für die Serialisierung.

System.Security .NET Sicherheitskonzept

System.Security.Cryptography Ermöglicht die Verwendung von verschiedenen kryptographischen Diensten.

System.ServiceProcess Erlaubt Windows Service Anwendungen zu entwickeln.

System.Text Textfunktionalitäten, Codierungen (Unicode, UTF-8, …)

System.Text.RegularExpression Reguläre Ausdrücke

System.Threading Ermöglicht Multithreading-Anwendungen zu entwickeln.

System.Web Grundklassen von ASP.NET

System.Web.Services Ermöglicht die Erstellung von WebServices

System.Web.UI ASP.NET WebForms

System.Windows.Forms WinForms

System.XML XML Parser

Page 37: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

ADO.NETADO.NET

► ADO (Microsoft ADO (Microsoft Active-X Data Active-X Data Object)Object) Standardisiertes Standardisiertes

Modell für Modell für DatenzugriffDatenzugriff

► ADO.NETADO.NET DataSetDataSet

DBDataSet

XML

WindowsApplikation

Web Forms

B2BDBProvider

Page 38: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

ADO.NET - DatasetADO.NET - Dataset

Page 39: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

ADO.NET - DesignerADO.NET - Designer

► DataSet Design basiert auf XML SchemaDataSet Design basiert auf XML Schema► Visual Studio.NETVisual Studio.NET

Import/Export von DatenbankImport/Export von Datenbank DesignerDesigner

Page 40: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Web Forms (ASP.NET)Web Forms (ASP.NET)

►Vor .NET: ASP (Active Server Pages)Vor .NET: ASP (Active Server Pages) Skriptsprache (keine Typen, kein Kompilieren)Skriptsprache (keine Typen, kein Kompilieren) Keine Trennung von Darstellung und CodeKeine Trennung von Darstellung und Code

►Mit .NETMit .NET „„Visual Programming“Visual Programming“ Einfache Integration anderer .NET Einfache Integration anderer .NET

BibliothekenBibliotheken Objekt-OrientiertObjekt-Orientiert XML/XSLXML/XSL

Page 41: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Web Forms - Server ControlsWeb Forms - Server Controls

► Server Controls = Dynamische Server Controls = Dynamische Komponenten, die auf dem Webserver Komponenten, die auf dem Webserver laufenlaufen

<form id="Form1" method="post" runat="server"><asp:Button id="Button1" runat="server" Text="Button"/></form>

Page 42: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Web Forms – „Codebehind“Web Forms – „Codebehind“

►„„Codebehind“-Technik erlaubt Codebehind“-Technik erlaubt Trennung von HTML/XHTML Trennung von HTML/XHTML ASPX HeaderASPX Header

Codebehind KlasseCodebehind Klasse►wird kompiliert wird kompiliert DLL im Unterverzeichnis /bin DLL im Unterverzeichnis /bin

<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Test1.WebForm1" %>

Page 43: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Web Forms – „Codebehind“Web Forms – „Codebehind“

►ASPX-Seite erbt Button1 von ASPX-Seite erbt Button1 von WebForm1WebForm1

public class WebForm1 : System.Web.UI.Page{ protected System.Web.UI.WebControls.Button Button1;

private void Button1_Click(object sender, System.EventArgs e) { // Code }

// anderer Code}

Page 44: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Web Forms - ViewStateWeb Forms - ViewState

► Problem: Kontext!Problem: Kontext!► AnsatzAnsatz

Application-KontextApplication-Kontext Session-KontextSession-Kontext

► Implementiert durch Cookie (oder falls Cookie Implementiert durch Cookie (oder falls Cookie abgeleht wurde mit SessionID in URL)abgeleht wurde mit SessionID in URL)

ViewState-KontextViewState-Kontext► Problem:Problem:► Implementiert durch verstecktes HTML FormularfeldImplementiert durch verstecktes HTML Formularfeld► VerschlüsseltVerschlüsselt

Page 45: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Web Forms – User ControlsWeb Forms – User Controls

►Web User ControlWeb User Control Wie gewöhnliches WebFormWie gewöhnliches WebForm Beim Rendern wird kein HTML Header Beim Rendern wird kein HTML Header

erzeugterzeugt z.B. für Navigationsleistez.B. für Navigationsleiste

►Custom ControlCustom Control Eigenes Server ControlEigenes Server Control Eigene EventsEigene Events z.B. für spezielle Buttons z.B. für spezielle Buttons

Page 46: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Localization & GlobalizationLocalization & Globalization

► Was ist Localization?Was ist Localization? Sprache der BenutzeroberflächeSprache der Benutzeroberfläche Datum & Zeit Formate, String Indexing, …Datum & Zeit Formate, String Indexing, …

► CulturesCultures Beispiele: ”en-US”, ”de-CH”, ”fr-CH”Beispiele: ”en-US”, ”de-CH”, ”fr-CH”

► RessourcenRessourcen Ressourcen (.resx)Ressourcen (.resx) Sprachabhängige Ressourcen (.de.resx)Sprachabhängige Ressourcen (.de.resx) Kompilierte Ressourcen (.dll, de-CH.dll)Kompilierte Ressourcen (.dll, de-CH.dll) Fallback-PrinzipFallback-Prinzip

Page 47: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Localization & GlobalizationLocalization & Globalization

► Windows FormWindows Form Design-Time Design-Time

Properties: Properties: Localizable, Localizable, LanguageLanguage

Windows Forms Windows Forms Resource Editor Resource Editor (Winres.exe)(Winres.exe)

Page 48: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Mobile ProgrammingMobile Programming

► Software fürSoftware für PDAsPDAs MobiltelefoneMobiltelefone

► .NET .NET Framework Framework Version 1.1Version 1.1 SQL Server CESQL Server CE

Page 49: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

DeploymentDeployment

► Auslieferung von SoftwareAuslieferung von Software► Vor .NETVor .NET

EXE-DateiEXE-Datei DLLs in Windows\System32 (Versionsprobleme)DLLs in Windows\System32 (Versionsprobleme) ActiveX DLLs registrieren (regsvr32.exe)ActiveX DLLs registrieren (regsvr32.exe) Tools wie InstallShieldTools wie InstallShield

► Mit .NETMit .NET EXE-Datei und abhängige DLLs in ein Verzeichnis EXE-Datei und abhängige DLLs in ein Verzeichnis

kopierenkopieren Für komplexere Dinge wie Webapplikationen oder Für komplexere Dinge wie Webapplikationen oder

Windows Services Setups (MSI-Datei) generieren.Windows Services Setups (MSI-Datei) generieren.

Page 50: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Tools für .NET EntwicklerTools für .NET Entwickler

► Microsoft .NET Framework SDKMicrosoft .NET Framework SDK Command-Line ToolsCommand-Line Tools CompilerCompiler Gratis [108 MB] Gratis [108 MB]

http://www.microsoft.com/net/http://www.microsoft.com/net/► Microsoft Visual Studio .NETMicrosoft Visual Studio .NET

verschiedene Editionenverschiedene Editionen► AlternativenAlternativen

Borland Delphi 7 Studio (nur für Delphi)Borland Delphi 7 Studio (nur für Delphi) Borland C# Builder (noch nicht fertig!)Borland C# Builder (noch nicht fertig!)

Page 51: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

FazitFazit

► Neue Dimension von Windows Neue Dimension von Windows ProgrammierungProgrammierung C++/MFC/COM… zu kompliziertC++/MFC/COM… zu kompliziert Visual Basic 6 nicht OOVisual Basic 6 nicht OO

► Übergang zu .NETÜbergang zu .NET Radikale ÄnderungenRadikale Änderungen Unterstützung für „unsafe“ Code, Einbindung von Unterstützung für „unsafe“ Code, Einbindung von

anderen Bibliotheken (z.B. COM)anderen Bibliotheken (z.B. COM)► Neuer KomfortNeuer Komfort

elegantes Konzept für Webapplikationenelegantes Konzept für Webapplikationen WebServices (Neues Konzept von Software)WebServices (Neues Konzept von Software)

Page 52: Grundlagen des Microsoft.NET Frameworks Master Seminar Advanced Software Engineering Topics Patric Zbinden 1. Mai 2003.

Fertig!Fertig!

► Fragen?Fragen?► DiskussionDiskussion