We have an abstract asp.net mvc project which has many copies. Actually every copy project has almost same functionality. But sometimes it can be different in some actions and controllers. Also, every copy project has their own theme. But they share most of javascript codes from abstract base project.
In this aspect, we have faced some difficulties.
- First, we can't inherit mvc views so every copy project has their own views. When we want to change a functionality, we have to implement this in the views of every project.
- Also javascript is headache in this approach. Because, sometimes you have to use html hierarchy in the javascript. And every html code is different because of different views.
- Every-time when we start to a new copy project, it is a pain for us. Because even-though we try to stick to the base abstract project, we have to depart from the base project.
So, we need a project structure that can provide us to build new projects like theme changing. I have looked into MEF structure. I don't know what happens if we make copy projects as a plugin. Also I don't want to integrate views into assembly file as a resource. Because it is not easily modifiable. Also I have looked into some MVC theme structures, but this is not a good solution because it is not inheritable.
What is your suggest?