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

Post on 06-Apr-2015

112 views 0 download

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

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

Ü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

.NET Strategie.NET Strategie

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)

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

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

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

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

Ausführbare DateienAusführbare Dateien

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

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

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

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

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

► Interne Behandlung der CLRInterne Behandlung der CLR

Stack

ManagedHeap

Referenz

Mein Objekt

Stack

ManagedHeap

Mein Wert

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

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.

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)

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

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

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.

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

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

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…

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

}

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

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

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;

}}

}

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

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 { … }

}

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

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}

}

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)

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.

.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

.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

.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

.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

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

ADO.NET - DatasetADO.NET - Dataset

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

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

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>

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" %>

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}

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

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

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

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)

Mobile ProgrammingMobile Programming

► Software fürSoftware für PDAsPDAs MobiltelefoneMobiltelefone

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

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.

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

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)

Fertig!Fertig!

► Fragen?Fragen?► DiskussionDiskussion