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

Tuesday, August 21, 2012

Moving towards openness

Remember the days when every website wanted to maintain its own database of users and related data? To download some restricted content you have to register there, provide a password, successfully forget it after a couple of minutes and use "Restore password" feature every time you visit the website later.

The same kind of website was our corporate website. Moreover, our support website was configured to work with users from only. Until...

Until we rejected the model above and switched to OpenID authentication scheme and made all versions of DataObjects.Net available for download without registration. The same change was applied to — now anyone who has OpenID may log in and post an issue/feedback.

Having that done, we closing user registration area on as now it doesn't have any sense, however, all user accounts will be preserved and users may sign in in their profile as usual.

Note for owners of DataObjects.Net licenses: we launched new customer area, don't miss it. All your license-related data is migrated from to website.

Saturday, August 11, 2012

9-th anniversary, new prices, community edition and much more

Hello everybody!

Today we are celebrating the fact that 9 years ago the first version of the award-winning, revolutionary ORM named DataObjects.Net was released. Due to this we are launching our new edition & pricing policy, new customer area and we are hoping that you'll like it.

DataObjects.Net 4.5.4 final

The main change in this version in addition to all listed in RC 1 & RC 2 is Community edition support. Download it from official website or from NuGet repository.

Community edition

Many users requested Community Edition of DataObjects.Net with full set of features and with possible limitation of number of persistent types. Well, here it is, the Community edition is rolled out today. It has the following characteristics:
  • The edition is absolutely free.
  • Anyone can obtain it from our website.
  • It contains 2 hardware licenses (means it can be installed onto 2 workstations at once).
  • Number of persistent types is limited to 20.
  • The license is issued for 1 year as regular licenses.
Obtain Community edition.

Professional edition

Professional edition is available for $150 and includes 2 hardware licenses. Comparing to the previous pricing scheme (500 euro), the price cutting is more than 65%. Moreover, 3 items are available for $120 each and 5 items - just for $100.

Get Professional edition.

Ultimate edition

Ultimate edition also gets its new shiny price, from now it is available only for $1500 instead of 2500 euros. The edition provides the unlimited number of hardware licenses. Ultimate edition contains access to the source code no more.

Get Ultimate edition.

Access to source code

We extracted 'Access to source code' feature to a separate package to make it available to all our customers, not only for Ultimate edition owners as it was earlier. So anyone, even an owner of Community edition has a chance to dive deep in DataObjects.Net white and black magic. The price for the package is set to $500. The source code is available in download area of our website.

Get access to source code.

New customer area

We are inviting you to the new customer area that we have built for you for better and easier license management. No more registration, we migrated to OpenID authentication scheme. We added license sharing feature, so your developers won't bother you with anything concerning licenses and hardware locks, you may share the license with all of them.

The area can be accesses by clicking on 'My Account' link in the main menu:

Soon you'll receive our invitation e-mail. We need you to log in the area to get your licenses associated with your account. Don't forget to periodically check your mailboxes!

Join the celebration! Thank you!


Monday, August 06, 2012

DataObjects.Net Extensions 4.5.3

DataObjects.Net Extensions are updated to the latest version.

What are these so-called extensions?
They are small projects that extend standard functionality of DataObjects.Net core. Version 4.5.3 contains of the following extensions:
Each of them has a corresponding nuget package so they can be installed separately or in any combination. Using NuGet is a recommended way of installing the extensions.

DataObjects.Net Extensions are published on CodePlex with source code opened. You may also want to check the documentation before start using them. The extensions are maintained by Xtensive engineers and by volunteers from DataObjects.Net community.


  • [Security] Fix threading issues with hashing services
  • [Localization] LocalizationModule is added. It automatically calls TypeLocalizationMap.Initialize(Domain) during Domain build.
  • [BulkOperations] Support for single insert operation is added
  • [BulkOperations] Fix for drivers that don't support UpdateFrom and DeleteFrom constructs



There are several new extensions that are now being developed and tested:
  • Xtensive.Orm.Sync - Microsoft Sync framework support (expected in 4.6 version)
  • Xtensive.Orm.Tracking - a tracking monitor that tracks changes in entities and notify you about them. Good for auditing purposes and similar tasks. (expected in 4.6 version)
  • Xtensive.Orm.Security.Web - ASP.NET Membership provider & Role provider (expected in 4.5.4 version, contribution of Carl Healy)
  • Here could be your extension - Contribute! Obtain DataObjects.Net license for free!

Thank you!

Friday, August 03, 2012

DataObjects.Net 4.5.4 RC 2

Today we are publishing the next release candidate for the upcoming version of DataObjects.Net.


  • [main] Exceptions on IoC container finalization (usually they appear because dependent objects are already finalized) are now suppressed
  • [main] Fixed NullReferenceException in EnsureIsFetched method in SessionOptions.ReadRemovedObjects mode
  • [main] Entity.IsMaterializing property wasn't handled properly
  • [main] Transaction opening is fixed for SessionOptions.ClientProfile