Screwturn powered front-end for your mISV

I have just finished to migrate all the web content of into a brand new skinned Screwturn wiki instance. Thanks to the design skills of Sergey Pozhilov, the result does not look bad :-) .

I have been writing about wiki misuses in the past. One of my recommendation of at the time was do not use wikis for public diffusion. I still believe that this recommendation is a good one (even highly popular forums have hard time to get anybody contributing to a wiki). In fact, even if is now hosted in a wiki instance, the accesses have been restricted to the Lokad team. Thus, we are using Screwturn as a CMS and not as a wiki.

This migration was the 3rd step:

  1. At first, the Lokad web application and website were mixed. As a result, it was taking as much effort to update the web application or the website. The situation was just painful by design.
  2. Web application and website have been separated. The website was now regular static HTML. The update overhead was still significant, FTP being just a pain when it comes to fix typos.
  3. We have hired a professional designer to get a decent XHTML skin and then we have migrated the web content into a skinned Screwturn instance. The update overhead is now super-low.

Do not break URLs: When migrating your web pages, it’s important to include the proper redirections. I have been using UrlRewritingNet, a nice open-source URL rewriting tool. UrlRewritingNet is very convenient to migrate ASP.NET pages because ISS does not intercept the requests even before they hit the ASP.NET machine.

Benefits of the Screwturn CMS for your mISV

I have been relying on a CMS for 48h to manage, I do not think I am ever going to move backward toward a static HTML again.

Scripting tricks for Screwturn

When it comes to skinning an ASP.NET application, the goal is to change the minimal amount of lines of ASP.NET code (optimally zero) during the skinning process. This process ensures that upgrading toward the next version of the ASP.NET application will be painless. Thus, I have been resorting to a couple of client scripts to avoid touching the ASP.NET code.

The search box is using

<a href="javascript:document.location =   
    \+ encodeURI(document.getElementById('TxtSearchBox').value);">search</a>

The Edit and History links are using

<a href="javascript:document.location = 'Edit.aspx?Page=' + encodeURI(  
   document.location.pathname.substring(1,document.location.pathname.length - 5));">Edit</a>  
<a href="javascript:document.location = 'History.aspx?Page=' + encodeURI(  
   document.location.pathname.substring(1,document.location.pathname.length - 5));">History</a>

Finally, the navigation tabs rely on a small script dynamically adjusting the CSS classes.

<script type="text/javascript">  
   var navItem = document.getElementById('HomeTab');  
   navItem.className = 'active';