[Catalyst] Ask Catalyst: What are your prefered DB and HTML abstraction layers ?

Matt S Trout dbix-class at trout.me.uk
Sat Jul 7 15:32:34 GMT 2007


On Thu, Jul 05, 2007 at 09:58:29AM +0200, Alexandre Jousset wrote:
> 	Hello list,
> 
> 	I started a project using Catalyst with DBIx::Class and FormBuilder. 
> This is far from a CRUD application. In fact it is a Slashdot-like 
> application.
> 
> 	I've heard about Rose and I'm planning to move from FormBuilder to 
> Rose::HTML::Object that seems better designed.
> 
> 	My real question is: should I also change the DB abstraction layer 
> 	from DBIx::Class to RDBO ? Would this be more consistent? Does it worth it? 
> Or can I live without it? I'm thinking in the long term.

Since nobody else seems to have replied, I'll take a stab.

I know quite a few people who've used RHTMLO with DBIC to great success, so
a switch to RDBO definitely isn't -necessary-.

On the other hand, I think the Catalyst::Controller::Rose stuff gives you
out of the box integration so your question really is twofold -

(1) Will it be more work to get your RHTMLO<->DBIC integration going than
it would be to port to RDBO and get RHTMLO<->RDBO integration going?

(2) Do you need any of the features DBIC provides that RDBO doesn't? (resultset
chaining and support for GROUP BY/HAVING being the obvious candidates)

Equally, (2) can be flipped, asking whether the features RDBO provides that
DBIC doesn't (which I'm obviously not as clear on the list of :) are worth
the effort of porting.

In the long term I personally don't see RHTMLO remaining the state of the
art in terms of form generation, but equally I do see it being the closest
to "good enough" of the currently available options so perhaps you won't need
to switch even when a better solution becomes available.

RDBO is a very well-engineered project, and while it has a more measured
development pace than DBIx::Class that does result in it being a bit more
polished in places and the documentation is excellent.

So ... I don't really have a straight answer for you. I know of quite a few
devs who've gone both routes and been happy with it, and I can't really say
whether one route is "better" or not - I think what I'd do is create a quick
one-table test app using Catalyst::Controller::Rose, and port one of your
current DBIC+FB controllers to DBIC+RHTMLO, and then decide at that point
which approach you like better.

-- 
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director    Want a managed development or deployment platform?
 Shadowcat Systems Ltd.  Contact mst (at) shadowcatsystems.co.uk for a quote
http://chainsawblues.vox.com/             http://www.shadowcatsystems.co.uk/ 



More information about the Catalyst mailing list