¿Cómo crear el área de ASP.NET MVC como un DLL de complemento?

Esto es lo que quiero lograr, quiero separar ÁREAS de ASP.NET MVC como DLL simple.

Blog.DLLForos.DLLFAQ.DLL

Cada uno de ellos es un área de ASP.NET MVC individual, con sus propias páginas CSHTML o ASPX predeterminadas. Instalar, migrar y mantener muchas páginas, incluidos recursos, javascripts, etc., es un verdadero problema para el largo plazo. Como la mayoría de estos apenas cambiará.

Mi sitio web final será así.

\MvcApplication
   \bin
      \MvcApplication.bin
      \Blog.dll
      \Forums.dll
   \Controllers
      \..
   \Models
      \..
   \Views
      \..
   \Global.asax
   \Web.config

Sin agregar nada, simplemente soltar Blog.dll, mi aplicación debería admitir / blog y todas sus páginas. Si quiero personalizar algo, entonces puedo agregar área, y solo agregar páginas 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

Esto ayudará a reutilizar los complementos del área ASP.NET, simplemente colocando la dll en la carpeta bin. Sin embargo, web.config puede requerir algunos cambios, pero lo más probable es que guardemos los valores de configuración en la base de datos y solo lo necesario será la "cadena de conexión Entity Framework" en web.config.

Mis retos (Preguntas)

¿Es posible? Seguro que me parece, pero ¿habrá problemas de reflexión / permiso?¿Cómo incluyo las vistas cshtml / aspx dentro de una DLL? Probablemente versiones compiladas? He visto un par de plantillas de texto basadas en View Engines en codeplex pero estoy un poco confundido sobre cómo usarlas realmente.¿Y cómo consigo que ViewEngine primero verifique si el archivo del directorio físico existe o no y luego ver cshtml / aspx dentro de la propia dll como archivo de recursos?

Respuestas a la pregunta(3)

Su respuesta a la pregunta