Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Why did DBIC overtake CDBI?

by Mutant (Priest)
on Sep 12, 2006 at 17:03 UTC ( [id://572575]=note: print w/replies, xml ) Need Help??


in reply to Why did DBIC overtake CDBI?

I haven't used DBIC myself, but I've used CDBI for several projects, and had a look at the docs for DBIC (plus some of my colleagues have used it).

AFAICT, DBIC seems to be superiour. Besides the fact that it's actively maintained by some of the key people in the Perl community, it offers several features that were difficult to achieve using CDBI.

One of the most important of those is the ability to select across criteria from multiple tables (i.e. joining on other tables, and returning objects based on a certain criteria across all those tables). In CDBI you are limited to the table your object maps to, unless you roll your own.

DBIC also has full support for many to many relationships, which seems fairly fundamental to me. In fact, I think the limitations in CDBI are due not to the fact that the no one's gotten around to implementing them, but because its design makes implementing these things extremely difficult. (I have to admit, having had only a cursory look at the CDBI code, I'm basically speculating here).

Although you didn't ask about it, one of the main limitations in HTML::Template in working with ORM's is that you can't pass it an object directly (I think HTML::Template::Plugin::Dot gets around this, but I haven't tried it).

Of course, Catalyst doesn't prevent you in using any of these systems. If it did, I'm sure it wouldn't be as successful as it has been.

Replies are listed 'Best First'.
Re^2: Why did DBIC overtake CDBI?
by tinita (Parson) on Sep 13, 2006 at 10:45 UTC
    Although you didn't ask about it, one of the main limitations in HTML::Template in working with ORM's is that you can't pass it an object directly (I think HTML::Template::Plugin::Dot gets around this, but I haven't tried it).
    HTML::Template::Compiled also supports objects. (and CGI::Application and Catalyst both have a plugin/view class for it)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://572575]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (3)
As of 2024-04-20 15:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found