News, examples, tips, ideas and plans.
Thoughts around ORM, .NET and SQL databases.

Monday, June 28, 2010

DataObjects.Net v4.2.3 and v4.3 RC4 are available

There are mainly bugfixes.

The only relatively important improvement we've made there is possibility to use DisconnectedState.Attach and DisconnectedState.Connect inside already open transaction. When this happens, underlying behavior is very similar to opening of nested transaction. Detach is the same as  rollback of such "nested" transaction; commit might really happen only if DisconnectedState.ApplyChanges is invoked.

As usual, all the files are in Downloads Area.

Saturday, June 12, 2010

DataObjects.Net v4.3 RC3 for .NET 3.5 is tested on our own project

We just migrated one of our internal projects from DataObjects.Net v4.2 to DataObjects.Net v4.3 RC3 for .NET 3.5. This project requires .NET 3.5 and VS2008 usage because of third-party components, so migration to DO43 for .NET 4.0 is simply impossible here.

So everything was quite smooth, but with two exceptions:
  • By some reason Project Upgrade Tool didn't process AssemblyInfo.cs file of model project - may be because the file was opened in VS.NET at the same time, so we occasionally overwritten the changes. In any case, that's easy to fix manually.
  • Few of queries got broken. We're investigating this.
The main positive effect of migration is reduced startup time (~ 15%) and noticeably faster first time query executions - this happens because v4.3 doesn't use Reflection.Emit to build Tuples, but each complex query might utilize a set of them - they decribe intermediate results before abd after each operation in query plan.

Overall, we consider the result is very good. Just counted: there are 374 files containing [HierarchyRoot] attribute in model; at least 62 files contain EntitySet fields, so there are > 400 tables in the database it uses, thus the count of different queries is simply huge.

Conclusion: if you're bound to .NET 3.5 or VS2008 usage, it's safe to migrate from v4.2 to v4.3 for .NET 3.5.

DataObjects.Net v4.3 source code

We got several requests for DataObjects.Net v4.3 source code during last week, so we decided to fully explain our current policy related to source code:
  • The source code for this version isn't available yet (it was removed even from the installer). But this is a temporary measure working until we didn't fully switch to new licensing model and protection module enforcing it.
  • When new licensing model is fully implemented, source code will be available to all the customers eligible for this. In particular, it will be available to all the owners of SMB and Enterprise licenses - most likely, we'll simply provide you with access to our source code repository.
  • If you already have SMB \ Enterprise license and need DataObjects.Net v4.3 source code (e.g. for debugging), we're ready to send it to you by request. Drop us an e-mail, or contact Alex Yakunin (me) by Skype. Currently we provide code without Xtensive.Licensing and Xtensive.Core.Weaver projects, so it won't compile, but you'll be able to use it for debugging. Again, this is a temporary measure.

DataObjects.Net v4.2.2 and v4.3 RC3 (also for .NET 3.5) are available

As usual, installers are in Downloads area. v4.2.2 installer is also available at Google Code (top secret: you can download it there without registration at x-tensive.com ;) ).

Issues resolved: 675685692691648689630687677684683682652636680679611665666672655. That's not all - few minor issues (e.g. this) were fixed without adding an issue.

Some notes about these builds:
  • v4.2.2 contains most of above fixes. Currently we still resolve the issue in stable branch, if this is possible, and then merge the fix into development (v4.3) branch. Stable branch is still stable: just 4 tests fail there on SQL Server.
  • v4.3 RC3 test pass results there are identical, so it is quite stable as well. But since we were unable to fix all the bugs we scheduled for v4.3, we release one more RC.
  • v4.3 RC3 for .NET 3.5 is compiled from v4.3 codebase (it is fully identical), but without "NET40" constant, so it is also identical from the point of provided features. Frankly speaking, we had no time to test this build. We compiled everything, run few samples, launched script building its installer and finally checked its log for errors - see this post for details. So if you'll face any issues with it, please notify us ASAP. Also note that this version is targeting VS2010 (e.g. sample projects there are for VS2010), although there should be no problems with its usage under VS2008.
Plans for the nearest week:
  • Fix few more important bugs and release v4.3.
  • Continue works on licensing module and its server-side counterpart.
  • Copy DataObjects.Net 4.X and Help Server-related topics from forum.x-tensive.com to support.x-tensive.com (don't post there it - it isn't ready yet; any content published until official launch might be deleted).
Have a nice weekend!