Monday, August 31, 2009

Preliminary v4.0.6 results on ORMBattle.NET test suite

Today we're updating ORMBattle.NET scorecard. And although DataObjects.Net won't appear there, we tested latest DataObjects.Net nightly build (upcoming v4.0.6) on it. So you can compare its results with ADO.NET Entity Framework and NHibernate.

As you see, DO has not degraded at all after getting new batching pipeline (earlier I described it here) - a good sign ;) On the other hand, these tests can't show the benefits of this pipeline. You'll feel its presence only if you're running both query and CUD operations in a single transaction, but ORMBattle.NET tests currently test each operation individually. So let's wait for real-life tests.

P.S. Few days ago we published information about DataObjects.Net code coverage. If you don't track new entries in DataObjects.Net blog, I'm re-posting the link here.

Saturday, August 15, 2009

We've launched ORMBattle.NET

Check it out:

ORMBattle.NET is devoted to direct ORM comparison. We compare quality of essential features of well-known ORM products for .NET framework, so this web site might help you to:

  • Compare the performance of your own solution (based on a particular ORM listed here) with peak its performance that can be reached on this ORM, and thus, likely, to improve it.
  • Choose the ORM for your next project taking its performance and LINQ implementation quality into account.
The story behind ORMBattle.NET is published here.

If you read its unofficial launch announcement, you must know we have updated it after that moment:
  • We run tests on 3 item sequences with different length now: there are 1K, 5K and 30K items. Result for 1K sequence is published on the first page, everything else is in downloads section.
  • There is online code browser created by Alexander Ilyin on his LiveUI framework. So shortly it will be possible to study DataObjects.Net samples source code without downloading & installing DataObjeects.Net as well.
  • Finally, there is a blog with RSS/Atom subscription. Since we're going to update our tests & results approximately once a month, think about subscribing there :)
Have a nice weekend!

P.S. Don't forget to digg this.

DataObjects.Net v4.0.5 is out

After almost 2 months of hard work we're releasing v4.0.5.

What's new:

1. Excellent performance. We've optimized it really well, although you can expect even more - there are still many TODOs related to performance our issue tracker (this does not mean there is something wrong - we simply fix all the good ideas there).

2. Stability. This version passes all our tests in all configurations on Microsoft SQL Server 2005/2008, and just one test fails on PostgreSQL (you'll never need LINQ query feature it tests with 99.9% probability). Later we'll share video showing this ;)

3. Better LINQ support. Likely, better than in any other ORM product. ORMBattle.NET proves this.

4. Full ASP.NET support. Use SessionManager and new Web Application project template to build your DataObjects.Net-based web application. So now you can use it in web applications without worrying if there are any issues related to this scenario.

5. Domain modules. As you know, one of key concepts supported by DataObjects.Net is modular persistence & BLL layers architecture: you combine the whole database application from assemblies with persistent types by the same way as combining .NET application from assemblies. And we've made one more step further here: now such assemblies may contain IModule objects participating in Domain build process. They can add custom persistent properties to all the persistent types, participate in lifetime of any Session and so on.

See IModule and this issue to get some imagination of this feature.

6. API improvements. There are many changes related to usability of API we provide. E.g. Key.Resolve() is replaced to Query(of T).SingleOrDefault(...) (Single exists as well), domain.OpenSession(...) is replaced to Session.Open(domain, ...) and so on.

7. Lots of minor updates. Here are just some of them:
- Automatic batching of persist sequences (performance)
- Deferrable constraints support (performance, currently works only on PostgreSQL)
- SessionOptions.AutoShortenTransactions option
- Refactored Xtensive.Sql (now there are just few assemblies instead of ~ 8)
- Optimization of many core structures, such as Key and EntityState
and so on.

8. Alpha version of Oracle provider. Don't use it, currently it passes only 70% of tests :) But actually it is almost ready: we know there are may be just 5-10 issues to resolve to make it fully working. 70% tests mean schema upgrade, persistence & most part of LINQ queries (there are ~ 700 tests related to LINQ) are already working with it. But anyway, don't use it ;) It's mentioned just to show how we're close to deliver it.

9. Lots of bugfixes. Obviously.

If you need details, all the issues related to v4.0.5 can be found in this grid.

You can download v4.0.5 here.