Die vorliegende Arbeit beschäftigt sich mit konzeptionellen Untersuchungen rund um die Windows Presentation Foundation (WPF) der Firma Microsoft. Die WPF ist eine Klassenbibliothek zur Gestaltung von grafischen Benutzeroberflächen. Sie ist ein Bestandteil des .NET 3.0 Frameworks.
Im Rahmen dieser Arbeit werden Technologien analysiert, die bisher zur Visualisierung von Computergrafiken und zur Gestaltung von Programmoberflächen verwendet wurden. Die Vorteile und Nachteile dieser Technologien werden mit denen der Windows Presentation Foundation verglichen.
Die Hauptproblematik dieser Arbeit ist die Untersuchung der Einsatzfähigkeit der
WPF. Dabei wird erforscht, ob die WPF alle aktuellen Anforderungen an die Entwicklung grafisch anspruchsvoller Programmoberflächen erfüllt und ob es Aussagen über die Weiterentwicklung der Windows Presentation Foundation gibt. Weiterhin wird untersucht, inwiefern die WPF mit traditionellen Technologien kombiniert werden kann.
Abschließend werden Beispielprogramme vorgestellt und es wird eine Anleitung für
das Verwenden der Windows Presentation Foundation gegeben.
This paper deals with conceptual examinations around the Windows Presentation
Foundation (WPF) of the company Microsoft. The WPF is a class library to the formation of graphicel user interfaces. It is a feature of the .NET 3.0 Framework.
Within the scope of this work, technologies are analyzed, that were used for the visualization of computer graphics and to the formation of program surfaces until now.
The advantages and disadvantages of these technologies are compared with those
of the Windows Presentation Foundation.
The main problem of this work is the examination of the operational ness of the WPF. It will explore on that occasion whether the WPF meets all current requests for the development of graphically selective program surfaces and whether there are statements about the development of the Windows Presentation Foundation. Still, it is examined to what extent the WPF can be combined with traditional technologies. Example programs are introduced in conclusion and it is given an instruction for using the Windows Presentation Foundation.
Inhaltsverzeichnis
Abstract
Abstract
Abbildungsverzeichnis
Tabellenverzeichnis
1 Einleitung
1.1 Aufgabenstellung
2 Grundlagen
2.1 Das .NET Framework
2.1.1 Was ist das .NET Framework
2.1.2 Das .NET 3.0 Framework
2.2 Die Windows Presentation Foundation - WPF
2.2.1 Einführung
2.2.2 Eigenschaften der WPF
2.3 Microsoft Silverlight
2.4 XAML
2.5 GDI
2.6 GDI+
2.7 DirectX
2.8 OpenGL
2.9 Windows API
2.10 Windows.Forms
3 Bearbeitung der Aufgaben
3.1 Vergleich und Analyse
3.1.1 Win32 API
3.1.2 Windows.Forms
3.1.3 Windows Presentation Foundation
3.1.4 Managed DirectX
3.1.5 OpenGL
3.1.6 Zusammenfassung
3.2 Untersuchungen
3.2.1 Oberflächengestaltung
3.2.2 Werkzeuge zur quellcode-unabhängigen Gestaltung von GUIs
3.2.3 Kombination von WPF und Windows.Forms
3.2.4 WPF und DirectX-Funktionalität
3.2.5 Voraussetzungen für Hardware und Software
3.2.6 Kombination WPF und Delphi-Projekte
3.2.7 Umgang mit großen Daten (Pixelbilder)
3.2.8 Programmumfeld
3.2.9 Installshield
3.2.10 Alternativen zu WPF und Windows.Forms
3.2.11 Kompatibilität zu ActiveX
3.2.12 Zukunft von WPF
3.3 Beispielprogramme
3.3.1 3D Schaltflächen
3.3.2 Flipper
3.3.3 iPod-Media-Player
3.4 Beispielprogramm für die Kombination mit Delphi-Programmen
3.5 Kurzanleitung für die Verwendung von WPF
4 Zusammenfassung
Literaturverweise
Eidesstattliche Erklärung
Abstract
Die vorliegende Arbeit beschäftigt sich mit konzeptionellen Untersuchungen rund um die Windows Presentation Foundation (WPF) der Firma Microsoft. Die WPF ist eine Klassenbibliothek zur Gestaltung von grafischen Benutzeroberflächen. Sie ist ein Bestandteil des .NET 3.0 Frameworks.
Im Rahmen dieser Arbeit werden Technologien analysiert, die bisher zur Visualisierung von Computergrafiken und zur Gestaltung von Programmoberflächen verwendet wurden. Die Vorteile und Nachteile dieser Technologien werden mit denen der Windows Presentation Foundation verglichen.
Die Hauptproblematik dieser Arbeit ist die Untersuchung der Einsatzfähigkeit der WPF. Dabei wird erforscht, ob die WPF alle aktuellen Anforderungen an die Entwicklung grafisch anspruchsvoller Programmoberflächen erfüllt und ob es Aussagen über die Weiterentwicklung der Windows Presentation Foundation gibt. Weiterhin wird untersucht, inwiefern die WPF mit traditionellen Technologien kombiniert werden kann. Abschließend werden Beispielprogramme vorgestellt und es wird eine Anleitung für das Verwenden der Windows Presentation Foundation gegeben.
Abstract
This paper deals with conceptual examinations around the Windows Presentation Foundation (WPF) of the company Microsoft. The WPF is a class library to the formation of graphicel user interfaces. It is a feature of the .NET 3.0 Framework.
Within the scope of this work, technologies are analyzed, that were used for the visualization of computer graphics and to the formation of program surfaces until now. The advantages and disadvantages of these technologies are compared with those of the Windows Presentation Foundation.
The main problem of this work is the examination of the operational ness of the WPF. It will explore on that occasion whether the WPF meets all current requests for the development of graphically selective program surfaces and whether there are statements about the development of the Windows Presentation Foundation. Still, it is examined to what extent the WPF can be combined with traditional technologies. Example programs are introduced in conclusion and it is given an instruction for using the Windows Presentation Foundation.
Abbildungsverzeichnis
Abbildung 1: Aufbau des .NET 3.0 Frameworks [4]
Abbildung 2: Darstellung der Interop-Technik
Abbildung 3: Verschachtelung visueller Elemente (vgl. [7])
Abbildung 4: Bildschirmfoto von Expression Blend [37]
Abbildung 5: Bildschirmfoto des Aurora XAML Designers [38]
Abbildung 6: Bildschirmfoto des Kaxaml Editor
Abbildung 7: Bildschirmfoto des XAMLPad Editor
Abbildung 8: Die Klassen WindowsFormsHost und ElementHost bilden die zentralen Komponenten für die Interoperabilität zwischen Windows.Forms und WPF
Abbildung 9: Einbindung eines WPF-Steuerelementes in ein Windows.Forms-Projekt
Abbildung 10: eine WPF-Animation in einer Windows.Forms-Anwendung verwenden
Abbildung 11: Eine Windows.Forms-Anwendung mit einem WPF-Steuerelement mit 3D-Effekten
Abbildung 12: Beispiel für den Aufruf eines nicht modalen WPF-Fensters aus einer Windows.Forms-Applikation
Abbildung 13: das Verwenden mehrerer Windows.Forms-Control in einem WindowsFormsHost
Abbildung 14: Aufruf der EnableVisualStyles-Methode
Abbildung 15: Namespace-Mapping zwischen CLR-Namespace und XML- Namespace
Abbildung 16: Verwendung von Windows.Forms-Controls in WPF (XAML-Code)
Abbildung 17: Verwendung von Windows.Forms-Controls in WPF (C#-Code)
Abbildung 18: Projekt-Eigenschaften ändern
Abbildung 19: die Assembly als COM-sichtbar markieren
Abbildung 20: WPF-Projekt für COM-Interop registrieren
Abbildung 21: Beispielprogramm "Flipper"
Abbildung 22: Beispiel für das Ergebnis einer Lokalisierung [52]
Abbildung 23: Darstellung von dreidimensionalen Schaltflächen
Abbildung 24: die dreidimensionale Schaltfläche klappt nach hinten, sobald sich der Mauszeiger über hier befindet
Abbildung 25: die gedrückte dreidimensionale Schaltfläche
Abbildung 26: die Klassenstruktur des Beispielprogramms "3D Schaltflächen"
Abbildung 27: die obere Hälfte des aktuellen Bildes wird nach unten umgeklappt ... 55 Abbildung 28: die Klassenstruktur des Beispielprogramms "Flipper"
Abbildung 29: die Anordnung der vier Model3DGroup-Elemente
Abbildung 30: Media-Player mit der Oberfläche eines iPod
Abbildung 31: die Klassenstruktur des iPod-Media-Player
Tabellenverzeichnis
Tabelle 1: die Vorteile und Nachteile der Win32 API
Tabelle 2: die Vorteile und Nachteile der Windows.Forms-Bibliothek
Tabelle 3: die Vorteile und Nachteile der Windows Presentation Foundation
Tabelle 4: die Vorteile und Nachteile von DirectX
Tabelle 5: die Vorteile und Nachteile von OpenGL
Tabelle 6: Überblick über die Ergebnisse aus Aufgabe 1
Tabelle 7: Systemvoraussetzungen für die Installation des .NET 3.0 Frameworks
1 Einleitung
Eine grafische Benutzeroberfläche ist eine Softwarekomponente, die Computerbenutzern die Interaktion mit der Maschine über grafische Elemente erlaubt. Diese grafischen Elemente werden mittels Zeigeund Steuerungsinstrument, wie beispielsweise einer Maus, bedient. Oftmals wird auch das Akronym GUI verwendet. Dieses stammt aus dem Englischen und steht für Graphical User Interface, was wörtlich übersetzt "grafische Benutzerschnittstelle" bedeutet. (vgl. [1])
Die Entwicklung der GUIs vereinfachte die Bedienung von Computern und erlaubte auch weniger erfahrenen Anwendern die Arbeit am Rechner. Deshalb war diese Erfindung essentiell für die weltweite Verbreitung von Computern. Seit den 1970er Jahren wurden die grafischen Benutzeroberflächen kontinuierlich weiterentwickelt. Dabei wurde nicht nur die Interaktion mit den Softwareprogrammen verbessert und vereinfacht, sondern auch die Entwicklung der GUIs für die jeweilige Software.
Die Benutzeroberfläche ist ein wichtiger Bestandteil nahezu jeder Anwendung. Die Ansprüche, die Benutzer an Benutzeroberflächen stellen, sind jedoch erheblich gestiegen. Herkömmliche menügesteuerte GUIs werden natürlich weiterhin benötigt, aber Anwendungen müssen häufig auch in der Lage sein, Videos anzuzeigen, Animationen auszuführen, zweiund dreidimensionale Grafiken darzustellen und mit verschiedenen Arten von Dokumenten zu arbeiten. Und all das muss unabhängig davon möglich sein, ob über einen installierten Desktopclient oder einen Webbrowser auf die Anwendung zugegriffen wird. (vgl. [2])
Im Laufe der Zeit entstanden umfangreiche Bibliotheken, mit deren Hilfe grafische Bedienoberflächen gestaltet werden können. Die Firma Microsoft stellt nun eine mächtige Klassenbibliothek zur Verfügung, um den Softwareherstellern die grafische Gestaltung von Programmen zu ermöglichen. Diese Bibliothek wird als WPF bezeichnet und ist Teil des .NET 3.0 Frameworks. WPF ist das Akronym für Windows Presentation Foundation.
In Rahmen dieser Projektarbeit sollen die Vorteile und Nachteile dieser neuen Klassenbibliothek analysiert werden.
1.1 Aufgabenstellung
Die Aufgabenstellung kommt von der Firma braasch & jäschke computertechnik in Wernigerode:
Ziel dieser Projektarbeit ist es die Möglichkeiten die die Windows Presentation Foundation bietet zu untersuchen. Dabei soll die WPF mit bereits vorhandenen Technologien zur Oberflächengestaltung verglichen und die jeweiligen Vorteile und Nachteile herausgearbeitet werden. Zudem wird untersucht inwiefern neue WPF-Elemente in die vorhandenen Programme integriert werden können. Um die Fähigkeiten der Windows Presentation Foundation zu demonstrieren und die Integrierbarkeit zu testen sollen Beispielprogramme implementiert werden.
Die Projektarbeit beinhaltet folgende Teilaufgaben:
1. Vergleich und Analyse der Vorund Nachteile verschiedener Visualisierungsmethoden für Programmoberflächen und Grafikausgaben:
- Win32 (Möglichkeiten in Delphi 6, Delphi 2007)
- Windows.Forms (:NET 2.0 in C#)
- WPF (.NET 3.0)
- Managed DirectX
- OpenGL
2. Es ist zu untersuchen:
- Ob der Einsatz von WPF alle derzeitigen Anforderungen an die Oberflä- chengestaltung ermöglicht (Sind alle in den Anwendungen der Firma braasch & jäschke computertechnik benutzten Komponenten enthalten?)
- Ob geeignete Werkzeuge zur quellcode-unabhängigen Gestaltung von Programmoberflächen ( Microsoft Expression Blend, XAML-Editoren) existieren
- Ob WPF-Elemente mit Windows.Forms-Elementen kombiniert werden können
- Inwiefern WPF DirectX-Funktionalität bereitstellt (Effizienz, Geschwindigkeit)
- Welche Hardund Software-Voraussetzungen erfüllt werden müssen
- Ob es eine Möglichkeit gibt, bestehende Delphi6-Projekte mit WPF zu kombinieren
- Ob WPF mit großen Daten umgehen kann (Pixelbilder, Vektorgrafiken)
- Ob WPF das Programmumfeld unterstützt (Drucken, Lokalisierung)
- Ob solche Anwendungen mit dem vorhandenen Installshield installiert werden können (.NET 3.0 ins Setup)
- Ob es vielversprechende Alternativen zu WPF und Windows.Forms gibt (Qt,...)
- Ob WPF noch ActiveX-kompatibel ist (kann eine Klassenbibliothek mit WPF-Elementen als ActiveX-Control) bereitgestellt werden
- Ob es Aussagen zur Zukunft von WPF gibt: a. Integration in Microsoft Visual Studio 2008
b. Nachfolgeversionen
c. Ablösung von Windows.Forms durch WPF?
d. Zusammenspiel von WPF und künftigen Delphi-Versionen
3. Es ist ein Beispielprogramm (in C#) zu entwickeln, das alle wesentlichen Möglichkeiten von WPF demonstriert
4. Es ist – wenn möglich – eine Beispielimplementierung zur Kombination von Delphi-Code und WPF anzufertigen
5. Es ist eine Kurzanleitung zur Verwendung von WPF anzufertigen
2 Grundlagen
In diesem Kapitel werden die grundlegenden Technologien erläutert, die zum Verständnis dieser Projektarbeit nötig sind. Die Windows Presentation Founation ist Teil des .NET 3.0 Frameworks. Deshalb wird zunächst erläutert worum es sich dabei handelt.
2.1 Das .NET Framework
2.1.1 Was ist das .NET Framework
Das .NET Framework ist eine Softwarekomponente, die einem Windows Betriebssystem hinzugefügt werden kann. Es enthält eine Reihe vorgefertigter Lösungen für allgemeine Programmieraufgaben. Zudem handhabt es die Ausführung von Programmen, die speziell für dieses Framework entwickelt wurden.
Die vorgefertigten Programme bieten Lösungen zu verschiedensten Problemen. Dazu gehören:
- Grafische Oberflächen,
- Datenzugriffe,
- Datenbanken,
- Kryptografie,
- Web Anwendungen,
- Numerische Algorithmen,
- Netzwerkverbindungen.
Diese Lösungen des Frameworks können benutzt und durch eigene Klassen erweitert werden. Dabei unterstützt .NET verschiedene Programmiersprachen. Beispiele hierfür sind C# und VB.NET.
.NET-Anwendungen werden in einer virtuellen Maschine ausgeführt. Ein ähnliches Konzept wurde bei der Programmiersprache Java verfolgt. Bei Microsoft wird diese als Common Language Runtime (CLR) bezeichnet und ist ein Teil des .NET- Frameworks.
Das Framework soll es insgesamt leichter machen, Programme zu schreiben. Gleichzeitig soll es dazu beitragen, die Verwundbarkeit von Programm und Computer gegenüber Bedrohungen zu minimieren. (vgl. [3])
2.1.2 Das .NET 3.0 Framework
Das .NET 3.0 Framework wird auch als WinFX oder Longhorn Application Model bezeichnet. Im Wesentlichen baut das .NET 3.0 Framework auf der älteren Version 2.0 auf. Doch es beinhaltet auch einige Neuerungen und Erweiterungen. In der nachfolgenden Abbildung (siehe Abbildung 1) wird ein Überblick über den Aufbau von .NET 3.0 gegeben.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1: Aufbau des .NET 3.0 Frameworks [4]
Die vier wichtigsten neuen Komponenten werden nun kurz erläutert.
- Windows Presentation Foundation (WPF):
Die WPF ist auch unter ihrem früheren Codenamen "Avalon" bekannt. Sie ist ein neues User Interface Subsystem. Es bedient sich der 3D Computergrafik Hardware und Direct3D Technologien. (vgl. [3])
- Windows Communication Foundation (WCF):
Der Codename der WCF lautete "Indigo". Hierbei handelt es sich um ein Dienstorientiertes Nachrichtensystem, welches unterschiedlichen Programmen erlaubt, lokal oder auf Distanz zu interagieren. (vgl. [3])
- Windows Workflow Foundation (WWF):
Die WWF erlaubt das Einrichten von Prozessautomatisierung und integrierten Transaktionen anhand von Workflows. Workflow bezeichnet das Durchlaufen einzelner Etappen eines Arbeitsprozesses durch Dokumente oder Anwendungen. Der Codename von WWF war "Workflow". (vgl. [3])
- Windows Cardspace (WCS):
Die WCS ist eine Softwarekomponente, die die digitale Identität einer Person sicher aufbewahrt. Des Weiteren stellt WCS ein vereinheitlichtes Interface für die Auswahl einer Identität bei einer Transaktion bereit. WCS ist auch unter dem Codenamen "Infocard" bekannt. (vgl. [3])
2.2 Die Windows Presentation Foundation - WPF
2.2.1 Einführung
Die Klassenbibliothek der Windows Presentation Foundation gehört zum .NET 3.0 Framework. Die WPF kann als Nachfolger von GDI und GDI+ angesehen werden. Im Gegensatz zu seinen Vorgängern setzt WPF auf DirectX auf und bietet dadurch volle Hardwarebeschleunigung. (vgl. [5])
Hardwarebeschleunigung ist ein Begriff aus der Computertechnik. Es beschreibt eine Technik, bei der Daten durch spezielle Hardware verarbeitet wird, und nicht durch die CPU des Rechners. Dadurch wird eine deutlich bessere Performance ermöglicht. Ein Beispiel für Hardwarebeschleunigung sind Grafikkarten. Dabei werden alle grafikspezifischen Berechnungen durch den speziell darauf ausgelegten Prozessor der Grafikkarte, die GPU, erledigt. (vgl. [6])
Die Windows Presentation Foundation kann ebenfalls als Nachfolger der mit .NET
1.1 eingeführten Windows.Forms-Bibliothek angesehen werden. Diese Bibliothek dient zur Gestaltung grafischer Benutzeroberflächen. Die WPF ist keine Erweiterung der Windows.Forms-Bibliothek. Vielmehr kann sie als Neuimplementierung angesehen werden, welche wesentlich mehr Möglichkeiten bietet. (vgl. [7])
Die WPF bringt ein konsistentes Programmiermodell zur Erstellung von Anwendungen mit sich und bietet eine klare Trennung zwischen grafischer Oberfläche und Programmlogik. Eine WPF-Applikation kann sowohl lokal auf dem Desktop als auch in einem Webbrowser ausgeführt werden. Die WPF zielt darauf ab, eine große Anzahl von Diensten gleichzeitig anzubieten. Dazu gehören unter anderem: (vgl. [3])
- Grafische Oberflächen,
- 2D- und 3D-Grafiken,
- feste und anpassungsfähige Dokumente,
- erweiterte Typografie,
- Vektorgrafiken,
- Rastergrafiken,
- Animationen,
- Audio,
- Video.
Mit der WPF ist es möglich Effekte, die bisher nur in Spielen vorkamen, ganz einfach auf den Desktop zu bringen. Dabei erkennt WPF automatisch die Leistungsfähigkeit des Systems und passt die Effektvielfalt der Anwendung an die gegebenen Ressourcen an. (vgl. [5])
2.2.2 Eigenschaften der WPF
In diesem Abschnitt werden einige der wichtigsten Eigenschaften der Windows Presentation Foundation aufgelistet.
- Grafische Dienste:
Alle grafischen Elemente, darunter auch Windows Desktop- Gegenstände, sind Direct3D-Anwendungen. Dies hat verschiedene Gründe. Zum Einen wird dadurch eine einheitliche Form der Darstellung erreicht. Zum Anderen erlaubt es weitere grafische Möglichkeiten. Weiterhin ist es dadurch möglich die GPU der Grafikkarte zu nutzen und die
CPU zu entlasten. Außerdem wird dadurch der Einsatz von Vektorgrafiken ermöglicht. (vgl. [3])
Vektorgrafiken basieren anders als Rastergrafiken nicht auf einem Pixelraster, in dem jedem Bildpunkt ein Farbwert zugeordnet ist. Sie definieren sich mittels mathematischer Funktionen. Dadurch ist es möglich, dass Vektorgrafiken ohne Qualitätsverlust beliebig skaliert und verzerrt werden können. (vgl. [8])
Zudem erlaubt die WPF, 3D-Modell Rendering und Interaktion in 2D- Anwendungen.
Auch einige Spezialeffekte können realisiert werden. So beinhaltet die Bibliothek unter anderem Methoden, um Schattenwurf-, Unschärfeund Spiegelungs-Effekte zu implementieren. (vgl. [3])
- Ausbreitung:
Die WPF erlaubt mehr als nur traditionelle standalone Applikationen. Sie können sowohl lokal oder durch XAML Anwendungen im Webbrowser implementiert und dargestellt werden. (vgl. [3])
- Interoperabilität:
Die WPF stellt Möglichkeiten bereit, um auf nicht .NET-sprachigen Code zuzugreifen. So ist es möglich auch ältere Programme mit .NET Anwendungen zu kombinieren. (vgl. [3])
- Media Dienste:
Die Windows Presentation Foundation unterstützt vielfältige Media Dienste. Für den 2D-Grafik-Bereich hält sie eine Anzahl von Grundformen bereit. Der 3D-Grafik-Bereich bietet eine Teilmenge der Direct3D- Möglichkeiten. Dadurch unterstützt die WPF nicht alle Funktionen von Direct3D. Die Integrationsmöglichkeiten für grafische Oberflächen, Dokumente und Medien sind jedoch besser. Dadurch können dreidimensionale Oberflächen, Dokumente und Medien mit vergleichsweise geringem Aufwand erstellt werden.
Zudem unterstützt die Windows Presentation Foundation die gängigsten Bildformate. Zusätzlich können andere Formate, mittels der Windows Imaging Component (WIC) hinzugefügt werden. Im Video-Bereich werden ebenso die wichtigsten Formate unterstützt. Dazu gehören
WMV, MPEG und einige AVI Dateien. Außerdem werden OpenType Fonts unterstützt. (vgl. [3])
- Grafische Benutzeroberfläche:
Zur Gestaltung grafischer Oberflächen stellt die Windows Presentation Foundation eine Reihe von Kontrollelementen zur Verfügung. Dazu gehören unter anderem "Buttons" und "Menüs".
Ein mächtiges Konzept der WPF ist die Trennung von Programmlogik und Programmdesign. So können Veränderungen an einem Teil durchgeführt werden, ohne den anderen Teil zu beeinflussen. Es ist daher leicht möglich ein Design mit mehreren Programmlogiken zu versehen, ohne dass dabei Inkonsistenzen auftreten. (vgl. [3])
2.3 Microsoft Silverlight
Mit Silverlight wird eine Web-Präsentationstechnik der Firma Microsoft bezeichnet. Bis April 2007 war Silverlight unter dem vorläufigen Codenamen "WPF/E" bekannt. Diese Abkürzung steht für "Windows Presentation Foundation/Everywhere".
Es handelt sich hierbei um eine stark eingeschränkte und plattformunabhängige Version der WPF, welche ebenfalls auf XAML basiert. Sie dient zur Darstellung und A- nimation von Oberflächen aus grafischen Elementen und Media-Daten in Browsern. (vgl. [9])
Derzeit wird Silverlight als Plugin für alle gängigen Browser angeboten. Dazu gehö- ren Mozilla Firefox, Internet Explorer 6 und 7 und Safari. Ein Plugin für Opera soll folgen.
In der Version 2.0 beinhaltet Silverlight eine Mini-Implementation der Common Language Runtime (CLR). Diese bietet nicht den vollen Funktionsumfang, ermöglicht jedoch die Ausführung von VB.NET und C# Code.
Silverlight wird als direktes Konkurrenzprodukt zu Adobes Flash-Player positioniert. Im Gegensatz zur Konkurrenz, bietet Silverlight nur unter Windows den vollem Funktionsumfang. (vgl. [3])
2.4 XAML
XAML ist das Akronym für eXtensible Application Markup Language. Es handelt sich dabei um Microsofts neue deklarative Sprache zur Erstellung von grafischen Benutzeroberflächen. XAML verfügt über eine leicht erweiterbare und lokalisierte Syntax zur Definition von GUIs, getrennt von der eigentlichen Programmlogik.
Einer der Vorteile von XAML und Auszeichnungssprachen im Allgemeinen ist die leichte Zugänglichkeit. Auch Menschen ohne umfangreiche Programmiererfahrung, können Oberflächen erstellen. Neu ist die Möglichkeit zentral zu entwickeln, zentral zu verteilen und den Inhalt im Webbrowser anzuzeigen.
In der WPF wird XAML dazu verwendet reichhaltige grafische und multimediale Benutzeroberflächen zu erstellen. (vgl. [3])
2.5 GDI
GDI ist das Akronym für Graphics Device Interface. Dieses ist eine Komponente des Betriebssystems Microsoft Windows. Es dient als Programmierschnittstelle zu Grafikkarten und Druckern und kapselt die Komplexität der Hardware ab. Die meisten grafischen Operationen, wie Bitmaps und Farben werden bei GDI per Software, also von der CPU, berechnet. Benötigt ein Programm Informationen über gerätespezifische Eigenschaften, kann es sie vom Device Context beziehen. Gerätespezifische Eigenschaften sind beispielsweise die Bildschirmauflösung oder der Bildschirmtyp.
Dieses Abkapselungsprinzip verlangsamt die Ausgabe auf den Bildschirm. Für Anwendungen die eine schnellere Grafikschnittstelle benötigen, wie beispielsweise Spiele, wurden DirectX und OpenGL geschaffen. (vgl. [3])
2.6 GDI+
GDI+ ist der Nachfolger des Graphics Device Interface. Es ist seit Windows XP ins Betriebssystem integriert, kann jedoch auf älteren Microsoft Betriebssystemen, wie Windows 2000 und Windows NT, nachinstalliert werden. Neu bei GDI+ ist die native Darstellung von JPEG und PNG, verbessertes Pfad-Management für Vektorgrafiken und Farben in ARGB. (vgl. [10])
Bei ARGB wird der Rot-Grün-Blau-Farbraum, oder kurz RBG-Farbraum, um einen zusätzlichen Farbraum erweitert. Dieser wird als Alphakanal bezeichnet. Bei ARGB können bei digitalen Bildern, zusätzlich zu den in einem Farbraum kodierten Farbinformationen, die Transparenzen der einzelnen Bildpunkte gespeichert werden. (vgl. [11])
2.7 DirectX
DirectX ist eine Sammlung von APIs für multimedia-intensive Anwendungen, wie beispielsweise Spiele. API ist das Akronym für Application Programming Interface. Die deutsche Entsprechung dafür ist Programmierschnittstelle. DirectX findet seinen Einsatz vorwiegend in Microsofts Windows, wird aber auch von der Spielekonsole XBox verwendet, welche ebenfalls von Microsoft entwickelt wurde. Die DirectX-Sammlung von Software-Komponenten deckt nahezu den gesamten Multimediabereich ab. Vorrangig wird es bei der Darstellung komplexer 2D- und 3D-Grafiken verwendet. Zusätzlich unterstützt es jedoch Audio, verschiedene Eingabegeräte und Netzwerkkommunikation. Zu den Eingabegeräten gehören unter anderem Maus und Joystick. (vgl. [12])
Managed DirectX
In der .NET-Terminologie wird unterschieden zwischen Programmen die innerhalb der Common Language Runtime (CLR) laufen und denen die es nicht tun. Ein Programm welches für .NET geschrieben wurde und in der CLR läuft, gilt als "managed". Alle anderen werden als "unmanaged" bezeichnet. Damit beide miteinander kombiniert werden können und so eine fließende Umstellung von Software-Projekten auf
.NET möglich ist, wird die so genannte "Interop"-Technik verwendet. Dabei werden traditionelle Microsoft COM-Programme mit .NET-Kapseln versehen. (vgl. [13])
Das Component Object Model (COM) ist eine von Microsoft entwickelte Plattform- Technologie. Dabei soll unter dem Betriebssystem Windows Interprozesskommunikation und dynamische Objekterzeugung ermöglicht werden. COM-fähige Objekte sind sprachunabhängig und können sowohl DLLs als auch ausführbare Programme sein. (vgl. [14])
Die "Kapseln" werden als "Wrapper" bezeichnet. Dadurch ist es möglich, dass sich Programmfunktionen der COM-Programme wie normale .NET-Funktionen aufrufen lassen. Umgekehrt lassen sich auch .NET-Funktionen wie COM-Funktionen aufrufen. Dieses Prinzip wird in Abbildung 2 dargestellt.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2: Darstellung der Interop-Technik
Es gibt des Weiteren die Möglichkeit managed Code und unmangaed Code in einer einzigen Programmdatei miteinander zu verbinden. Derartige Dateien werden als hybride Programmdateien bezeichnet. Bislang gibt es nur wenige Sprachen, die dies unterstützen. Zu ihnen gehören managed C++ und Delphi ab der Version 8. (vgl. [13]) Programme die mit managed DirectX erstellt wurden, werden demnach in der Common Runtime Language ausgeführt. Managed DirectX hat im Vergleich zu reinem
DirectX den Vorteil, dass die Entwicklungszeiten für Programme kürzer sind. Zudem laufen Managed DirectX-Programme stabiler. Der Nachteil ist, dass diese Programme etwa 2% bis 15% langsamer sind, im Vergleich mit unmanaged DirectX- Programmen. (vgl. [15])
Neben DirectX gibt es noch andere APIs. Einige davon sind frei verfügbar und sind nicht auf die Windows-Plattform beschränkt. Meistens sind diese nicht so umfassend wie DirectX, können aber große Teile ersetzen. Des Weiteren ermöglichen derartige Programmierschnittstellen eine plattformunabhängige Softwareentwicklung. Ein Beispiel für eine solche API, ist OpenGL. (vgl. [12]) Diese wird im nächsten Abschnitt erläutert.
2.8 OpenGL
OpenGL steht für Open Graphics Library und ist eine Spezifikation für eine plattformund programmiersprachenunabhängige Programmierschnittstelle. Sie wird vorwiegend zur Darstellung von 3D-Computergrafiken verwendet.
[...]
-
-
-
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X.