2009-07-14 9 views
3

Silverlightの学習を始めたばかりで、Silverlightアプリケーションの典型的なアーキテクチャとアプリケーションのワークフローについては疑問に思っています(Silverlight 2を使用していますが、Silverlightアプリケーションアーキテクチャ

私のテストアプリケーションでは、現在のところ、MyProjectとMyProject.Webの2つのデフォルトプロジェクトしかありません。私はMVVMのパターンに精通しており、これを使用して自分のコードを整理しました。しかし、私はクライアント上で何が起こっているのか、そしてサーバ上で何が起こっているのかを理解することができません。どうすれば定義できますか?私はViewModel層がクライアント上にあり、モデル層がサーバ上にあると通信していると思います。しかし、彼らはどのようにコミュニケーションをしますか? WCFの使用?アプリケーションのサーバー部分を別のプロジェクトで定義する必要がありますか?クライアント側はこれを参照する必要がありますか?

LINQ to SQLを使用してSQL Serverと通信するようにモデルを設定したいときに問題が発生しました。 "LINQ to SQL"項目はSilverlightプロジェクトでは許可されていないようですが、これを別のクラスライブラリプロジェクトに追加すると、Silverlightプロジェクトからこのプロジェクトを参照することができません。 "ソリューション内の他のSilverlightプロジェクトにのみプロジェクト参照を追加できます"。

アーキテクチャーとワークフローについての私の理解を助けるかもしれない情報があれば、大歓迎です。どうも。

答えて

2

Windows Communication Foundation (WCF)は、Silverlightがサーバーと通信する方法です。現在、テックプレビューにあるRIA frameworkを見ることもできます。SilverlightクライアントとWCFウェブサービスの間にレイヤーを追加してデータ検証を行い、検証コードの共有などを可能にしています。

データベースへの直接接続はSilverlightからできません。代わりに、ウェブサーバー経由でWCFサービスを使用してデータにアクセスする必要があります。古いスタイルASP.NET web servicesを使用している場合、Silverlightは、これらのサービスを参照するときに、WCFのようなラッパーにこれらをラップします。

+0

Thx!これは本当に私のためのコンセプトをクリアしました。だから、私は通常別のWCFプロジェクトを持っていますか?これは私にとってMVVMパターンのモデル全体を保持しますか? ViewModelをSilverlightプロジェクトのクライアント側に配置しますか? 私は、WCFプロジェクトをSilverlightプロジェクトから参照することはできませんが、これらの間に直接のリンクは必要ないと思いますか?すべての通信はREST呼び出しによるものですか? – stiank81

+0

WebサイトプロジェクトでWCFクラスをホストし、SilverlightプロジェクトからWebサイトサービスにService Referenceを追加します。 Silverlightは、サービスと通信するためにクライアント側に必要なすべてのクラスを生成します。通信の詳細な制御を必要としない限り、送信方法を検討する必要はありません。 –

+0

サービス参照 - 参照してください。さて、私はそれをさらに深く掘り下げるために十分なことが分かっています。私のために物事をクリアするためのThx! – stiank81

関連する問題