web-dev-qa-db-ja.com

ASP.NET MVC 3(C#)ソフトウェアアーキテクチャ

私は比較的大規模で野心的なASP.NET MVC 3プロジェクトを開始し、コードを整理するための最良の方法を考えています。プロジェクトは基本的に、ブログシステム、CMS、予約システム、Wiki、フォーラム、プロジェクト管理システムなど、あらゆるタイプの管理システムをサポートできる一般的な管理システムになります。個別の「モジュール」。詳細については、こちらのブログで確認できます。 http://www.ryanzec.com/index.php/blog/details/8 (許してください、サイトのスタイルがちょっと悪い) 。

長いブログ投稿を読みたくない人のための基本的な考え方は、コアシステム自体は、ユーザーシステムを管理するための管理インターフェイスを備えたユーザーシステムにすぎないということです。次に、必要に応じてモジュールを追加するだけです。これから作成するモジュールは、プロジェクト管理システムである大きなモジュールに進む前にテストするための簡単なブログ投稿です。

ユーザーが自分のモジュールを追加するのは簡単ですが、ユーザーがコアコードを変更することを心配することなくコアシステムに簡単に更新できるように、これを構造化する最良の方法を考えています。理想的な方法は、変更しないようにユーザーに具体的に指示されたコアプロジェクトをいくつか用意することです。そうしないと、システムが不安定になり、将来の更新が機能しなくなる可能性があります。ユーザーが独自のモジュールをそこに追加したい場合、新しいプロジェクト(または複数のプロジェクト)を追加するだけです。問題は、1つのWebアプリケーションで、独自のコントローラー、かみそりビューテンプレート、CSS、JavaScriptなどをすべて使用して複数のプロジェクトを使用できるかどうかさえわからないことです。理想的には、各モジュールには独自のかみそりビューテンプレート、css、javascript、画像ファイルがいくつかあり、コアプロジェクトのいくつかのかみそりビューテンプレート、css、javascript、画像ファイルにもアクセスする必要があります。

複数のプロジェクトに保存されているコントローラー、かみそりビューテンプレート、CSS、JavaScript、画像ファイルから1つのWebアプリケーションを実行することは可能ですか?

これを構成して、ユーザーがコアコードを変更する必要があるモジュールを簡単に追加できるようにした方が良いですか?

4
ryanzec

私は比較的大規模で野心的なASP.NET MVC 3プロジェクトを開始し、コードを整理するための最良の方法を考えています。プロジェクトは基本的に、ブログシステム、cms、予約システム、wiki、フォーラム、プロジェクト管理システムなど、あらゆるタイプの管理システムをサポートできる一般的な管理システムになります。

野心的な表現は控えめな表現であり、リンクされたブログの投稿を読むと、実際にスーパーアプリが実際に行うことよりも、使用する流行のクールなテクノロジーに重点を置いているように見えます...

そうは言っても、あなたができると思う最良のことは、慎重に研究することです Orchardのソースコード 。高度なモジュール性を実現し、MVC3に基づいて構築されています。

6
quentin-starin

うわー...これは資金調達の試みではありませんでしたが、私の投稿が削除されたと思います。私の提案は(RavenDBをチェックアウトした人として):MongoDBをチェックアウトするとスピードが欲しい... Ravenとは対照的に無料です。 Newtonsoft.json(JSON.NET)ライブラリを使用すると、オブジェクトをBSONにシリアル化できるので、サービスをセットアップした後、コレクションからオブジェクトを取得するのと同じくらい簡単です。

私が取り組んでいるオープンソースプロジェクトのサイトにリンクするつもりでしたが、どうやらここでは人々が非常に用心深くなっているようです...

0
user22159