2009-08-25 13 views
2

これは本当に本当に基本的な質問です。.NETのn層CRUDアプリケーションへのアプローチ

私は今日、n層アーキテクチャを備えた.NETのエンタープライズCRUDアプリケーションを構築したかったと言います。どのようなデータアクセス方法を使用する必要がありますか?私は相互運用性を望んでいるので、DataSetsは廃止されています(そして、2003年もそうではないと思います)。同様に、.NET RIA Servicesのアドバタイズされた方法で、追加のサービスを介してSilverlight以外のクライアントにその機能を公開する方法は、更新操作のためにあまりにもconvincingとは思われません。私はソートのは、nティアのサポートOOBを持たないエンティティフレームワークと何かを一緒にcobbleすることができましたので、オプティミスティックな並行処理のような奇妙な反射型のものを必要としました(MSDN Magazineのexample私はhearこれはEF4で改善されていますが、少し懐疑的ですが、CTP以外にはまだ実際には利用できません)。

したがって、アップデートチェックオプティミスティック並行性を備えたエンタープライズCRUDのプロジェクトで人々は実際に何をすることができますか?データセット? DTOとDIYとLordは関係する仕事の量を知っていますか?バインドされたデータはどのように機能しますか? DataGridにバインドされたコレクションがあるとします。変更をCollectionChangedで待機する必要がありますか?元に戻す場合はPKを比較できるようにスタックを変更する必要がありますか?悪夢のようだ。

また、オプティミスティックな並行性の更新チェックが厳しい要件ではない場合はどうでしょうか?それでは?

+0

アプリの大きさはどれくらいですか?どのくらいの期間、それは奉仕になりますか?何人のユーザーですか? 1つの場所または複数の?開発者の現在の経験と知識ベースは何ですか?あなたは、相互運用性を望んでいると言いますが、何がありますか? このコンテキストなしでテクノロジーソリューションを選択するのは無意味です。 –

答えて

3

まず、VS2010と.NET 4.0に移行する予定がある場合は、EF v4.0を調べることを強くお勧めします。 EF v1.0がリリースされて以来、それはDRAMATICALLYに改善されました。そして、私の意見では、nHibernateや友人のような人たちに対する強い競争相手です。 EFは、多くのマイクロソフトの将来のデータイニシアチブにおいても中心的な役割を果たしているため、これまでのように簡単に無視することはできません。それ、またはそれに依存する.NET 4.0上位レベルのフレームワークのいずれかが、あなたのCRUDニーズにうまく役立つはずです。

これ以外に、簡単なCRUDアプローチがビジネスパースペクティブから最も適していることを確認します。 CRUDは、技術的観点からは意味をなさないものですが、小規模なアプリケーションでは通常は正しい選択です。しかし、あなたは「エンタープライズ」という言葉を使用していたので、CRUDがうまく機能するシンプルさよりもアプリケーションの範囲が広いのは不思議です。

従業員数が20〜50人程度の小規模企業を超えて、ドメイン駆動型設計(DDD)とSOAを検討します。そのような並行性管理などが必要な場合は、DDDを駆動するプリンシパルがうまく機能するはずです。 SOAは、相互にやりとりする必要がある複数のプロジェクトを同時に開発する多数の開発チームが存在する非常に大きなプロジェクトには一般的に便利です。あなたのニーズには余計かもしれませんが、まだ助けてくれる良い校長がいます。

+0

ありがとうございました。これは、少なくとも数百人にも及ぶ大規模で複雑なアプリケーションです。私が明確にしておきたいのは、n層のCRUDと言うとき、私はここにSOAを含めることを意味します。私の質問は本当に変更追跡に関するものです。クライアントが呼び出すために、WCFサービスで操作が公開されるようにしたいと思います(シンプルまたは複雑なセマンティクスがあります)。私はそれを見て、私は2つの選択肢があります:相互運用可能、プラットフォーム特有のDTO、または更新のために組み込まれた変更追跡を持つかもしれない.NET固有の技術(EFのような) 2番目の解決策は*多少の作業が少ないようです。思考? – dks1983

+1

Entity Framework v4。0には完全な多層チーム追跡ソリューションがあります。彼らは実際にワイヤを介して変更追跡情報を転送するためのオープンな仕様を開発しました。したがって、非.NETクライアントを使用する場合でも互換性があります。さらに、必要に応じてカスタム変更追跡を完全にサポートしました。私が前に述べたように、EF v4.0(v1.0ではなく)は、ORMクラウンのための重大な候補です。変更の追跡が最重要事項である場合は、EFを実際にチェックアウトする必要があります。http://blogs.msdn.com/efdesign/ – jrista

+0

詳細については、ADO.NETブログを参照してください。http://blogs.msdn.com/ adonet/ – jrista

関連する問題