Daily using/supporting

Get Firefox browser!
Get Thunderbird!
Get Opera browser!
Get The Gimp!
Get Inkscape!
Get LibreOffice!
Get Videolan!
Get Linux!
Get Mandriva!
Get Joomla!
Hacker Emblem

Archives

Which topics would you like us to cover more?

Latest comments

Latest tweets

about 1 day ago Using REDIPS.drag to add drag and drop to your .Net webapplication #li #dib0 http://t.co/n8zY3s7d
about 7 days ago http://t.co/cknQcDbo #Kindle
about 15 days ago Freedom isn't the ability to choose what to do or say, but the ability to choose what not to do or say #freedom
about 29 days ago http://t.co/61KTQknI #Kindle
12 Apr 2012 Force the use of a networking adapter using C# #li #dib0 http://t.co/ZTJOPzOz
9 Apr 2012 Mandriva 2010.2 and USB devices in Virtualbox http://t.co/fwq9gbHB
9 Apr 2012 Execute a http request to you own site with PHP http://t.co/DIvWPrpd
Home Architecture, security and coding Integrating webapplications and sites
Integrating webapplications and sites
Written by Division by Zero   
Thursday, 08 April 2010 10:07

Here at my department we write web applications for multiple sites, based on a CMS, and in the past we have integrated our applications in two different ways. Both ways work, but aren't the most efficient. At first we just deployed our webcontrols on the different sites. This integrates quite well and is workable. That is, if you don't have many sites to maintain. At first we had about 5-10 sites (all deployed on two servers). the amount of sites grew out to about 70. Deployment became quite hard.

The second way of integrating was to deploy every application once on every server. Using IIS virtual directory settings we enabled each site to use each webapplication. Deployment became much easier, but the application didn't share the application context anymore, which gave us some problems. Besides that the technical maintenance of IIS became harder. It's a lot of work to change the settings of all these sites.

There had to be a better way of integration our applications and the sites. The solution had to meets the following requirements:

  1. Search engine friendly URLs
  2. Applications must be deployed in one location (per server)
  3. Developers must be able to use standard framework functionality, so no special inheritance structure, etc.
  4. IIS maintenance must be as easy as possible

To meet the first requirement we used an URL rewriter. The other requirements were harder. We found a solution, based on usercontrols as embedded resources. To do this we needed an virtual path provider. This way we could deploy our applications in the GAC and let the sites use the applications trough a proxy usercontrol.

Site integration

This way application deployment is easy and different site can even choose different application versions. We just need to deploy one usercontrol on each site and we don't need any special IIS settings. The proxy control gets the information on which application to load from the URL which should be in this form:

http://www.sitename.com/{applicationname}/{function}/{parameter}

This way the proxy control can load a specific application assembly. The application must provide a single class (inherits from an interface provided by the proxy control). This interface is provided with the "function" and the "parameter" and has to return the name of the right usercontrol. Using the virtual path provider the control is loaded. This interface is the only specific thing a developer must do. The controls are all default functionality.

 

Add comment


Security code
Refresh

Prayer does not change God, but it changes him who prays. - Soren Kierkegaard


© 2009 - 2012, Division by Zero

Template based on the empire template by joomlashack 

Valid XHTML 1.0 Strict  Valid CSS!  Creative Commons License
This work by Division by Zero is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Netherlands License.