Previous | Next
WireHose Developers Guide

Application structure

While you can build simple WireHose applications in a single project -- and that is the approach taken in this tutorial -- to achieve maximum code reuse, you'll probably want to structure your application as a collection of frameworks. This approach allows you to build multiple applications which share common code without duplication.

Here's an example of an extremely factored approach:

User frameworks
Contain custom user classes and any objects which manage collections of channels for users.
Tag frameworks
Contain custom tag classes. For example, you may have one framework for workflow tags, and another for tags which model versioning or special access control requirements. Since WireHose provides a unified API for dealing with all types of tags, each collection of tag types can be considered a single extension to an application. These frameworks may include default user interface component definitions, which could be overridden in other frameworks or the application itself.
Channel frameworks
Contain custom channel types. For example, opinion polls, Amazon searches, legacy calendar access, etc. These frameworks may include default user interface component definitions, which could be overridden in other frameworks or the application itself.
Resource frameworks
Contain custom taggable and indexable objects. For example, bookmarks, pictures, email messages, contacts, movies, news stories, Word documents, spreadsheets -- or any other type of enterprise object. These frameworks may include default user interface component definitions, which could be overridden in other frameworks or the application itself.
Layout frameworks
Contain web components and images which make up various layouts, or skins, for a web application. For example, in addition to having "plain" or "fancy" layouts, you can also define layouts for various XML formats, or even PDF or Flash.

Previous | Next