2009-04-21 13 views
6

Ich bin drei Wochen in der Gestaltung einer Silverlight 3 LOB-Anwendung und ich habe mich entschieden, mit Entity Framework, RIA Services und dem MVVM-Muster zu gehen.Gibt es einen Wert bei der Verwendung eines Silverlight-Frameworks?

Jetzt schaue ich in den ganzen Kleber. Ich überprüfe Verhalten, ICommand, Abhängigkeitseigenschaften, IoC, usw.

Es gibt eine Anzahl von Rahmenwerken für Silverlight wie von diesem Schreiben.

Silverlight.FX
Silverstone
CSLA for Silverlight
Prism
Caliburn

sind diese notwendig?
Haben Sie Erfahrung mit einem dieser Frameworks?
Sind diese Frameworks immer noch für Silverlight 3 anwendbar?
Was sind die Vor- und Nachteile der Arbeit mit einem dieser Frameworks.

Um ganz ehrlich zu sein, ich bin nicht ganz so interessiert an CSLA, da wir es heute nicht verwenden, aber ich habe es der Vollständigkeit halber aufgenommen.

Antwort

4

Eines der Dinge, die noch immer fehlen (das ist wichtig für MVVM) ist befehlend. So werden Sie zumindest einen Teil dessen rollen, was der Rahmen selbst bietet.

Ich persönlich benutze kein Framework von Drittanbietern, sondern benutze ein firmeninternes Framework, das mir Befehle erteilt und Basisklassen für den ViewModel-Teil von MVVM hat.

+0

Kommandieren ist etwas, von dem ich weiß, dass ich es unbedingt brauche. –

+1

Um ehrlich zu sein, was ich tun würde, ist ein Blick auf die Opensource-Frameworks und nehmen Sie die notwendigen Kommandos und fügen Sie dann die anderen Bits hinzu, wie Sie finden, dass Sie sie brauchen. –

+0

Das ist eigentlich, was ich dachte, es sei denn jemand hier erzählte mir, dass X-Framework wesentlich war. –

1

Ich habe keine Erfahrung mit diesen Frameworks, aber basierend nur auf YAGNI und die Neuheit von Silverlight 3 und RIA Services, würde ich einfach bei Silverlight 3 und RIA Services bleiben, bis Sie beweisen können, dass Sie ein Bedürfnis haben ein zusätzlicher Rahmen.

Ich würde (reine Spekulation) vermuten, dass die neuen Silverlight 3-Funktionen zusammen mit .NET RIA Services viele der gleichen Silverlight-Unzulänglichkeiten adressieren, die diese Frameworks adressieren.

+0

Ein Teil von mir stimmt zu und der andere Teil will etwas einfacher. Jetzt, da ich MVVM, RIA Services und Silverlight 3 im Kopf habe, kann ich nicht anders, als zu fühlen, dass etwas fehlt, aber ich habe kein ausreichendes Verständnis, um zu wissen, was das ist. Diese Frage war mehr für mich herauszufinden, was das "etwas" ist. –

1

Ich habe sicherlich eine persönliche Voreingenommenheit, auf dem, was ich bei der Arbeit zu tun, aber Funktionen, die ich in jedem Silverlight-Projekt super nützlich finden ...

  1. Daten
  2. Authentifizierung/Sicherheit
  3. Trigger/Actions
  4. Behaviors (um Ansichtsfunktionalität in wiederverwendbare Komponenten zu kapseln, die Sie an Steuerelemente anhängen können)
  5. View Model/MVVM (um Ansicht von Code zu trennen)
  6. Einfache IoC - Abhängigkeiten in Ihre Ansicht Modelle
  7. Effekte injiziert werden, und Übergänge

Wenn Ihre Anwendung ist komplex/hat mehrere Bildschirme ... 8. Navigation und möglicherweise einige MVC

1, und 2 - Wir hoffen, mit .NET RIA Services zu adressieren.

Die anderen, ich versuche, eine Implementierung über Silverlight.FX bereitzustellen ... zunächst als eine Implementierung können Menschen wie sie sind oder als Ausgangspunkt, und im Laufe der Zeit sie in die Plattform/SDK fahren.

Soweit Befehl selbst geht, ist es sicherlich nützlich, aber nicht unbedingt meiner Meinung nach, wenn Sie die grundlegende Funktionalität der Bindung und die Fähigkeit haben, Ereignisse zu Vanilla-Methoden über Aktionen zusammen zu verknüpfen.

2

Ich mag Nikhils Silverlight.FX, da es Befehl, mvvm und einige "Spaß" Elemente wie ein Mausrad Scroll-Verhalten enthält. Prism ist auch ziemlich gut und ich denke, dass sein Event-Publish/Subscribe-System mächtiger als Silverlight.FX ist. Insgesamt finde ich Prism ein wenig umständlich (und nicht ganz relevant, wenn Sie planen, eine SL3-Navigations-App zu bauen). Ninject ist mein derzeitiger Favorit für DI.

+0

Sie denken wirklich, dass Prism mehr umständlich ist? Ninject ist sehr beliebt, aber die Einheit sah klein und einfach aus. Wie groß ist die resultierende SilverLight.fx-Baugruppe? und die Ninject Versammlung? –

+0

Prism fühlt sich nur schwerer an, weil es nicht leicht ist, in ein Teil des Systems einzukaufen. Ich habe jetzt ein Projekt, das das Eventing-System wirklich nutzen könnte, aber um das zu nutzen, müssen Sie ihr DI-Framework verwenden (um einen eventAggregator zu erhalten). Nikhils Lösung ist nett, weil Sie die Befehle mit sehr wenig Overhead verwenden können. Um ehrlich zu sein, das ist wirklich ein kleiner Schlag auf Prism; Es ist ein leistungsfähiges Framework, wenn Sie eine große App haben, an der Sie gerade arbeiten. Meine App ist kleiner, daher bevorzuge ich leichte, einfach zu verarbeitende Frameworks. Nicht sicher über Dll Größe - downloaden Sie sie! –

Verwandte Themen