これが私が達成したいことです。ASP.NET MVC の AREA を純粋な単一の DLL として分離したいと考えています。
- ブログ.DLL
- フォーラム.DLL
- FAQ.DLL
それぞれが個別の ASP.NET MVC エリアであり、独自の既定の CSHTML または ASPX ページがあります。リソース、javascript などを含む多くのページをインストール、移行、および維持することは、長期的には非常に苦痛です。これらのほとんどはほとんど変わらないためです。
私の最終的なウェブサイトはこのようになります。
\MvcApplication
\bin
\MvcApplication.bin
\Blog.dll
\Forums.dll
\Controllers
\..
\Models
\..
\Views
\..
\Global.asax
\Web.config
何も追加せず、Blog.dll をドロップするだけで、アプリケーションは /blog とそのすべてのページをサポートするはずです。何かをカスタマイズしたい場合は、領域を追加して cshtml ページのみを追加できます。
\MvcApplication
\bin
\MvcApplication.bin
\Blog.dll
\Forums.dll
\Areas
\Blog
\Views
\Shared
\BlogLayout.cshtml <-- this will override the look
\Controllers
\..
\Models
\..
\Views
\..
\Global.asax
\Web.config
これは、bin フォルダーに dll をドロップするだけで、ASP.NET エリア プラグインを再利用するのに役立ちます。ただし、web.config にはいくつかの変更が必要になる場合がありますが、ほとんどの場合、configure 値をデータベースに保存し、必要なのは web.config の「Entity Framework 接続文字列」だけです。
私の課題(質問)
- 出来ますか?確かに私には見えますが、反射/許可の問題はありますか?
- 1 つの DLL 内に cshtml/aspx ビューを含めるにはどうすればよいですか? おそらくコンパイルされたバージョンですか?Codeplex でテキスト テンプレート ベースのビュー エンジンをいくつか見たことがありますが、実際の使用方法については少し混乱しています。
- また、ViewEngine に最初に物理ディレクトリ ファイルが存在するかどうかを確認させ、次に dll 内の cshtml/aspx をリソース ファイルとして調べるにはどうすればよいですか?