Grundlagen des Microsoft .NET Frameworks -...

Preview:

Citation preview

Grundlagen des Microsoft Grundlagen des Microsoft .NET Frameworks.NET Frameworks

Master SeminarMaster SeminarAdvancedAdvanced Software Engineering TopicsSoftware Engineering Topics

Patric ZbindenPatric Zbinden

1. Mai 20031. Mai 2003

ÜbersichtÜbersicht

(1)(1) Die .NET Die .NET StategieStategie(2)(2) Common Common LanguageLanguage RuntimeRuntime (CLR)(CLR)(3)(3) ProgrammingProgramming in .NET (C#, VB.NET)in .NET (C#, VB.NET)(4)(4) .NET Framework Klassenbibliothek.NET Framework Klassenbibliothek

(1)(1) Datentechnik (ADO.NET)Datentechnik (ADO.NET)(2)(2) Web Web FormsForms (ASP.NET)(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 Interface zu Windows servicesservices und APIund API►►ProduktgruppenProduktgruppen

Entwicklungstools (Programmiersprachen, Visual Entwicklungstools (Programmiersprachen, Visual Studio.NETStudio.NET, .NET Framework SDK), .NET Framework SDK)Spezialisierte Server (SQL, Exchange, BizTalk)Spezialisierte Server (SQL, Exchange, BizTalk)WebServicesWebServicesGeräte (Windows CE, Geräte (Windows CE, PocketPCPocketPC))

.NET Strategie.NET Strategie

►►Verteiltes Rechnen (XML Web Services)Verteiltes Rechnen (XML Web Services)RemotingRemoting Architektur basierend auf offene Architektur basierend auf offene Internet Standards (HTTP, XML, SOAP)Internet Standards (HTTP, XML, SOAP)

►►Komponenten InfrastrukturKomponenten InfrastrukturCOM war zu komplexCOM war zu komplex

►►Enterprise Enterprise servicesservices►►Web TechnologieWeb Technologie►►EinfacesEinfaces DeploymentDeployment, Zuverlässigkeit, , Zuverlässigkeit,

Sicherheit, …Sicherheit, …

.NET Enterprise Servers.NET Enterprise Servers►► Microsoft Microsoft ApplicationApplication Center 2000Center 2000 to to deploydeploy and manage and manage highlyhighly availableavailable and and

scalablescalable Web Web applicationsapplications. . ►► Microsoft BizTalk Server 2002Microsoft BizTalk Server 2002 to to buildbuild XMLXML--basedbased businessbusiness processesprocesses acrossacross

applicationsapplications and and organizationsorganizations. . ►► Microsoft Commerce Server 2002Microsoft Commerce Server 2002 forfor quicklyquickly buildingbuilding scalablescalable ee--commercecommerce

solutionssolutions. . ►► Microsoft Microsoft ContentContent Management Server 2001Management Server 2001 to manage to manage contentcontent forfor dynamicdynamic ee--

businessbusiness Web Web sitessites. . ►► Microsoft Exchange Server 2000Microsoft Exchange Server 2000 to to enableenable messagingmessaging and and collaborationcollaboration anytimeanytime, ,

anywhereanywhere. . ►► Microsoft Host Integration Server 2000Microsoft Host Integration Server 2000 forfor bridgingbridging to to datadata and and applicationsapplications on on

mainframemainframe legacylegacy systemssystems. . ►► Microsoft Internet Microsoft Internet SecuritySecurity and and AccelerationAcceleration Server 2000Server 2000 forfor SSLSSL--securedsecured, fast , fast

Internet Internet connectivityconnectivity. . ►► Microsoft Mobile Information 2001 ServerMicrosoft Mobile Information 2001 Server to to enableenable applicationapplication supportsupport byby mobile mobile

devicesdevices likelike cellcell phonesphones. . ►► Microsoft Microsoft SharePointSharePoint™ Portal Server 2001™ Portal Server 2001 to find, to find, shareshare, and , and publishpublish businessbusiness

informationinformation. . ►► Microsoft SQL Server™ 2000Microsoft SQL Server™ 2000 to to storestore, , retrieveretrieve, and , and analyzeanalyze structuredstructured XML XML datadata. .

ComponentComponent InfrastructureInfrastructure

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

►► COMCOMVorteil: Sprachunabhängig, Internet tauglich (DCOM)Vorteil: Sprachunabhängig, Internet tauglich (DCOM)Nachteile: Nachteile: ►►Kompliziert (COM Kompliziert (COM identityidentity, , lifetimelifetime, , binarybinary layout layout rulesrules…)…)►►Keine Sprachintegration (keine Vererbung, keine Keine Sprachintegration (keine Vererbung, keine ExceptionsExceptions, …), …)

Common Common LanguageLanguage RuntimeRuntime (CLR)(CLR)

►►Wie: Java Wie: Java VirtualVirtual MachineMachine►►Virtuelle Maschine für Virtuelle Maschine für IntermediateIntermediate

LanguageLanguage IL Code.IL Code.►►AufgabenAufgaben

Ausführung von CodeAusführung von CodeTypenkontrolleTypenkontrolleSicherheitsüberprüfungenSicherheitsüberprüfungenGarbageGarbage collectioncollection……

Ausführbare DateienAusführbare Dateien

►► DateiDatei--EndungenEndungen: EXE, DLL: EXE, DLL►► Windows Portable Windows Portable ExecutableExecutable (PE) Standard(PE) Standard

CLR AusführungCLR Ausführung

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

von Maschinencodevon MaschinencodeGlobal Global AssemblyAssembly Cache (GAC)Cache (GAC)JustJust--InIn--TimeTime (JIT) Compiler(JIT) Compiler

►►Vergleich mit der JVM:Vergleich mit der JVM:InterpreterInterpreterErweiterungen: Erweiterungen: HotSpotHotSpot CompilerCompiler

JVM vs. CLRJVM vs. CLR

►►CLRCLRAusgerichtet für verschiedene Ausgerichtet für verschiedene ProgrammiersprachenProgrammiersprachenIm Moment für WindowsIm Moment für Windows--SystemeSysteme(Mono Projekt (Mono Projekt LinuxLinux))

►►JVMJVMNur für JavaNur für JavaErhältlich auf den meisten PlattformenErhältlich auf den meisten Plattformen

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

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

►►Zwei KategorienZwei KategorienReferenzReferenz--TypenTypenWerteWerte--TypenTypen

ReferenzReferenz-- vs. Wertevs. Werte--TypenTypen

►►Interne Behandlung der CLRInterne Behandlung der CLR

ReferenzReferenz-- vs. Wertevs. Werte--TypenTypen

►►Konsequenzen für ProgrammiererKonsequenzen für ProgrammiererZuweisung: a = bZuweisung: a = bGleichheit: a == bGleichheit: a == bInitialisierungInitialisierung

WerteWerte--TypenTypen

►►UnterkategorienUnterkategorienBasisBasis--Typen („Typen („buildbuild--inin typestypes“, „primitive “, „primitive typestypes“)“)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.

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

ReferenzReferenz--TypenTypen

►►UnterkategorienUnterkategorienSelbstbeschreibende TypenSelbstbeschreibende Typen►►Array TypenArray Typen►►KlassenKlassen

Benutzerdefinierte KlassenBenutzerdefinierte KlassenGekapselte Wertetypen (Gekapselte Wertetypen (boxedboxed classesclasses))

►►DelegatesDelegates

ZeigerZeiger--Typen (Pointer)Typen (Pointer)InterfaceInterface--TypenTypen

BoxingBoxing / / UnboxingUnboxing

►►BoxingBoxing: Konvertierung von Wertetyp zu : Konvertierung von Wertetyp zu ReferenztypReferenztyp

BeispielBeispielintint i = 20; // Wertetypi = 20; // Wertetypobjectobject box = i; // Referenztyp box = i; // Referenztyp --> > BoxingBoxing

►►UnboxingUnboxing: Umgekehrte Operation: Umgekehrte OperationBeispielBeispielintint j = (j = (int)boxint)box; // ; // UnboxingUnboxing

►►Vergleich mit Java: Explizite Vergleich mit Java: Explizite BoxingBoxing KlassenKlassen

ObjektorientiereObjektorientiere KonzepteKonzepte

►►Die CLR unterstützt OO Konzepte (wie Die CLR unterstützt OO Konzepte (wie Kapselung, Vererbung und Kapselung, Vererbung und PolymorphismusPolymorphismus))

KlassenKlassenMethodenMethodenFelderFelderStatische Felder/MethodenStatische Felder/MethodenInnere KlassenInnere KlassenInterfacesInterfacesu.s.wu.s.w..

ProgrammiersprachenProgrammiersprachen

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

APL, COBOL, Delphi, Eiffel, APL, COBOL, Delphi, Eiffel, ForthForth, , FortranFortran, , HaskelHaskel, J#, , J#, JScript.NETJScript.NET, Mercury, , Mercury, MondrianMondrian, , Oberon, Pascal, Perl, Python, RPG, Oberon, Pascal, Perl, Python, RPG, SchemeScheme, S#, S#Viele sind aber noch in BetaViele sind aber noch in Beta--PhasePhase

C#C#

►►Neue ProgrammierspracheNeue Programmiersprache►►ObjektObjekt--orientiertorientiert►►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 UnterschiedeViele Gemeinsamkeiten aber auch UnterschiedeSyntaxSyntax

namespacenamespacepackagepackage

weitere…weitere…

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

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

::extendsextends

sealedsealed classclassfinal final classclass

basebasesupersuper

C#C#JavaJava

C#C#

►► AufzählungstypenAufzählungstypenTypenTypen--KontrolleKontrolle

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

}

C# C# -- FunktionsparameterFunktionsparameter

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# C# -- foreachforeach SchleifeSchleife

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# C# -- PropertiesProperties►► Verwendung wie Felder, aber funktioniert wie MethodenVerwendung wie Felder, aber funktioniert wie Methoden

Beispiel:Beispiel: Anstelle von zwei Methoden Anstelle von zwei Methoden getVisiblegetVisible(), (), setVisiblesetVisible(…)(…)

public bool Visible {

get { return _bVisible; }set {

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

}}

}

C# C# -- IndexersIndexers

►►Zugriff auf Elemente eines Arrays:Zugriff auf Elemente eines Arrays:intint[] a = {3, 4};[] a = {3, 4};a[ia[i] = 1;] = 1;Console.Write(a[iConsole.Write(a[i]); // Ausgabe: 1]); // Ausgabe: 1

►►IndexerIndexer ermöglicht diesen Syntax auch für ermöglicht diesen Syntax auch für andere Klassen zu verwenden:andere Klassen zu verwenden:stringstring s = “Test“;s = “Test“;Console.Write(s[0]); // Ausgabe: TConsole.Write(s[0]); // Ausgabe: T

C# C# -- IndexersIndexers (2)(2)

►► Wie ein Wie ein PropertyProperty mit dem Namen „mit dem Namen „thisthis“ und mit “ und mit Argument(eArgument(e) in eckigen Klammern.) in eckigen Klammern.

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

get { … }set { … }

}

C# C# -- Operator Operator overloadingoverloading

►► Bekannt in C++Bekannt in C++►► In Java nicht vorhandenIn Java nicht vorhandenpublic 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);}

}

C# C# -- Events / Events / DelegatesDelegates

►►DelegateDelegate: Typensicherer Funktionszeiger: Typensicherer Funktionszeiger

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 Visual Basic.NETBasic.NET

►► Vollwertige Vollwertige ObjektObjekt--orientierteorientierte ProgrammierspracheProgrammiersprache►► ThreadingThreading►► Windows ServicesWindows Services►► Historische Überreste von DOS Zeiten wurden Historische Überreste von DOS Zeiten wurden

entfernt, Anpassungen für CTSentfernt, Anpassungen für CTSVariantVariant--DatentypDatentypSETSET / / LETLET / / OPTION BASEOPTION BASE / / GOSUBGOSUB / / ONON x x GOTOGOTO / etc./ etc.

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

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

►►Nachteile:Nachteile:Umstellung für Visual Basic Programmierer ist Umstellung für Visual Basic Programmierer ist gross. Auch für Einsteiger ist der Lernaufwand gross. Auch für Einsteiger ist der Lernaufwand grösser.grösser.Viele neue SchlüsselwörterViele neue SchlüsselwörterPortierung 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.NET Framework bietet OO--Bibliothek mit Bibliothek mit

über viel Funktionalität verteilt in über 100 über viel Funktionalität verteilt in über 100 NamespacesNamespaces

.NET Klassenbibliothek (1).NET Klassenbibliothek (1)

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

Für Oracle optimierte ADO.NET SchichtSystem.Data.OracleClient

Zugriff auf Daten via OleDbSystem.Data.OleDb

Zugriff auf Daten via ODBCSystem.Data.Odbc

Die zentralen Klassen von ADO.NETSystem.Data

Zum Abspeichern und Laden von Konfigurationseinstellungen

System.Configuration

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

System.ComponentModel

Klassen zum Erzeugen von Listen, Hashtables, Warteschlagen etc.

System.Collections

Klassen zum Erzeugen von CompilerSystem.CodeDom.Compiler

Zum Parsen von Source-Code Dokumenten.System.CodeDom

Allgemeine Klassen, die häufig verwendet werden.System

BeschreibungNamespace

.NET Klassenbibliothek (2).NET Klassenbibliothek (2)

Bietet Reflection-Funktionalität für .NET SprachenSystem.Reflection

Erlaubt Programmierung von Netzwerkanwendungen, die auf Windows Sockets aufbauen.

System.Net.Sockets

Bietet einfache Schnittstellen zu gängigen Kommunikationsprotokollen.

System.Net

Klassen für synchrone und asynchrone Ein-/Ausgabefunktionen

System.IO

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

System.GlobalizationBietet Grundstrukturen Unternehmenssoftware.System.EnterpriseServicesErmöglicht Zugriff zu Druck-Funktionalitäten.System.Drawing.PrintingBietet 2-dimensionale Vektorgrafik Funktionalitäten.System.Drawing.Drawing2DGDI+ GrafikfunktionenSystem.DrawingErmöglicht den Zugriff auf ActiveDirectorySystem.DirectoryServices

Erlaubt Interaktion mit Systemprozessen, Zugriff auf EventLogs und Perfomance Counters.

System.Diagnostics

.NET Klassenbibliothek (3).NET Klassenbibliothek (3)

XML ParserSystem.XMLWinFormsSystem.Windows.FormsASP.NET WebFormsSystem.Web.UIErmöglicht die Erstellung von WebServicesSystem.Web.ServicesGrundklassen von ASP.NETSystem.WebErmöglicht Multithreading-Anwendungen zu entwickeln.System.Threading

Reguläre AusdrückeSystem.Text.RegularExpressionTextfunktionalitäten, Codierungen (Unicode, UTF-8, …)System.TextErlaubt Windows Service Anwendungen zu entwickeln.System.ServiceProcess

Ermöglicht die Verwendung von verschiedenen kryptographischen Diensten.

System.Security.Cryptography.NET SicherheitskonzeptSystem.SecurityBietet Unterstützung für die Serialisierung.System.Runtime.SerializationFür die Erstellung von verteilten Anwendungen.System.Runtime.Remoting

Bietet Zugang zu nicht .NET Bibliotheken, z.B. zu COMSystem.Runtime.InteropServices

ADO.NETADO.NET

►► ADO (Microsoft ADO (Microsoft ActiveActive--XX DataData ObjectObject))

Standardisiertes Modell Standardisiertes Modell für Datenzugrifffür Datenzugriff

►► ADO.NETADO.NETDataSetDataSet

DBDataSet

B2B

WindowsApplikation

Web Forms

XML

DBProvider

ADO.NET ADO.NET -- DatasetDataset

ADO.NET ADO.NET -- DesignerDesigner

►► DataSetDataSet Design basiert auf XML SchemaDesign basiert auf XML Schema►► Visual Visual Studio.NETStudio.NET

Import/Export von DatenbankImport/Export von DatenbankDesignerDesigner

Web Web FormsForms (ASP.NET)(ASP.NET)

►►Vor .NET: ASP (Vor .NET: ASP (ActiveActive Server Server PagesPages))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 „Visual ProgrammingProgramming““Einfache Integration anderer .NET BibliothekenEinfache Integration anderer .NET BibliothekenObjektObjekt--OrientiertOrientiertXML/XSLXML/XSL

Web Web FormsForms -- Server ControlsServer Controls

►► Server Controls = Dynamische Komponenten, die Server Controls = Dynamische Komponenten, die auf dem Webserver laufenauf dem Webserver laufen

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

Web Web FormsForms –– „„CodebehindCodebehind““

►►„„Codebehind“Codebehind“--TechnikTechnik erlaubt Trennung von erlaubt Trennung von HTML/XHTML HTML/XHTML

ASPX ASPX HeaderHeader

CodebehindCodebehind KlasseKlasse►►wird kompiliert wird kompiliert DLL im Unterverzeichnis /bin

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

DLL im Unterverzeichnis /bin

Web Web FormsForms –– „„CodebehindCodebehind““

►►ASPXASPX--SeiteSeite erbt Button1 von WebForm1erbt Button1 von WebForm1

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 Web FormsForms -- ViewStateViewState

►► Problem: Kontext!Problem: Kontext!►► AnsatzAnsatz

ApplicationApplication--KontextKontextSessionSession--KontextKontext►► Implementiert durch Implementiert durch CookieCookie (oder falls (oder falls CookieCookie abgelehtabgeleht

wurde mit wurde mit SessionIDSessionID in URL)in URL)

ViewStateViewState--KontextKontext►►Problem:Problem:►► Implementiert durch verstecktes HTML FormularfeldImplementiert durch verstecktes HTML Formularfeld►►VerschlüsseltVerschlüsselt

Web Web FormsForms –– User ControlsUser Controls

►►Web User Web User ControlControlWie gewöhnliches Wie gewöhnliches WebFormWebFormBeim Beim RendernRendern wird kein HTML wird kein HTML HeaderHeader erzeugterzeugtz.B. für Navigationsleistez.B. für Navigationsleiste

►►CustomCustom ControlControlEigenes Server Eigenes Server ControlControlEigene EventsEigene Eventsz.B. für spezielle Buttons z.B. für spezielle Buttons

LocalizationLocalization & & GlobalizationGlobalization

►► Was ist Was ist LocalizationLocalization??Sprache der BenutzeroberflächeSprache der BenutzeroberflächeDatum & Zeit Formate, String Datum & Zeit Formate, String IndexingIndexing, …, …

►► CulturesCulturesBeispiele: ”Beispiele: ”enen--USUS”, ””, ”dede--CHCH”, ””, ”frfr--CHCH””

►► RessourcenRessourcenRessourcen (.Ressourcen (.resxresx))Sprachabhängige Ressourcen (.Sprachabhängige Ressourcen (.de.resxde.resx))Kompilierte Ressourcen (.Kompilierte Ressourcen (.dlldll, , dede--CH.dllCH.dll))FallbackFallback--PrinzipPrinzip

LocalizationLocalization & & GlobalizationGlobalization

►► Windows FormWindows FormDesignDesign--TimeTime PropertiesProperties: : LocalizableLocalizable, , LanguageLanguageWindows Windows FormsFormsResourceResource Editor Editor ((Winres.exeWinres.exe))

Mobile Mobile ProgrammingProgramming

►► Software fürSoftware fürPDAsPDAsMobiltelefoneMobiltelefone

►► .NET Framework .NET Framework Version 1.1Version 1.1

SQL Server CESQL Server CE

DeploymentDeployment

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

EXEEXE--DateiDateiDLLsDLLs in Windowsin Windows\\System32 (Versionsprobleme)System32 (Versionsprobleme)ActiveXActiveX DLLsDLLs registrieren (regsvr32.exe)registrieren (regsvr32.exe)Tools wie Tools wie InstallShieldInstallShield

►► Mit .NETMit .NETEXEEXE--DateiDatei und abhängige und abhängige DLLsDLLs in ein Verzeichnis in ein Verzeichnis kopierenkopierenFür komplexere Dinge wie Webapplikationen oder Für komplexere Dinge wie Webapplikationen oder Windows Services Setups (MSIWindows Services Setups (MSI--Datei) generieren.Datei) generieren.

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

►► Microsoft .NET Framework SDKMicrosoft .NET Framework SDKCommandCommand--LineLine ToolsToolsCompilerCompilerGratis [108 MB] Gratis [108 MB] http://http://www.microsoft.comwww.microsoft.com//netnet//

►► Microsoft Visual Studio .NETMicrosoft Visual Studio .NETverschiedene Editionenverschiedene Editionen

►► AlternativenAlternativenBorlandBorland Delphi 7 Studio (nur für Delphi)Delphi 7 Studio (nur für Delphi)BorlandBorland C# C# BuilderBuilder (noch nicht fertig!)(noch nicht fertig!)

FazitFazit

►► Neue Dimension von Windows ProgrammierungNeue Dimension von Windows ProgrammierungC++/MFC/COM… zu kompliziertC++/MFC/COM… zu kompliziertVisual Basic 6 nicht OOVisual Basic 6 nicht OO

►► Übergang zu .NETÜbergang zu .NETRadikale ÄnderungenRadikale ÄnderungenUnterstützung für „Unterstützung für „unsafeunsafe“ Code, Einbindung von “ Code, Einbindung von anderen Bibliotheken (z.B. COM)anderen Bibliotheken (z.B. COM)

►► Neuer KomfortNeuer Komfortelegantes Konzept für Webapplikationenelegantes Konzept für WebapplikationenWebServicesWebServices (Neues Konzept von Software)(Neues Konzept von Software)

Fertig!Fertig!

►► Fragen?Fragen?►► DiskussionDiskussion

Recommended