2009-04-24 7 views
7

プラグイン可能なモジュール形式でASP.Net MVCアプリケーションを構築するための推奨事項はありますか?私はいくつかのブログの投稿/チュートリアルなどを意味します。私はちょうどHammet's MEF and ASP.NET MVC sample blogpostを読んでいますが、私はMEFがまだ本番でそれを使用するのに十分なほど成熟しているわけではありません。私はこのトピックに関する他の関連記事をgoogleに出すことができませんでした...asp.net mvcモジュラーアプリケーションのhowto/recommend

カスタムControllerProviderとプラグイン検査メカニズムを実装するモジュール性を実現することができましたが、私がしたいのですが、モジュラーアプリモデル/サービスなどのような他の何もない - ベストプラクティスは、私はホイール:)


私はビューの単なるWebアプリケーションのポイントをカバーする必要があり、このトピックの意味モジュール性を再実装を開始する前にビュー、リソース、JS + CSSファイル、画像などを含む複数のアセンブリに1つのWebアプリケーションを分離するための最良の方法を見つけてください。それらをロードし、コントローラを公開し、ビューや他のリソースを利用可能にし、おそらく各Webアプリケーションモジュールのエントリを含むいくつかのメニューを準備します。

ここでは、モデル+サービスのプラガブルアーキテクチャについてはお伝えしたくありません。ASP.Net M VCの部分だけです。

+0

私は近い将来、非常に似たようなことをしていますが、これまでのところ、これを「箱から出して」行うことはありませんでした。しかし、これを手動で行うのは比較的簡単です。単にbinにアセンブリを繰り返し、特定のインタフェースの継承を探してください。私は思う... – roryf

答えて

3

モジュール性はかなり広い概念であり、私はあなたの質問に対する答えはちょうど主観的でなければならないと思います。あなたが求めていることは、建築上の決定であり、それについて行く良い方法はありません。プロジェクトによっては、システムのさまざまな部分の優先順位と重要性が異なる場合があります。私は、MVCパターンは、実際には各モジュールアーキテクチャの目的である、十分な分離を提供すると考えています。

既存のアプリケーションで新しいモジュールを簡単に接続できるようにするには、モジュールをどのように定義しますか?私は、あなたが少し不明瞭で意味のある答えを得るために少し質問を絞るべきだと思います。展開の

+0

あなたは正しい - 私はトピックを絞り込むために投稿を編集しようとした.. – Buthrakaur

0

モジュール化のための基本的な引数は常に同じです...

  • テスト容易
  • 保守
  • 使いやす
1

第3部コントローラをレンダリングする部分の要求のためのサポートMVCで完全にサポートされている場合は、この記事をご覧ください。http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/

明らかに、MVCのモジュールには少なくとも1つのコントローラと1つまたは複数のビューが含まれています。しかし、おそらくあなたが望むものはほんの僅かであり、従来のWebFormsアーキテクチャよりもコントローラを書き換える方がはるかに簡単です。

おそらく、データソースを置き換え、Modelエンティティのメソッドをオーバーライドして起動して実行しているとします。 MVCの中核となるのは、リンクしてもSQLで直接SQLを実行できるWebFormsとは異なり、ロジックの異なる層を分離し、それを実行することです。

(MVCもサポートしていますが、これは仕様ではなく、継承によるものです。出発点として、あなたはこの記事からいくつかのアイデアをつかむことができ)

0

Spark View Engine - Modularity

とサンプルコード:

spark/src/Samples/Modules

コードがスパークビューエンジンでありますツリー(これは非常に素晴らしく強力なプロジェクトですが)とはあまり関係ありません。それは、城を使用して依存関係やそのすべてを構築します。

ところで、私はMEFを使いこなしてきましたが、実際には今のところ利点がないし、キャッスルやいくつかのツールを使って行うことができます)。

1

に素敵な解決策になる可能性があり、私はあなたがについて話す基本的な要件のいくつかを解決する記事を見つけました。残念なことに、この記事はASP.NET MVC 3を使用して約1年が経過していたので、ASP.NET MVC 4で動作させる方法をテストし、テストしました。read it hereです。

0

この問題はすでに解決済みです。しかし、私はこのトピックに関する最新の回答を探しています。私は、元の答えが示唆しているように、領域を見てきましたが、Liviu Ignatの次のリンク(Part 1Part 2)を見つけました。これは、プラグイン可能なモジュールの観点からこの質問に答えました。