I have an ASP.Net web application that is deployed to a number of different customer’s servers and hosted within IIS (6 or 7 depending on the site). The system is based around a set of fairly complex ASP.Net (aspx) pages. Due to rapidly changing requirements we often have to add forms to the system. At the moment we use a fairly clumsy approach of adding the form to the project and redeploying the whole project to the customer server.
I’m looking to build a mechanism that will allow us to go into the configuration screen of our system and call a webservice hosted on our central web server which will provide a list of forms (perhaps packaged up in some way similar to a Java WAR file) that the customer can choose to install. The installation would somehow add the form to the customer’s IIS making it available within their system. The idea is for a sort of aspx form app store were our customers can choose which forms they need and install them and rather than us having to take time out to perform multiple deployments we just deploy once to our central webserver.
Does anyone have any ideas on how to do this? What technologies can I use to make this happen?
If you’re using Web Application Projects this isn’t so easy to do because all your forms ‘code-behind’ will be compiled into a single DLL. Each time you add a new form, the site application assembly would need to be re-deployed to the
/binfolder.If you were using the ‘new-style’ project-less web applications as introduced in Visual Studio 2005 it’d maybe be possible to do what you’re looking for because you can compile each page into its own DLL (Fixed naming and single page assemblies on the
Publish Web Sitedialogue). I’ve tried this in the past and it’s a bit hit and miss to be honest. Also not having a proper project file is a total pain for larger more complex projects.Another approach would be to put all your markup and ‘code-behind’ in the same
.aspxfile instead of having.aspx.cscode-behind files. I think that would make them self contained units of code that would compile on the fly, but the problem here is that all of the site would need to be built that way…I think.Those are the out of the box methods available in Visual Studio (2008). If you need anything more complex then you’re going to have to design some infrastructure to make it happen unfortunately.