最近、ASP.Net MVCとそのさまざまな機能について学び始めました。MVC_3_MUSIC_STORE + CODEです。
非常に構造化されており、理解しやすいように見えます。ASP.Net MVCをN-Tierに変換する
Iは、エンタープライズ・アプリケーションについて読んでいたとどのようにIがNに上記MVC_3_MUSIC_STOREを別個行う(変換)する方法(学習用)思った
(論理/物理)異なるセクションで階層/積層されています問題の明確な分離を得るためには、すでに(実例がありますので)という3層アプリケーションを使用しています。 私はこれに多くの事前経験はありません。
どのような変更が必要ですか?
DTO(複数可)またはPOCO(複数可)は何が必要ですか? 上記の例では、コントローラからビューまでのPOCOエンティティを使用しています。 EFコードが最初に使用されていると仮定しても同じですか?
また、WCF Webサービスがデータアクセス層として導入された場合、どのような変更が必要かと思いました。すなわち、DALからデータを取り出す代わりに、クライアントはWCF Webサービスとの間でデータを要求する。クライアントは、WebアプリケーションまたはWinFormsまたはSliverlightアプリケーションにすることができます。
([DAL < - >WCF WS] < - >N CLIENTS)
様々なアプローチについて知ることは興味深いものになるだろう。
例コードは参考になり、同じ例です。
編集1から
私が気づいたことの一つ私がモデルフォルダから「mymodelという」新しいプロジェクトにモデルクラスを移動したときに、私は再び参照を追加する必要がありますし、「System.ComponentModel.DataAnnotations」へとを追加しました新しいモデルプロジェクトの "System.Web.Mvc"?
これをどのように回避できますか?これらの検証はどのようにしてビジネス層に移行できますか?
編集2
必要とされる唯一の変更はリポジトリ(DAL層)の実装を提供することである。通常、この Advice For A Newbie About N-Tier Applications
「それをN層にする」というわけではありません。サービス指向になっています(それ自体が過負荷状態です)。 UI層+ビジネス層+データ記憶層= 3層アーキテクチャ。 Webサービスを強制するものはありません。 –
@ Eric J.、私は本当にその用語に精通していませんが、それは間違いなく私がそれをやる方法です。 –
どの要件が設定されているかに基づいていますか? WCFはデータベースへの直接アクセスに比べて遅い(ネイティブHTTPハンドラと比較して遅い)。多くの場合、Webサービスを介して機能を公開する価値がありますが、コストもあります。問題を問わずにソリューションを適用すると、アーキテクチャの選択肢が悪くなります。私たちのソリューションは、1日に何十億ものリクエストを処理することができ、WCFを追加レイヤーとして導入すれば、ハードウェアはほぼ2倍になります。用語の定義については、http://en.wikipedia.org/wiki/Multitier_architectureを参照してください。 –