GWF beta released! (w/full source) - a unique approach to web application development

by Jan Blomquist 28. December 2010 17:25

GWF was created for the following reasons

  1. To simplify web application development with built-in support for many of the tasks we do over and over again
  2. To serve as a more complete example of what can be accomplished with Gaia Ajax - the best ajax library for ASP.NET!
  3. To illustrate the powerful DRIMR technology with a concrete example of it's benefits

GWF had the following design goals in mind

  1. Document based storage approach (JSON)
  2. Drag&Drop page composition with instant loading
  3. Use Convention over Configuration
  4. Dynamic Discovery of resources and definitions
  5. Simple and convenient API for developers
  6. Easy to extend
  7. Also licensed under GPL

Click here to download (VS.NET 2010 SLN)

The GWF package also includes

  1. Gaia Server Control Wrapper for TinyMCE rich-text-editor
  2. Gaia EntityView controls w/validation support

GWF is not

  1. A fully fledged CMS (yet!) or AMS for that matter
  2. Fully documented
  3. Fully tested

Use GWF if you want

  1. To get some useful bits of code for your web application
  2. To be inspired by the no-javascript approach of Gaia Ajax
  3. A convenient ajax based page navigation with full browser history support
  4. A modular approach to your web applications
  5. A code-less, create more strategy
  6. To create a nice KPI dashboard solution with content reuse via DRIMR
  7. To create an AJAX based wizard
  8. A dynamic UserControl loading framework
  9. More of your dreams to come true :-)

Click here to download (VS.NET 2010 SLN)

Now let's discuss some of the goodies in GWF:

GWF uses a document-based approach to define Pages. As you can see there's a one-to-one mapping between the navigation in GWF and the document folder structure on the disk. Also each page in GWF is called a VirtualPage because modules can be dynamically added, removed and reused between page navigations. Yes -You read me right! The powerful DRIMR technology in Gaia Ajax is able to dynamically insert and remove modules and also reuse data based on the coordinate system.

VirtualPage composition is fully WYSIWYG, but you can also just edit/xcopy the files directly if you need to modify each page (VirtualPage). An example of such a document can be seen in the screenshot below.


If you have missed a RichTextEditor in Gaia Ajax you can use the editor provided in GWF which is a wrapper around TinyMCE

Creating "Modules" in GWF is as simple as just creating a UserControl (no inheritance requirements imposed on you). In the screenshot below you can see the YouTube module created in ~30 lines of code. When VideoUrl is tagged as ModuleSetting, an editor in Edit mode is automatically provided for you. Also this value is persisted automatically in the document based file automatically.


Another nice treat is that "new" modules are automatically discovered and will appear in the AvailableModules list. That means zero configuration!

By now you probably wonder how things are composed. Let's walk through the rules / functional stuff

  1. You can create a hierarchy of VirtualPages and use ajax page based navigation between them
  2. Each VirtualPage requires a Layout which is basically the container controls where Modules can be dropped and configured
  3. Each Module can have a Container which is the chrome around it. The Container can be turned off, but will always be visible in edit mode to enable the editors
  4. Each Module can opt-in for loading and saving of ModuleSettings.
  5. Each Module can opt-in for additional EditorCommands. (see RichTextEditor / ISupportCommands)
  6. Use GwfManager.Instance.VirtualRedirect(string) to perform virtual page redirects (tip: check Firebug response :-) )
  7. Use the building blocks to define your own desired behavior. The Website/default.aspx is just an example to demonstrate some of the capabilities in GWF

Click here to want a small YouTube video demonstrating GWF

GWF has been used successfully in a few customer projects. Feel free to take it for a spin yourself! Contributions/Forks are welcome.




12/28/2010 6:44:03 PM #

GWF beta released! (w/full source) - a unique approach to web appz

You've been kicked (a good thing) - Trackback from

12/28/2010 6:45:13 PM # - Your post is on

This post has been featured on The place to find latest articles on programming. Click on the url to reach your post's page.

Comments are closed