AxKit/App/TABOO version 0.02
============================

INTRODUCTION

AxKit::App::TABOO is a object oriented approach to creating a
publishing system on the top of AxKit, the XML Application Server. 
The two O's thus stands for Object Oriented, AB for AxKit-Based. 
I don't know what the T stands for yet, suggestions are welcome! 

It is a fundamental design choice with TABOO that all data is to be
abstracted to objects. I noticed while looking at other people's code,
that though it was a lot of interesting code, it would be rather hard
to integrate all the interesting parts into a coherent
whole. Furthermore, everybody has their own way of storing data, and
scattered files or different databases didn't seem right to me. 

With TABOO, everything that interacts with AxKit just interacts with
the Data objects. That means, if you don't want to store things in the
PostgreSQL database my Data objects use, you could always subclass it,
rewrite the classes or whatever. You would mostly just have to rewrite
the load method. It is also the Data object's job to create XML of its
own data.

The intention is to write Data objects for every kind of thing you
might want to do. From the start, there will be Slashdot-type stories
of varying length, with comments. These are ever-changing in the sense
that people can come in an add comments at any time. The other thing
we start out with is more static and longer articles. 

It is the intention, however, that TABOO should be a framework where
one can add a Wiki, a webshop, etc. The AxKit::App::TABOO::User class
will then be reused and probably subclassed with e.g. a Customer
class, but the datasource will be the same. 

TABOO makes extensive use of Providers. That is mostly because I like
the abstraction and direct control of URIs that Providers provide. It
makes it easy to create a framework where URIs are sensible and should
be easy to maintain for foreseeable future. Also, there is no markup
in the code, that's also rather important to make it maintainable. 

For the stuff that goes into the database, OTOH, XSP is used, and
several taglibs are used. 

Uhm, well, that's not really true yet. This is a early release, but
nearing alpha in that it does some useful things. It consists mainly
of a News provider that constructs objects, instruct them to load
their data based on the URI, get them to write their own XML, and pass
this raw to the browser. There are also several XSP taglibs, and I
have written some XSP pages and XSL Transformations that's not
included in the system, but that can be found at the project home
page: http://www.kjetil.kjernsmo.net/software/TABOO/

But then, the mantra is "release early", isn't it? And besides, Real
Soon Now this should have evolved into something I can put on a
website and have random people come by and use, a beta of some
sort... I'll be thrilled if other hackers are willing to poke at TABOO
allready at this point!

INSTALLATION

To install this module use CPAN or CPANPLUS tools or type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

This module requires these other modules and libraries:
- DBI
- DBD::Pg. Version 1.31 has known problems due to that 
  SQL3 Arrays are being used.
- Time::Piece
- Class::Data::Inheritable
- Apache::AxKit::Plugin::BasicSession
- Data::Dumper lists out debugging information, but can be removed. 
- and to use the XSP pages, you should have AxKit::XSP::QueryParam,
AxKit::XSP::BasicAuth and AxKit::XSP::BasicSession.

COPYRIGHT AND LICENCE

Copyright (c) 2003-2004 Kjetil Kjernsmo. Some rights reserved. This
program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

