ASP.NET Zip Entry Handler

Jake Morgan recently submitted an article to Codeproject.com detailing how to deploy zip files to a web application and serve uncompressed files directly out of the zip file. We use this technique on Elsitech.com for our Developer Labs section. The full Codeproject.com article contains implementation discussion and the sample code needed.

Screenshot of Zip Entry Hanlder

From the article:

The ZipEntryHandler enumerates and serves files out of static zip files deployed in your web space. The handler is implemented as a simple ASP.NET IHttpHandler deployed with a code file in the App_Code directory on your website and configured with a line in the web.config file. The handler is very useful for several purposes:

  • Serving otherwise prohibited files - Code files with extensions that have special meaning to the web application ("cs", "vb", "aspx") can be served statically.
  • Storage Space - Very compressible content often consumes large amounts of web space. This handler allows content to be stored compressed without special access to the file system on a web server.
  • Maintainability - Often a zip file and the contents of the zip file should both be downloadable and browsable. This pattern allows solely the zip file to be deployed without having to synchronize other downloads.

Posted by: Mike Richards
Posted on: 5/19/2008 at 9:06 AM
Categories: Development
Actions: E-mail | Post Information: Permalink | Comments (0) | Post RSSRSS comment feed
Share

Wiki versus RoboHelp

Elsinore made the decision to switch from Compiled HTML Help edited with RoboHelp to a wiki-based help system using Screwturn Wiki.  The following is a look into the decision making process that ultimately lead to replacing RoboHelp with a Wiki.

Issues with RoboHelp

In general, we were very frustrated with RoboHelp.  After using it for many years and through several versions of our product, we had assembled a critical mass of grievances.

  • Lack of flexibility around updates which were not tied to releases
  • Rigidness of source code control and upgrade pains
  • Web Help required rebuild of the entire project to generate .htm files, which took 10-15 minutes and required additional files to be checked into source control and then picked up by the Product build system.  This often resulted in internal builds not having updated Help files installed. 
  • Updates simply took too much time, effort, and planning.  When a new help resource is available, we want to make it available quickly and effortlessly. 

Advantages of Wiki for Product Help

  • Updates made in real-time
  • Ability to easily link to other sources of rich content (tech tips, how-to videos, blog entries, developer labs articles, etc.)
  • No need for product to "phone home" for help updates
  • Source code available so customers can deploy on own network
  • Extremely easy for staff to update
  • Freedom from RoboHelp compatibility issues
  • Free to near-free

Disadvantages of Wiki for Product Help

  • Difficult to compile for a printed manual
  • Difficult to implement context-sensitive help
  • Conversion of existing data from RoboHelp into new format takes time
  • Traditional version control approaches must be rethought

The idea of converting a large existing documentation base from RoboHelp to wiki format can be daunting.  In the end we found that it would be easier to manually convert from RoboHelp to wiki than to convert from our older RoboHelp version to newer versions.  The manual conversion also dovetailed nicely with a comprehensive review and update of the documentation.  There are also some conversion tools out there such as the RoboHelp2Wiki tool, which may be useful in the right situations.


We went with Screwturn Wiki over the other available variants for the following reasons:

  • ASP.NET
  • File-based
  • Easy Xcopy deployment, with no need to configure outside dependencies

Summary

In the end, the ease of use and extensive flexibility of the wiki format made this an easy decision.  Our priority was to update our help on a real-time basis with a minimum of frustration for our internal staff, and those goals were best achieved by converting our help from RoboHelp to a wiki. 


Posted by: Mike Richards
Posted on: 3/25/2008 at 6:36 AM
Categories: Support
Actions: E-mail | Post Information: Permalink | Comments (1) | Post RSSRSS comment feed
Share

IssueNet 4.7 Released: Microsoft Exchange Integration Enables 'Update via Email'

Email Integration

IssueNet 4.7 has been released and is now available for immediate download. [Press Release]

The latest IssueNet release is headlined by integration to Exchange Server, which allows issues and tickets to be created or updated via email messages. The message syntax is simple enough to be implemented in a simple link or command typed into the email subject, which allows Blackberry® and other mobile device users to submit, close, and approve issues on the go.

The release also includes several other bug fixes and product enhancements which are detailed in the 4.7 Release Notes, and is available for download from support.elsitech.com for all customers with current support agreements.  Questions regarding the release or current support status should be directed to support@elsitech.com or the support line at 866.866.0034.


Posted by: Mike Richards
Posted on: 2/7/2008 at 8:04 AM
Categories: Development
Actions: E-mail | Post Information: Permalink | Comments (0) | Post RSSRSS comment feed
Share

ASP.NET Dynamic Gradient Handler

Jake Morgan has submitted a great article to Codeproject.com on the creation and use of an ASP.NET Dynamic Gradient Handler. We use this on our own site to dynamically create and adjust the background.

From the article:

Gradients are an essential tool for any serious graphic designer. Disciplined use of gradients can provide a simple professional touch to virtually any graphical layout. However, HTML and CSS provide no intrinsic support for gradients. Generally a tool such as Photoshop is used to save a static image file that is then tiled as a background. While this approach is effective, it can be tedious and inflexible because it requires an additional tool to manage the images. The GradientHandler can eliminate needless steps when dealing with simple linear gradients. Gradients are defined with URL parameters leading to a much more manageable code base.

Visit codeproject.com for the full article with sample code. A demonstration page for the gradient handler concept is active on elsitech.com.


Posted by: Mike Richards
Posted on: 1/2/2008 at 4:42 AM
Categories: Development
Actions: E-mail | Post Information: Permalink | Comments (0) | Post RSSRSS comment feed
Share