InfoQ

News

MySpace.com uses iBATIS.NET for persistence

Posted by James Vastbinder on Nov 16, 2006 11:36 AM

Community
.NET
Topics
Stories & Case Studies ,
.NET Framework ,
Data Access
Tags
Database ,
iBATIS

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.
The iBATIS Team... by Clinton Begin Posted Nov 16, 2006 4:40 PM
  1. Back to top

    The iBATIS Team...

    Nov 16, 2006 4:40 PM by Clinton Begin

    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.

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.