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
Top Related