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
Copyright ©2000-2003 Gary Teter. All rights reserved. WireHose is a trademark of Gary Teter.