About two months ago, I responded to a DotNetNuke question on StackOverflow.com with regard to automating the installation of modules within the installation. This is a question that I have seen many times, but with different business requirements and end desires, but the trend is the same, installing extensions one-by-one is an inefficient process, and with a heavily used site can cause performance issues that would impact regular traffic for an extended period of time. This is simply because there is a delay between each install, and with each install and update to the /bin directory the application recycles. Thankfully there is a method built into DotNetNuke that easily allows you to bulk install extensions.
The process to prepare for bulk installation is very easy. Within your DotNetNuke installation, there is an /Install folder and inside this folder, you will find multiple others. Such as /Container, /Skins, /Modules, etc. Simply take your installation package based on the type of extension you want to install and FTP/Copy them to their respective directories. Once they are staged and ready to go, you can then trigger the installation process.
Once all extensions have been loaded simply navigate to http://www.yoursite.com/install/install.aspx?mode=installresources and the installation process will start, installing each extension and providing you summary results on success/failure of the installation. It is that easy!
Going to the Next Level?
So, the real question here is what does this allow us to do? Well, that takes me back to the question that I responded to on StackOverflow, knowing this and the way that DNNprovided status information it would be easy to automate this process for quick deployment across sites. Chris Tybur the individual with the question on StackOverflow has blogged about this in his article An easy way to update DNNfrom another app.
I hope that this article has helped shed some light on a little known feature of DotNetNuke and potentially given you some ideas on ways that you can automate and leverage the DotNetNuke framework. Feel free to share comments below, if you have technical questions, please use the forum.