2011-12-04 13 views
0

私はWPFを初めて使用しています。私が学んだことは、WPFがMVCパターンに従っていることです。私の考えは、WPFとNHibernateで新しいアプリケーションを設計することでしたが、NHibernateはMVVMパターンを使用しています。これは実際にはWPFのMVCと一緒には適合しません。さて、この紛争に対処するための "解決策"はたくさんありますが、私にとってはこれは本当に良いとは言えません。MicrosoftはWPFアプリケーションを永続化するために何を提案していますか?

私の質問:WPFデスクトップアプリケーションのデータをSQL-Serverデータベースに永続化するための「マスター方法」はありますか? Microsoftは何を言いますか?何を言ってるの?

+0

私は、MVCやMVVMなどのデザインパターンについては少し詳しくお読みください。 –

+0

私がこの質問を理解したら、アプリケーションスコープの設定をローカルファイルではなくデータベースに保存したいと思っています。この場合、SettingsProviderからクラスを派生させ、それに応じてそれを飾ります。 Appの実行を続行する間に保持したい情報にアクセス/保存するクラスのインスタンスを作成します。 –

答えて

2

WPFで推奨されるパターンは、MVVMパターンです。あなたは良い出発点多くのブログの記事でこれをチェックアウトするが、ここですることができます:あなたはマイクロソフトについての詳細を知りたい場合

MSDN Magazine - WPF Apps With The Model-View-ViewModel Design Pattern

を使用すると、パターンと実践のウェブサイトをチェックアウト、またはデビッドで見ることができるアーキテクチャをお勧めしますヘイデンのウェブサイトには素晴らしいスクリーンキャストがたくさんあります。

デスクトップクライアント用のデータアクセスレイヤを構築するには、多くのアプローチがあります。一般的なのは、リポジトリパターン、アクティブレコード、ORMの直接使用です。 NHibernateおよびEntity Frameworkとは異なり、Active RecordパターンはPOCOに基づいていません。これらのオブジェクトは、永続性を保持します。これにより、一部の分散シナリオと非連結シナリオがより機能します。エンティティフレームワークでNHibernateのかDBContextオブジェクト内のセッションオブジェクトはのリポジトリパターンの種類をたどる

Ayende - Repository is the new Singleton

基本的には、この記事によると:Ayendeで、この記事で要約されて離れリポジトリパターンからの傾向がありますリポジトリ層を追加することは冗長です。

MVVMでは、これらのパターンと技術はモデルに反映されます。ビューモデルは仲介者として機能するため、ビューを永続オブジェクトに直接バインドしないでください。

私はこれが役に立ちそうです!

+0

ありがとうございました!これは本当に非常に有用でした! – PeterP

4

何もありません。あなたは間違っている - これはメルセデスが特定のタイプのWINDSHIELD WIPERを使って車のクリーニング材料として提案していることを聞くようなものです。

基本的に永続性はアプリケーションの一部であり、WPFはプレゼンテーションであり、もう1つはプレゼンテーションです。それは、あなたがデータをどのように表現するかをゼロにします。あなたは犬の状況を振り返ります。

これは本当にWPF

これを使用していsomeneとして

からMVCと一緒に適合しない - それは絶対にありません。完全に。

[OK]を、この競合を処理するために多くの "ソリューション"が終了しますが、私にとってこれは実際には いいですね。

adrchitectureについて詳しくは、こちらをご覧ください。

SQL Serverの データベースにWPFデスクトップアプリケーションのデータを永続化させる「マスター方法」はありますか?

いいえ他のタイプのアプリケーションと同じです - 常にトレードオフがあるため、銀色の箇条書きは存在しません。したがって、経験を必要とするソリューションを考え出す必要があります。

NHibernateのが、NHibernateのはMVVMパターン

に私がチェックした最後の時間を利用し、NHibernateのは、ハンドリングアプリケーションの複数の異なる方法をサポートする完全に可能であったO/Rマッパーました。したがって、このステートメントは間違っています。

関連する問題