Perfect, fast, simple and powerfull. With Rose::DB::Object::Loader you can use existing models without coding! Just set connection options for your existing DB - and that is all - You can use your Database as a Model. For more information take a look at "The loader" section in the Tutorial.
I have perfomed some tests Rose::DB::Object vs SQL Abstract(with DBIx::Simple). In real world tests the perfomance is identical to both or Rose is faster!
Using Rose-DB-Object has cut down development time significantly. As with all good software RDBO has very good
I order them in order of discovery and not importance, I first came across the brilliant RDBO tutorial, got motivated to use and was pleasantly surprised at the well designed API, after implementing a small portion of the data model in RDBO when I did some load testing on the application I was blown away by its performance. Obviously I went away and converted the entire model in RDBO and have never looked back.
I would also mention that I was using SQL::Abstract and was very satisfied with the solution until I discovered RDBO and the advantages of modeling data as extensible objects.
I came across this fine module while searching better ORM. Before using RDBO I used a very simple own one. I took a look at Class::DBI and found it too hard and too much typing to configure. Plain DBI was no longer an option over complexity.
Then RDBO came in and it was so clear how to config and fun to read the docs. Using RDBO I'm often blazed by the feature-richness, so things like Caching, lazy-loading and those things just work kind of out-of-the-box.
The only thing I'm sometimes worrying about are sometimes useless error messages that pop up upon misconfiguraion: So I know there is something wrong, but it's definitely not the "Can't call method "isa" on an undefined value at /usr/local/share/perl/5.8.8/Rose/DB/Object/Metadata.pm line 2106" line that telles me where.
Before I knew about the sundry Object-Relational Mapping (ORM) packages on CPAN, I wrote my own simple module that does a very small subset of what RDBO is capable of.
After some searching, I discovered RDBO and DBIx::Class, and I preferred RDBO because its interface was the most intuitive to me (or really, it most closely matched the one I wrote). After using it for a while, I have to say that RDBO exceeded my expectations. It saved me loads of development time because the documentation was crystal-clear (especially the tutorial), and the interface was clean and intuitive.
I agree with the previous reviewer that RDBO doesn't have the mindshare of some of the other ORMs, but I hope that changes in the future. I would feel more comfortable with more users to test the code, and I would like to see it integrated into some other web-app suites (CGI::Application, etc).
I'm looking forward to more Rose::* packages in the future.
Wow! What a fantastic bit of software this is. A real gem. It seems that Class::DBI and the newer DBIx::Class have the mindshare, but I would recommend you check this one out if you want to escape hand coding your SQL.
Firstly, and the reason I tried it, it has the best performance outside of "raw" DBI. Despite the mantra these days to just throw more hardware at these issues, I am trying to give up as little performance as possible to get the productivity gains of this type of abstraction.
Speaking of which, I find this to be the most straight-forward to configure and most intuitive to use. The caching and autoloading work well and allround, it comes across as a very well-designed and implemented piece of software that deserves much respect.
On the downside, there are fewer modules that interface with Rose::DB::Objects (session management etc.) due to its newness.
Kudos to you John. I'm looking forward to the release of the associated framework.