2010-01-06 15 views
5

Meine Organisation erwägt, welche Technologien für unsere nächste Generation von Systemen zu verwenden. Wir werden .NET verwenden, haben uns aber nicht entschieden, welche Benutzeroberflächentechnologie am besten ist. Silverlight und WPF scheinen die am besten geeigneten Optionen zu sein. Kann jemand die Vor- und Nachteile der einzelnen Ansätze teilen?Silverlight vs WPF

+0

Siehe diese Frage: http://stackoverflow.com/questions/944608/wpf-vs-silverlight –

+0

Danke Meta - das kam nicht in den vorgeschlagenen Dups aus irgendeinem Grund –

Antwort

7

Wie von Gabriel (und Reed) erwähnt, ist Silverlight eine abgespeckte Version von WPF.

WPF ist hauptsächlich für Desktop-Anwendungen vorgesehen und verfügt über erweiterte Funktionen für Layout, Animation und Datenbindung, die Silverlight noch nicht hat. WPF kann über einen Browser bereitgestellt werden, läuft jedoch nicht als Browser-Plug-in und kann daher nicht mit anderen Inhalten im Browser interagieren. Es ist möglich, WPF-Anwendungen zu erstellen, die WinForms-Steuerelemente und -Fenster hosten - dies kann den Übergang eines Portfolios von vorhandenem WinForms-Code erleichtern (wenn das für Sie wichtig ist). WPF hat auch anspruchsvollere 3D-Funktionen als Silverlight - allerdings nicht viel.

Siverlight ist auf mehreren Plattformen (wie Linux und OSX) über die Mono-Laufzeit und den Moonlight-Port von Silverlight verfügbar. Silver Light kann entweder als eigenständige Anwendung oder in einer Browser-Umgebung ausgeführt werden, wodurch webbasierte Anwendungen erstellt werden können. Wenn sie als browserbasiertes Plugin ausgeführt wird, kann eine Silverlight-App mit dem Inhalt im Browser interagieren und Seite an Seite mit HTML angezeigt werden. Sie können eine Silverlight-App auch mit JavaScript manipulieren, um eine nahezu nahtlose Programmierumgebung zu erstellen. Es gibt einige Einschränkungen in Silverlight-Apps - beispielsweise sind WCF-Aufrufe alle asynchron (aufgrund des Silverlight/Browser-Threading-Modells). Außerdem sind nicht alle .NET Framework-SDKs für Silverlight-Apps verfügbar.

Beide Technologien sind sehr ähnlich, da sie eine Kombination aus Markup und Code verwenden, um Funktionalität zu liefern. Um zwischen ihnen zu wählen, müssen Sie entscheiden, ob Sie eine browserbasierte oder eigenständige Anwendung erstellen, ob Sie auf andere Plattformen portierbar sein möchten und ob Sie die gesamte Palette der in .NET verfügbaren Bibliotheken benötigen.

Auf der Entwicklungs-Tools Front - das beste Tool draußen IMHO ist Expression Blend - es hat eine elegante und leistungsstarke Benutzeroberfläche für die visuelle Erstellung von WPF oder Silverlight Benutzeroberflächen. Es integriert sich auch in Visual Studio - das ist immer noch eine überlegene Entwicklungsumgebung (Blend verfügt über begrenzte Code-Bearbeitungsfunktionen). Es gibt auch Tools wie Expression Design und Expression Encoder, mit denen Sie Grafiken erstellen und Videos für die Verwendung in WPF- und Silveright-Anwendungen bearbeiten können.

3

Silverlight ist eine Teilmenge von WPF, die im Silverlight-Browser-Plug-in verwendet wird. Beide sind gut, aber Sie müssen entscheiden, ob Sie mit einer Web-basierten oder einer Windows-Anwendung enden.

Silverlight verfügt nicht über alle Funktionen von WPF (teilweise aus Sicherheitsgründen - es wird im Browser verwendet). Mit Silverlight haben Sie jedoch Zugriff auf alle anderen webbasierten Anwendungsvorteile (einzelner Upgrade-Speicherort usw. - JavaScript, CSS und HTML).

+3

SilverLight kann nun auch auslaufen -browser –

7

Silverlight ist weit weniger leistungsfähig als WPF, auch in der Version 4.

Es kann in einem Browser oder aus Browser ausgeführt werden, und hat einige Vorteile - aber die wichtigsten Vorteile von Silverlight über WPF sind Bereitstellung verwandt. Es ist sehr einfach, eine Silverlight-Anwendung bereitzustellen - beziehen Sie sich einfach auf das XAP in einer Webseite auf Ihrem Server und es wird bereitgestellt (sofern Ihre Benutzer Silverlight installiert haben). WPF erfordert etwas mehr Arbeit in Bezug auf die Bereitstellung, da es sich um eine vollständige Desktop-Anwendung handelt.

Das heißt, WPF bietet viel mehr Funktionen. Es bietet Zugriff auf das vollständige .NET-Framework (im Gegensatz zu einer [wachsenden] Untergruppe).

Meine persönliche Vorliebe wäre die Verwendung von Silverlight - vorausgesetzt, die Anwendung benötigt keine Interop mit Legacy-Software, Zugriff auf Ressourcen auf dem System oder andere Dinge, die in Silverlight nicht verfügbar sind. Wenn Sie jedoch alles tun müssen, um das System zu besteuern (z. B. starke Berechnungen, bei denen Sie Parallelität, Grafikressourcen, komplexe 3D-Arbeiten usw. benötigen), dann ist WPF der richtige Weg.

+0

Danke Reed. Ich stelle mir vor, einige dieser nicht verfügbaren Funktionen (wie Interop) könnten mit SilverLight über die Verwendung von WCF erreicht werden? –

+1

Sie verwenden Silverlight nicht wirklich - dann würden Sie das in eine separate Anwendung verschieben. In SL4 können Sie COM-Hosting (nur aus dem Browser) verwenden, um etwas davon zu erreichen, aber an diesem Punkt ist WPF einfach nur besser zu arbeiten. Wenn Sie eine einzelne App benötigen und Interop benötigen, gehen Sie WPF ... –