Как создать область ASP.NET MVC в качестве плагина DLL?
Вот чего я хочу добиться, я хочу разделить ОБЛАСТИ ASP.NET MVC как чистую одиночную DLL.
Blog.DLL Forums.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
Это поможет в повторном использовании плагинов ASP.NET Area, просто поместив DLL в папку bin. Однако web.config может потребовать внесения некоторых изменений, но, скорее всего, мы сохраним значения конфигурации в базе данных, и единственное, что нужно, это строка подключения Entity Framework & quot; в web.config.
Мои проблемы (Вопросы)
Is it possible? It sure looks to me, but will there be any reflection/permission issues? How do I include cshtml/aspx views within one DLL? Probably compiled versions? I have seen couple of text template based View Engines on codeplex but I am little confused on how to actually use them. And how do I get ViewEngine to first check if physical directory file exists or not and then look into cshtml/aspx within the dll itself as resource file?