2009-04-21 5 views
6

Silverlight 3 LOBアプリケーションの設計に3週間がかかり、Entity Framework、RIA Services、およびMVVMパターンを使用することに決めました。Silverlightフレームワークを使用する価値はありますか?

今、私はすべての接着剤を調べています。私は行動、ICommand、依存プロパティ、IoCなどをチェックしています。

この記事の執筆時点では、Silverlightのフレームワークがいくつかあります。

Silverlight.FX
Silverstone
CSLA for Silverlight
Prism
Caliburn

これらの必要はありますか?
これらのフレームワークの経験はありますか?
これらのフレームワークはSilverlight 3にも適用されますか?
これらのフレームワークとの賛否両論は何ですか?

CSLAに興味があるわけではありませんが、私たちは今日それを使用していないので、私は完全性のためにそれを含めました。

答えて

4

まだ欠けているものの1つ(MVVMにとって重要です)はコマンドです。したがって、フレームワークが提供するものの少なくとも一部をロールバックします。

私は個人的に第三者フレームワークを使用していませんが、MVVMのViewModel部分の基本クラスとコマンドを提供する社内フレームワークを使用します。

+0

指揮は私が間違いなく必要としていることです。 –

+1

正直言って、オープンソースのフレームワークを見て、必要なコマンドを実行して、必要なものを見つけたら他のビットを追加してください。 –

+0

実際に私が考えていたのは、ここの誰かが私にXフレームワークが不可欠だと言っていない限りそう思っていました。 –

1

私はこれらのフレームワークでの経験はありませんが、YAGNIとSilverlight 3とRIA Servicesの新機能だけに基づいて、Silverlight 3とRIA Servicesを念頭に置き、必要があることを証明するまで追加のフレームワーク。

新しいSilverlight 3の機能と.NET RIAサービスは、Silverlightの共通の欠点の多くに対応していると思います(純粋な推測)。

+0

私の一部は同意し、他の部分は少し簡単に何かを望んでいます。私はMVVM、RIA Services、Silverlight 3を頭に浮かべているので、何かが欠けていると感じることはできませんが、それが何であるかを十分に理解することはできません。 この質問は、私が「何か」が何であるかを理解するためのものでした。 –

1

私は確かに私はすべてのSilverlightのプロジェクトで超便利、私は仕事が、機能に何をすべきかに基づいて、個人的なバイアスを持っている...

  1. データ
  2. 認証/セキュリティ
  3. トリガ/アクション(ほとんどのビューを宣言的に保つ)
  4. ビヘイビア(コントロールに追加できる再利用可能なコンポーネントにビュー機能をカプセル化する)
  5. ビューモデル/ MVVMビューからコードを分離する
  6. シンプルなのIoC - あなたのアプリケーションが複雑な場合、依存関係があなたのビューモデル
  7. エフェクト、およびトランジション

に注入取得する/複数の画面を持っている... 8.ナビゲーションとおそらくいくつかのMVC

1および2 - .NET RIAサービスで対応したいと考えています。

他のものは、Silverlight.FXを使用して実装を提供しようとしています...当初、開発者はそのままでも出発点としても、また時間をかけてプラットフォーム/ SDKに実装することができます。

アクションを介してバニラメソッドにイベントをつなぎ合わせる基本的な機能を持っていれば、私自身の考えではありませんが、それは確かに有用ですが、必須ではありません。

2

NikhilのSilverlight.FXが好きです。コマンド、mvvm、マウスホイールスクロールのようないくつかの「楽しい」アイテムが含まれています。プリズムはかなり良いですし、私はイベントのパブリッシュ/購読システムがSilverlight.FXの指揮よりも強力だと思います。全体的に、Prismはちょっと面倒です(SL3ナビゲーションアプリを構築する予定がある場合は全く関係ありません)。 NinjectはDIにとって私の現在のお気に入りです。

+0

あなたは本当にプリズムはもっと面倒だと思いますか? Ninjectは非常に人気がありますが、結束は小さくてシンプルに見えます。結果として生じるSilverLight.fxアセンブリの大きさは?とNinjectアセンブリ? –

+0

プリズムはちょうどシステムの一部に購入することは容易ではないので、私にとっては重いと感じています。イベントシステムを実際に使用できるプロジェクトがありますが、そのためにはDIフレームワーク(eventAggregatorを取得する)を使用する必要があります。ごくわずかなオーバーヘッドでコマンドを使用できるため、Nikhilのソリューションは素晴らしいです。正直言って、それは本当にプリズムの小さなノックです。あなたが作業している大きなアプリを持っているなら、それは強力なフレームワークです。私のアプリは小さく、軽量で、簡単なダイジェストフレームワークを好む。 DLLのサイズについてはわからない - ダウンロードしてください! –

関連する問題