This question already has an answer here:
- ASP.NET MVC 3 (C#) Software Architecture 2 answers
The one thing that I am having a hard time figuring out with developing an extensible application platform in ASP.NET MVC 3 is how to modularize everything into an easy to update and distributable form.
The ideal solution I think would be to be able to pack everything up is some compressed file like zip/rar/tar (but still having the source code and views compiled in a dll file) and build into the the core platform a way to allow a non-technical select the compressed file and install it automatically.
The only thing I have manage to compile in separate a .dll file are the controllers, classes, and razor views (with help from a blog post). Now this issue with this is that the .dll projects doesn't have access to the shared views from the main project (or I can't find a want to access them) and I have to copy the shared views from the main project into all the separate projects holding each module (not to mention the configuration files I also have to copy).
If I make a change to the shared views that other module are using (that other people are maintaining), they would have to update their module to copy in the new version of the shared views and this is just a solution that doesn't seem very manageable.
I am looking to see how other people setup large extensible C# ASP.NET MVC 3 applications.
EDIT - New Ideal Solution