Is there one or can we get or...build our own install provider? With all of the issues regarding installation it would be great if the DNN core was a bit more extensible to the point where we could build our own install providers. Then we could choose what features to install and what providers to handle those features. It might also eliminate people from being stuck behind on older versions of DNN due to having to deal with far too much at one time.
Instead of upgrading the entire site, why not leave the core alone and if an area needs to be changed then it should be refactored so that we can extend it. The result would give us extensions we can install through the Extensions page in the host instead of having to risk the entire site crashing due to all of the problems that can come up during a full core install.
Plus, some of the new features people don't want but are forced upon in order to get the other features they do want.
I think that would eliminate the issues people have with upgrading DNN which would also prevent all of the negativity on the web regarding DNN and the install issues.
We would need a dependency matrix to validate the install but that could easily be managed by the core as it does now with assemblies and modules.
What would that involve? Breaking up the core into additional provider design patterns and adding a single base handler? A few abstract classes?
I think it would be great if we could install the core extensions we want instead of having to upgrade the entire core. Take the extensions design a few more levels deep. DNN is half way there, let's finish the job.