Startseite Inhaltsverzeichnis >>
Kapitel 1 - Das .NET Framework 3.0
1.1 Einführung
Ende 2006 war es soweit. Das vormals mit WinFX bezeichnete und als Aufsatz zum .NET Framework 2.0 propagierte .NET Framework 3.0 wurde von Microsoft freigegeben. Vormals nur für die Verwendung unter Windows Vista gedacht ist es auch nun auch für Windows XP und Windows 2003 verfügbar. Bis zum Mai 2006 firmierte das Framework noch unter dem Namen WinFX, was häufig als Windows Framework Extensions (WinFX) bezeichnet wurde. Andere Quellen sprechen davon, dass WinFX auch als "Win Effects" ausgesprochen werden sollte, aber das sind alles alte Hüte. Im Mai 2006 entschied man sich für einen neuen Namen und auch für eine andere Vermarktung. Das .NET Framework 3.0, der neue Name für WinFX, sollte den Fortschritt des .NET Frameworks nicht nur inhaltlich sondern auch in der Versionsnummer dokumentieren.
Ein paar Konsequenzen hat diese Umbenennung allerdings schon. Während WinFX noch als Aufsatz zum bisherigen .NET Framework fungierte, ist das .NET Framework 3.0 eine echte neue und vollständige Version. Sie enthält deshalb auch das .NET Framework 2.0, welches die Basis für das neue Framework ist. .NET 3.0 ist aber nur für Windows Vista, Windows 2003 und Windows XP verfügbar. Windows 2000 und ältere Windows-Versionen werden nicht mehr unterstützt. Damit dürfte für die Zukunft das .NET Framework 2.0 das letzte sein, das noch mit den älteren Windows-Versionen eingesetzt werden kann. Sie müssen dies zumindest für Ihre Anwendungsentwicklung im Auge behalten.
Früher Testbeginn
Microsoft begann schon recht früh, Vorabversionen des .NET 3.0 Frameworks einer größeren Entwicklergemeinde zur Verfügung zu stellen. Diese Vorabversionen wurden auch als CTP (Community Technology Preview) bezeichnet. Dies führte dazu, dass man sich schon sehr früh mit den Fähigkeiten des nächsten Meilensteins im .NET Framework vertraut machen konnte und es begannen bereits recht früh einige Firmen mit der Entwicklung erster Software, die auf dem .NET Framework 3.0 basierte. Deshalb wurde die Verwendung von .NET 3.0-Anwendungen in Live-Systemen von Microsoft frühzeitig über so genannte Go-Live-Lizenzen erlaubt. Diese standen anfangs nur für die WCF (Windows Communication Foundation) und WF (Windows Workflow Foundation) zur Verfügung. Mittlerweile sind sie natürlich überflüssig geworden. Für zukünftige Frameworks kann dies allerdings wieder interessant werden.
Die Homepage für die .NET 3.0-Entwicklung ist momentan unter http://msdn2.microsoft.com/en-us/netframework/default.aspx zu finden. Dort finden Sie unter verschiedenen Kategorien Wissenswertes über die Bestandteile von .NET 3.0.
Die Säulen des .NET Frameworks 3.0 stellen die folgenden vier Bestandteile dar, wobei in einigen Fällen Windows Cardspace nicht immer dazu gezählt wird:
- Windows Presentation Foundation (WPF)
- Windows Communication Foundation (WCF)
- Windows Workflow Foundation (WF)
- Windows CardSpace
Abbildung 1.1: Säulen des .NET Frameworks 3.0
HINWEIS: Das .NET Framework 3.0 beinhaltet nur die in der Abbildung gezeigten neuen APIs. Spracherweiterungen wurden in dieser Version nicht vorgenommen. Dies ist erst der nächsten Version vorbehalten, die noch dieses Jahr (2007) erscheinen soll.
1.1.1 Windows Presentation Foundation
Die Windows Presentation Foundation, kurz WPF, war früher unter dem Codenamen Avalon bekannt. Sie stellt den grafischen Aspekt bei der Entwicklung von .NET 3.0-Anwendungen dar und ist das Hauptthema dieses Buches. Sie enthält unter anderem Klassen für die Darstellung von 2D- und 3D-Grafiken, Animationen, der Definition von Stilen (z.B. für Komponenten) und vieles mehr. Eine Besonderheit ist die neue deskriptive Sprache XAML (eXtensible Application Markup Language), über die neben C#- oder Visual Basic-Code auch mittels einer XML-Syntax eine Oberfläche beschrieben werden kann. Dies hat insbesondere Vorteile für die Trennung von Logik und Darstellung in einer Anwendung. Während Grafikdesigner sich um die Aspekte der Benutzeroberfläche kümmern können,
Für den Entwickler hat die WPF mehrere Vorteile, beispielsweise:
- Die WPF ist ein leistungsfähiges Framework für anspruchsvollste Benutzerschnittstellen.
- Es kann eine striktere Trennung der Entwicklungsaufgaben zwischen Programmierern und Designern erfolgen der auch über separate Tools Genüge getan wird.
- Die WPF stellt die Möglichkeit zur Entwicklung von allein ablauffähigen Windows-Anwendungen und Anwendungen die im Browser ausgeführt werden bereit, wobei beide auf der gleichen Codebasis aufsetzen.
1.1.2 Windows Communication Foundation
Für die Kommunikation zwischen mehreren Anwendungen, Prozessen und/oder Rechnern bietet die Windows Communication Foundation, kurz WCF, das notwendige Rüstzeug. Vorher war das Framework auch unter dem Namen Indigo bekannt. Die WCF setzt dabei auf vorhandenen Technologien wie ASP.NET Web Services, MSMQ, .NET Remoting oder Enterprise Services auf. Sie vereinfacht deren Nutzung und erlaubt die besten bzw. die geeignetsten Technologien für eine Problemstellung zu nutzen, da Sie nun nicht mehr an eine einzige Technologie gebunden sind. Weiterhin vereinfacht sie die Nutzung der vorhandenen Technologien durch ein einheitliches Framework. Folgende Dienste können Sie z.B. verwenden:
- Gesicherte Nachrichtenversendung über Message Queuing
- Transaktionsunterstützung
- Session-Management
- (A)Synchrone entfernte Prozeduraufrufe
- Unterschiedliche Transportprotokolle
1.1.3 Windows Workflow Foundation
In einem Unternehmen sind optimale Workflows im Arbeitsprozess die Basis für den Erfolg. Müssen Workflows über Programme nachgebildet werden stellen sich verschiedene Probleme. Was passiert, wenn ein Teilnehmer eines Workflows nicht verfügbar ist? Wie wartet eine Anwendung auf eine Nachricht? Wie werden parallele Arbeitsschritte wieder zusammengeführt? All dies und mehr wird durch ein neues Framework vereinfacht, die Windows Workflow Foundation, kurz WF (nicht WWF, um Verwechselungen mit anderen Abkürzungen aus dem Wege zu gehen). Im Gegensatz zur WPF und WCF war die WF nie unter einem anderen Codenamen populär. Basis der WF ist eine Workflow Engine sowie ein API. Die Bestandteile eines Workflows werden durch Aktivitäten bereitgestellt, wobei auch eigene Aktivitäten erstellt werden können. Eine Aktivität könnte z.B. der Aufruf eines Web Services sein, eine andere der Versand einer EMail.
Es werden zwei grundsätzliche Arten von Workflows unterstützt. Zustandsbehaftete Workflows wechseln durch äußere Einflüsse von einem Zustand in einen anderen. So kann ein Workflow z.B. auf die Bestätigungs-EMail eines verantwortlichen Mitarbeiters warten, um eine Bestellung auszulösen. Sequentielle Workflows arbeiten einen Workflow ähnlich wie eine "normalen" C#-Anwendung ab, wobei hier aber auch äußere Einflüsse steuernd einwirken können.
Microsoft verwendet in den eigenen Produkten wie Office 2007, BizTalk Server oder SharePoint ebenfalls die WF. Außerdem lassen sich diese Produkte in eigene Workflows einbinden.
HINWEIS: Wie schon die vorigen Versionen des .NET Frameworks ist auch die neue Version kostenfrei zu verwenden, was bei der Leistungsfähigkeit der einzelnen Bestandteile nicht unbedingt selbstverständlich ist.
1.1.4 Weitere Technologien und Tools
Die folgenden Tools gehören entweder mit zum .NET Framework, erleichtern die Arbeit damit oder waren einmal als Bestandteil des Frameworks im Gespräch.
| Framework / Technologie | Beschreibung |
| Windows Cardspace | Zur Autorisierung (z.B. durch WebFormulare) bietet Windows Cardspace (früher Infocard) die einfache Verwaltung und Übertragung von den benötigten Daten an. Dabei wird nur die Bereitstellung und Selektion der Daten durch Cardspace erledigt. Die Autorisierung selbst wird durch bereits vorhandene Implementierungen vorgenommen. |
| WinFS | Das neue Windows Filesystem sollte ein datenbankbasiertes Dateisystem werden, um die Verwaltung und Suche nach Dateien sowie deren Inhalten zu verbessern. Der geplante Einsatz in Windows Vista ist nicht erfolgt und nach dem aktuellen Stand wird es WinFS, wie es einmal geplant war, nicht mehr geben. |
| Visual Studio 2005 | Obwohl nicht dafür vorgesehen kann das Visual Studio 2005 mithilfe der Visual Studio Extensions zur Entwicklung von Anwendungen für das .NET Framework 3.0 verwendet werden. |
| Expression Blend | Dieses Tools ist Bestandteil von Microsoft Expression, einer Tool Suite bestehend aus den vier Produkten Expression Web für die Entwicklung von WebSeiten, Expression Design für die Erstellung von Grafiken, Expression Media zur Verwaltung digitaler Medien wie Bildern und Videos sowie Expression Blend zur Entwicklung von Benutzeroberflächen von .NET-Anwendungen. |
| | Alle Tools basieren auf .NET 3.0 und nutzen z.B. die Vorteile der WPF. |
Tabelle 1.1: Übersicht weiterer Technologien
Die aktuelle deutsche Seite zu Microsoft Expression finden Sie unter http://www.microsoft.com/products/expression/de/default.mspx.
nach oben
1.2 Installation
Die Installation von .NET 3.0 unterscheidet sich nicht grundlegend von .NET 2.0. Für die Entwicklung von .NET 3.0-Anwendungen ist allerdings etwas mehr Aufwand zu treiben. Die Vorgehensweise der Installation soll jetzt kurz beschrieben werden.
Das .NET Frameworks 3.0 ist bereits in Windows Vista vorinstalliert, so dass sie hier lediglich die Tools zur Anwendungsentwicklung installieren müssen. Unter Windows XP und Windows 2003 muss vorher noch das Framework installiert werden. Grundsätzlich würde dies auch ausreichen, allerdings stehen dann keine geeigneten Entwicklungstools und keine Dokumentation zur Verfügung. Als Entwicklungstool kann momentan das Visual Studio 2005 eingesetzt werden, bis die neue Version (Codename Orcas) verfügbar wird. Dies könnte Ende 2007 der Fall sein, so dass sich der Name Visual Studio 2007 anbietet.
Die Installation als Entwickler von Anwendungen für .NET 3.0 erfolgt in mehreren Schritten. Voraussetzung für eine sinnvolle Arbeit mit .NET 3.0 und hier im speziellen mit der WPF ist die Installation des Visual Studios 2005, momentan mindestens in der Standard Edition. Die Express Editions und deutschen Versionen des Visual Studios werden zwar nicht offiziell unterstützt, allerdings gab es in vielen Fällen damit keine Probleme. Die Verwendung erfolgt auf Ihr Risiko.
HINWEIS: Aus dem eben genannten Grund wird in diesem Buch die englische Version des Visual Studios 2005 unter Windows XP verwendet. Damit gab es während der gesamten Entstehungsphase des Buches keine Probleme.
nach oben
1.3 Installationsdateien beschaffen
Für eine Installation der .NET 3.0-Komponenten benötigen Sie in jedem Fall einen schnellen Internetzugang. Ansonsten laden Sie wahrscheinlich immer noch Dateien herunter, wenn bereits das Framework durch das nächste abgelöst wird. Startpunkte für die .NET 3.0-Entwicklung sind die Web Seiten
Die erste Seite ist die Startseite in die .NET 3.0-Welt. Über die zweite URL erhalten Sie alle Links zur benötigten Software zur Entwicklung von .NET 3.0-Anwendungen unter Windows Vista. Die letzte URL gehört zur .NET Framework 3.0 Community.
HINWEIS: Die angegebenen URLs waren ca. Ende Januar 2007 aktuell. Da sich doch ab und zu Änderungen ergeben, ist die einfache Suche über Google die sicherste Lösung.
Voraussetzungen
Basis für die Anwendungsentwicklung mit .NET 3.0 ist momentan die Installation des Visual Studios 2005. Dies schließt automatisch das ebenfalls benötigte .NET Framework 2.0 ein. Da das .NET Framework 2.0 auch Bestandteil von .NET 3.0 ist, spielt die Reihenfolge Visual Studio 2005 / .NET 3.0 Redistributable Package keine Rolle.
Als Systemvoraussetzungen werden entweder Windows 2003 (mit seinen verschiedenen Server-Versionen) und aktuellem SP (Service Pack), Windows XP mit SP2 oder Windows Vista benötigt. Wenn Sie bereits eine ältere Version irgendeiner der folgenden Komponenten installiert haben, sollte diese vorher vollständig entfernt werden. Als Sprache sollten Sie momentan nur den englischen Versionen vertrauen. Aktuell gibt es lediglich eine deutsche Version der WF, die ich allerdings nicht mit den englischen Versionen mischen würde. Damit ergibt sich ungefähr folgende Installationsliste:
- Windows Vista oder eine andere Windows Version laut den Systemvoraussetzungen
- Visual Studio 2005 (ab Standard - für alle Features)
- .NET 3.0 Redistributable Package (enthält aber auch die .NET 2.0 Runtime)
- Windows SDK (schließt das .NET 3.0 Framework SDK ein)
- Visual Studio 2005 - Erweiterungen für Orcas
- Optional die Windows Workflow Foundation-Erweiterungen für das Visual Studio 2005
- Optional MS Office 2007
HINWEIS: Auf unterschiedlichen Veranstaltungen wurden auch die unterschiedlichsten Varianten der Software genutzt. So kamen auch Express Editions in deutsch und englisch sowie gemischte englische und deutsche Versionen der Visual Studio Extensions zur WF zum Einsatz. In den meisten Fällen gab es damit keine Probleme, allerdings waren auch nicht alle vom Erfolg gekrönt. Wenn Sie beispielsweise Visual C# Express nutzen, dann können Sie z.B. keine WCF-Anwendungen erstellen, da diese Web-Features benötigen. Diese würden Sie z.B. in der Visual Web Developer Express Edition vorfinden.
HINWEIS: Für das Visual Studio 2005 wird es ab sofort keine Extensions mehr für das .NET Framework 3.0 geben. Microsoft stellt wahrscheinlich Vorabversionen des nächsten Visual Studios 2007 zur Verfügung, welche dann bereits über diese Erweiterungen verfügen.
Installation des .NET 3.0 Redistributable Packages
Der erste Schritt ist die Installation des .NET Framework 3.0 Redistributable Packages. Dieses liegt in Form der Datei dotnetfx3.exe vor, die ca. 50MB groß ist. Die Installation ist unspektakulär, da es nach dem Bestätigen der Lizenzbedingungen sofort losgeht. Statt einem Dialog wird während der Installation ein Symbol im rechten Infobereich der Taskleiste angezeigt. Über das Kontextmenü des Symbols können Sie wieder das Dialogfenster für die Anzeige der Fortschrittsanzeige öffnen. Dies ist spätestens zum Ende der Installation notwendig, um diese abzuschließen. Eine "Neuerung" gab es dann doch noch. Erstmals musste der Computer neu gestartet werden. Dies war in früheren Installationen nicht notwendig.
Es steht außerdem auch eine Installationsvariante über das Web zur Verfügung. In diesem Fall laden Sie nur eine ca. 3MB große Datei herunter die den Installationsvorgang startet und nur die benötigten Dateien über das Web lädt. Möchten Sie mehrere Installationen durchführen, ist diese Variante sicher nicht geeignet. Auf den Downloadseiten finden Sie meist etwas weiter unten einen weiteren Link für die komplette Installation (z.B. X86 REDIST PACKAGE im Falle des .NET Framework 3.0 Redistributable Packages).
Jetzt können Sie alle anderen Komponenten installieren, die auf dieser Runtime basieren. Neben den Entwicklungstools können dies auch die Produkte von Microsoft Expression sein, die Sie z.B. unter http://www.microsoft.com/products/expression/en/default.mspx oder für die deutsche Version unter http://www.microsoft.com/products/expression/de/default.mspx finden. Diese Tools sind z.B. nützlich, um Oberflächen für Anwendungen zu erstellen, die dann von den Entwicklern in die Anwendung integriert werden können.
Die Runtime von .NET 3.0 vereinigt vier Komponenten. Sie bietet die Ausführungsschicht für Windows CardSpace-, WPF-, WCF- und WF-Anwendungen. Möchten Sie die sprachabhängigen Teile der Runtime in einer anderen Sprache anzeigen, können Sie Language Packs für Deutsch und Japanisch laden.
Installation des Windows SDK
Das Windows SDK umfasst neben dem "eigentlichen" SDK auch das .NET Framework 3.0 SDK. Es enthält die Dokumentation, Beispiele und Tools. Die Größe beträgt momentan knapp 1.2GB womit es das gewichtigste Teil ist. Der Download ist über ein ISO-Image oder als Web-Download möglich. Da ich davon ausgehe, das SDK auf mehreren Entwicklungs- und Testrechnern zu installieren, entscheide ich mich in der Regel für den kompletten Download. Ein ISO-Image ist dabei ein komplettes Abbild einer CD/DVD und kann von aktuellen Brennprogrammen direkt als Eingabe zum Schreiben einer CD/DVD verwendet werden.
Um das Brennen zu vermeiden, können ISO-Images auch wie ein Verzeichnis gemounted (eingebunden) werden. Dazu stehen verschiedene Tools zur Verfügung. Entweder Sie verwenden das von Microsoft empfohlene Tool Virtual CD-ROM Control Panel for Windows XP tool unter der URL http://download.microsoft.com/download/7/b/6/7b6abd84-7841-4978-96f5-bd58df02efa2/winxpvirtualcdcontrolpanel_21.exe oder Sie nutzen die DAEMON Tools unter http://www.daemon-tools.cc/dtcc/download.php?mode=ViewCategory&catid=5. Beide sind virtuelle CD/DVD-Rom Emulatoren, d.h. sie stellen ein ISO-Image wie ein CD/DVD-Laufwerk bereit.
Nachdem Sie also auf die Dateien des ISO-Images zugreifen können, steht eine Datei setup.exe im Wurzelverzeichnis zur Verfügung.
- Starten Sie die Datei setup.exe, um die Installation des Windows SDK zu starten.
- Klicken Sie bei Erscheinen des Start-Dialogs und der Lizenzbedingungen auf NEXT.
- Je nach Vorliebe können Sie einzelne Optionen deaktivieren, die Sie vermutlich nicht benötigen. Da es hier aber auch nicht mehr auf 100-200MB ankommt, würde ich dies aus "Sicherheitsgründen" besser vermeiden.
- Noch 2 Klicks auf NEXT trennen Sie vom Beginn der Installation.
- Standardmäßig erfolgt die Installation in das Verzeichnis [LW]:\Programme\Microsoft SDKs. Darin finden Sie ein Unterverzeichnis ..\Windows\v6.0. Darunter befinden sich sämtliche Bestandteile des SDK.
Als erste Operation nach der Installation des SDK sollten Sie die mitgelieferten Beispiele im Unterverzeichnis ..\Samples auspacken. Diese werden über fünf ZIP-Dateien bereitgestellt und sollten in separate Unterordner ausgepackt werden, da sie kein eigenes Wurzelverzeichnis enthalten.
Installation der Visual Studio Extensions
Spätestens bei der Installation dieser Erweiterungen zum Visual Studio 2005 rächt es sich eventuell, wenn Sie nicht die richtigen Sprachversionen eingesetzt haben. Deutsche und englische Versionen, schon beginnend beim Betriebssystem vertragen sich hier eventuell nicht mehr. Dies zeigt sich z.B. darin, dass im Visual Studio englische und deutsche Bezeichner vermischt werden (z.B. direkt im Hautmenü) und dass Projektvorlagen nicht mehr verfügbar sind.
Die Installationsdatei für die Extensions heißt vsextwfx.exe und ist momentan ca. 4MB groß und damit ein Winzling im Vergleich mit den bisherigen Dateien. Auch wenn die Dateigröße relativ klein ist dauert die Installation ungewöhnlich lange. Einzustellen gibt es während der Installation nichts weiter. Als Ergebnis erhalten Sie im Visual Studio:
- IntelliSense-Unterstützung für .NET 3.0 und XAML
- Projektvorlagen für WPF- und WCF-Anwendungen
- die Integration der Dokumentation in die Visual Studio-Hilfe
- die Bereitstellung eines grafischen Designers für die WPF (WPF Designer for Visual Studio - früher Cider), allerdings momentan mit recht limitierten Design-Möglichkeiten (und eventuell nicht in den Express Editions verfügbar)
nach oben
1.4 Weitergabe von .NET 3.0-Anwendungen
Haben Sie eine .NET 3.0-Anwendung erstellt, möchten Sie diese vielleicht auch vertreiben. Dazu muss das .NET Framework 3.0 Redistributable Package installiert werden. Da das .NET Framework 3.0 auf dem .NET Framework 2.0 basiert, müssen Sie das .NET Framework 2.0 natürlich auch bereitstellen. Das .NET Framework 2.0 ist allerdings im Redistributable Package des .NET Frameworks 3.0 enthalten (deshalb auch die über 50MB Größe), so dass Sie beide Frameworks in einem Rutsch installieren können.
Die .NET 3.0-Runtime ist unter Windows Vista bereits vorinstalliert. Auf älteren Systemen wie Windows XP muss sie allerdings nachträglich bereitgestellt werden. Mittlerweile werden 64bit-Systeme immer beliebter, so dass es die Runtime einmal für 32bit- und einmal für 64bit-Systeme gibt. Für die Bereitstellung ist es wichtig, dass der Benutzer über Administratorrechte verfügt. Die von Microsoft geforderten Hardwareeigenschaften sind sehr bescheiden ausgelegt. So wird ein 1GHz-Prozessor mit 256MB RAM empfohlen. Wenn Sie beides verdoppeln und noch eine aktuelle Grafikkarte für 50 Euro hinzuzählen, sollte es für eine vernünftige Ausführung tatsächlich ausreichen.
Wie auch das .NET Framework ist die Weitergabe der Runtime kostenfrei. Es sind lediglich einmal von Ihnen die Lizenzbestimmungen für die Weitergabe zu akzeptieren.
nach oben
1.5 Welchen Nutzen bringt die WPF?
Nachdem Sie nun etwas über das .NET Framework 3.0, seine Bestandteile und dessen Installation gelesen haben, noch ein paar Worte zur WPF. Wenn Sie beginnen mit der WPF zu arbeiten werden Sie feststellen dass sich viele Dinge sehr einfach realisieren lassen, an deren Implementierung Sie früher nicht einmal im Traum gedacht hätten. Um dreidimensionale Objekte zu bewegen und auf deren Oberfläche ein Video abzuspielen sind nur relativ wenige Handgriffe notwendig. Animationen oder die zentrale Konfiguration der Darstellungsweise aller Komponenten sind Dinge die früher entweder gar nicht oder nur mit viel Aufwand zu erledigen waren.
Nach einiger Zeit werden Sie dann aber feststellen, dass der Nachbau einer existierenden Windows Forms-Anwendung nicht problemlos vonstatten geht. So besitzen viele Komponenten in der WPF keine Eigenschaften mehr, um zusätzlich eine Grafik anzuzeigen. Ein Beispiel ist der Treeview. Stattdessen bietet Ihnen die WPF die Möglichkeit so ziemlich alles in einem Treeview anzuzeigen, was allerdings anfangs mit mehr Aufwand verbunden ist.
Damit sind wir beim entscheidenden Vorteil der WPF, gegenüber den traditionellen Frameworks. Jeder Entwickler erhält die Möglichkeit, mit minimalem Aufwand (rechnen Sie hier aber bitte nicht in Tagen sondern in Wochen und Monaten) eine sehr anspruchsvolle Benutzeroberfläche zu schaffen - und wie man so schön sagt - das Auge isst mit. Um sich von den Mitbewerbern abzuheben ist es oft nicht mehr notwendig mehr in die Anwendung zu packen sondern das vorhandene einfach attraktiver darzubieten - man denke an Tools mit hunderten von Einstellmöglichkeiten. Statt weniger anzubieten und dies dann optimal zu gestalten legen viele Wert auf Masse. Mit der WPF zielen Sie eher in Richtung Bedienerfreundlichkeit und Attraktivität.
Technologisch wurden ebenfalls erstmals neue Wege gegangen. Es wurden nicht mehr die Relikte 10 Jahre alter Windows APIs mitgeschleift sondern viele Funktionen neu verpackt. So werden ähnlich dem Swing-Framework in Java Komponenten in der WPF nicht mehr über das Betriebssystem gezeichnet sondern über die WPF. Wichtige Änderungen sind unter anderem:
- In Win32-Anwendungen konnten Sie bereits über Ressourcendateien Teile der Oberfläche wie Dialoge oder Menüs beschreiben. Diese wurden dann in die Anwendung eingebunden und darin angesprochen. Über separate Tools konnten diese Ressourcen sogar direkt in einer Anwendung bearbeitet werden. Über diese Ressourcen konnten Sie allerdings nur eine geringe Menge an UI-Elementen definieren und die Konfigurationsmöglichkeiten waren gering. Mit der Einführung von XAML (Extensible Application Markup Language, sprich Semmel) in der WPF kommen die Ressourcen wieder zu neuen Ehren. Die Vielfalt die XAML allerdings bietet übertrifft Ressourcen um Welten. Der Vorteil von XAML ist die Trennung der Benutzeroberfläche von der dahinter liegendern Programmlogik. Im Idealfall kann sich ein Grafikdesigner um die Erstellung der Oberfläche kümmern, während der Programmierer die notwendige Programmlogik an diese anbindet. Gleich hier sei angemerkt, dass Sie XAML nicht zwingend benötigen. Die Benutzeroberfläche lässt sich wie bisher in .NET üblich über die von Ihnen verwendete Programmiersprache (C# oder Visual Basic) erzeugen.
- UI-Komponenten werden nicht mehr durch das Betriebssystem sondern durch die WPF gezeichnet. Dadurch fallen sämtliche Limitierungen weg, die früher z.B. das Erstellen farbiger Schaltflächen oder Treeviews, die nur aus Bildern bestanden, erschwerten. Weiterhin kann dadurch die Grafikausgabe effizienter durch die WPF gesteuert werden. Wenn Sie z.B. eine eigene Komponente entworfen haben und diese selbst zeichnen, verwaltet die WPF die Zeichnungselemente in einem Elementbaum. Ändern Sie nur die Farbe einer Linie kann die Darstellung sehr effizient aktualisiert werden.
- In Win32- und .NET-Anwendungen werden letztendlich die Komponenten vom Betriebssystem dargestellt. In der WPF werden sie allerdings durch die WPF dargestellt. Dabei erlaubt die WPF, dass Sie innerhalb einer Komponente eine oder mehrere andere Komponenten verschachteln können. So können Sie innerhalb eines Buttons problemlos eine Grafik und eine TextBox darstellen. In einem Treeview oder einer ListBox lässt sich z.B. jede UI-Komponente als Element unterbringen.
- WPF-Anwendungen sind völlig unabhängig von der Auflösung des Endgeräts. Entwickeln Sie eine Anwendung bei einer Auflösung von 96dpi, so sieht diese bei 72dpi genauso aus wie bei 300dpi. Insbesondere bleiben die Größen erhalten. Dies wird durch die Tatsache möglich, da die Grafikausgaben auf Vektorbasis erfolgen. Außerdem wird dadurch ein verlustfreies Zoomen möglich.
WPF im Vergleich zu Windows Forms
Wenn ein neues Framework zur Erstellung von Benutzeroberflächen verfügbar ist, stellt sich natürlich die Frage, was mit den bisher verwendetem Windows Forms geschieht. Wann sollte man Windows Forms noch einsetzen, wann die WPF? Betrachtet man die Entwicklung von .NET so erinnern sich vielleicht noch einige, wie es mit dem Erscheinen von .NET 1.0 war. Es fehlten einfach Dinge an die man sich bereits gewöhnt hat. Die Auswahl an Komponenten war gering, deren Fähigkeiten gegenüber den bekannten Komponenten aus Visual Basic oder Delphi eher bescheiden. Mittlerweile wird sich darüber keiner mehr Gedanken machen, da sich das .NET Framework bereits deutlich weiterentwickelt hat.
Mit der WPF ist es ähnlich. In der vorliegenden ersten Version haben Sie zwar durch die beliebige Verschachtelung von Komponenten alle Fäden in der Hand, allerdings ist das zum Teil mit einem hohen Aufwand verbunden. Auch die grafische Ausrichtung der Komponenten oder der Beschriftungen ist manuell durchzuführen, dabei wurde gerade in diesem Bereich im Visual Studio 2005 soviel getan.
Das führt zu der Empfehlung, Benutzeroberflächen für Standardanwendungen und Anwendungen bei denen die Benutzer schnell die vertrauten Elemente wieder finden möchten mit Windows Forms zu entwickeln. Anwendungen die jedoch eine anspruchsvolle Grafik benötigen sollten die WPF verwenden. Meine persönliche Meinung ist, dass es einen längeren Umstieg von Windows Forms zur WPF geben wird, genau wie es momentan noch beim Umstieg von Win32- hin zu .NET-Anwendungen der Fall ist.
Voraussetzungen im Tutorial
Das Tutorial wurde mit dem englischen Visual Studio 2005 Professional und der endgültigen Version des .NET Frameworks 3.0 geschrieben. Als Betriebssystem liegt Windows XP SP 2 zugrunde. Obwohl dies in den seltensten Fällen eine Rolle spielen sollte, soll es zumindest als Hinweis dienen, wenn einmal etwas nicht wie erwartet funktioniert.
Meine eigenen Erfahrungen waren seit dem ersten CTP vom November 2004 das ich verwendet habe, sehr positiv. Dennoch gab es zwei oder drei Problemchen, bei denen sich Komponenten nicht installieren ließen oder bei dem auf einem neu installiertem Rechner die Videos in der MediaElement-Komponente nicht korrekt abgespielt werden. Statt lange zu probieren oder zu verzweifeln wurde meist eine Lösung schon nach wenigen Minuten durch eine Suche mit Google gefunden.
nach oben