I am doing some research/exploring into different site designs and architecture. Generally speaking, I would like to read up on different patterns and practices that are being done today for web sites.
Specifically, I am looking for a composable and/or plugin site design. The main purpose of this setup would be for it to allow each plugin or part of the site to be developed independently of the other parts. Hopefully with little working knowledge of the other pieces. I know there will be some knowledge spread between the peices for authentication and authorization. The main goal would be to limit the coupling between sections of the site and limit impact of code changes to other parts of the site.
I have a few ideas but I am not sure if they are piratical. That is why I am trying to find more info on what others have done.
Some ideas.
Idea 1 was to create a MVC site that allowed plugins to be deployed. There are a few ways to do this. Seen here, here and here. Plugins could be developed and run interdependently of the main site. Once completed could be dropped in and tested with the main core. One set of master pages, CSS, and whatever else. This is similar to the plugin model for most CMS systems (ex: wordpress)
The second idea would be a single sign on design. Every section of the site could be hosted as its own domain/site/ect. but auth would be done in a sign point. Some ideas on how to do this could be seen here. Master pages, CSS and other items would probably have to be repeated between the different sections.
And the 3rd idea was a mixture of the two. The "core" site would handle styling and layout. The content would be ajax calls to the different sections of the site which could be hosted on the same domain or not.
I have not flushed these ideas out or done any prototyping yet. I am in the brainstorming portion of this process. The only thing that is set in stone is it will be written with C#/asp.net mvc and there must be only one sign in between sections of the site. Other than that, everything is fair game.