ASP.NET MVCでプラガブルな構造
2018/01/14
他人の修正部分を巻き込みたくない、巻き込まれたくも無い。
Core+プラグイン(エクステンション、モジュール)構造にしたい…。
何回か調べていますが、久しぶりに調べると大きく状況が変わっていました。
Orchard Core
今使うならこれかな。初めて出会った時に比べて分かりやすくなっています。Coreは.NET CoreのCoreです。そのうち消えるだろうと思っていたOrchard CMSですがなんとCore対応中です。
CMSの機能抜きでCore+プラグイン構造のフレームワークとして使う時の最小限サンプルはこちら。
Area
普通に作ると一つのdllになるので、Areaの下に別プロジェクトを作成する。ビルド時のdllの作成場所を親プロジェクトのbinフォルダに変更。既存の知識だけで運用でカバー。WebFormでやったのと似たような発想。
MEF
プロジェクトを小分けにし動的に追加していきたい、と言う目的からたどるとMEFに行き当たります。このあたり。
Portable Areas
MVC始めた頃からあります。一つのAreaを複数のサイトで使いまわしたい場合。
覚えやすい名前ですが、最近の情報がなくてちょっと不安。
このあたり。
RazorGenerator
こちらも若干モジュール化とは異なる気がしますが、Viewをdllにしてしまおうというもの。本来の使い方。
ソース。
詳しい説明。