Popular social site MySpace.com, which is the number 5 most trafficked site on the internet according to alexa.com is running a .NET backend and uses iBatis.NET for persistence. iBATIS is an open source data mapper framework that couples objects with hand-written stored procedures or SQL statements via XML descriptors. It is simpler to use than most ORM and is commonly used when projects wish to control the SQL used instead of having it generated by an ORM framework. While iBATIS is heavily used in the Java world, it is not as well known in the .NET community. InfoQ had a chance to speak with Clinton Begin, the founder of iBATIS.
This past spring 2006 MySpace architect Chris Bissell mentioned their iBATIS use on the iBATIS forums:
MySpace.com is now running IBatis for a good portion of its data access abstraction layer. We like the flexibility. I came in from a 'heavier' ORM background but very much appreciated the configurability IBatis offers against a changing data storage medium, because we have a whole range of heavily denormalized databases.
When asked about why developers would choose iBATIS vs. ADO.NET or another persistence layer solution, Clinton replied:
iBATIS is a hybrid persistence solution that targets enterprise database systems. It combines the best features of object/relational mappers, while maintaining the ultimate flexibility of hand coded SQL.
As for properties using iBATIS, developers need only look to the iBATIS wiki and Clinton had this to say:
Many proud users of iBATIS have volunteered their identities and commented on their experience on our mailing list and on our wiki. Some of the more well known ones include 1Up.com, the popular video game community site, and MySpace.com uses the .NET version of the framework.
Looking to what is in store for future releases of iBATIS, Clinton offered:
In my opinion, iBATIS is pretty much feature complete. To build in any more features would move the framework outside of its intended scope. However, there is a lot we can do to improve the framework. With each release we've made the framework smaller and simpler, without reducing features or performance. I'd like to continue that with the next major version. The area that needs to improve the most is configuration. iBATIS is currently dependent upon XML for configuration. I'd like to add alternative methods of configuration, including convention based, annotation [attributes for us .NETters] based and an API approach for programmatic configuration. Of course, we'll still support XML for those who know and prefer that approach.
Community comments
The iBATIS Team...
by Clinton Begin,
The iBATIS Team...
by Clinton Begin,
Your message is awaiting moderation. Thank you for participating in the discussion.
None of this would have been possible without the effort of the iBATIS team. We have 12 team members supporting 3 platforms. The .NET port was largely the work of Gilles Bayon, and has since had significant contributions by Ron Grabowski, Ted Husted and Roberto Rabe. The Java version is maintained by a very talented group including Jeff Butler, Sven Boden, Larry Meadors, Brandon Goodin, Nathan Maves and Brice Ruth. More recently Jon Tirsen joined us with a Ruby version that enables Rails to work with "red pill" databases.
We have an extraordinary team of people and one of the healthiest OSS communities online.