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

Wednesday, March 14, 2012

DataObjects.Net 4.5 Release Candidate

New features and improvements

  • Provider for MySQL 5.0 and higher (contribution of Malisa Ncube)
    Connection example:
    <domain provider="mysql"
      connectionString="standard mysql connection string"
      .../>
  • Provider for Firebird 2.5 and higher (contribution of Csaba Beer)
    Connection example:
    <domain provider="firebird"
      connectionString="standard firebird connection string"
      .../>
    
  • Provider for JustOneDB (beta)
    Connection example:
    <domain
      connectionUrl="postgresql://username:password@server:port/databasename"
      .../>
    
  • LINQPad driver (contribution of Alexander Ovchinnikov)
  • DataObjects.Net Extensions (Security layer, Bulk operations, Reprocessible tasks and more)
  • PostgreSQL 9.1 support
  • SQL Server 2012 early support
  • Ultra-fast topological sorter
  • Decreased memory consumption
  • DomainConfiguration.ForcedServerVersion property is introduced
  • Lot's of minor fixes and improvements

LINQPad driver

The driver is extracted to a separate project and is published on CodePlex website. You can find there the latest sources and binaries.
The project is maintained by Xtensive engineers and by volunteers from DataObjects.Net community.

Extensions

Xtensive Practices were merged with DataObjects.Net Extensions so now it is a set of packages that will be known as DataObjects.Net Extensions. For now there are 5 of them:
Each of them is a separate project and 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. You may also want to check the documentation before start using them.
The project is also maintained by Xtensive engineers and by volunteers from DataObjects.Net community.

Bye, bye, In-Memory DB

The component is removed due to several reasons: it doesn't follow SQL semantic, it doesn't support transactions, it can't be stored on disk and then loaded, it has severe limitations and thus makes the architecture of the whole solution too complex in comparison with strictly SQL-targeted ORMs.
So after the several years of attempts sitting on the two chairs (classic SQL & IMDB) we decided to throw the second one away and focus on the SQL direction.

It is recommended to migrate to SQL Server CE in scenarios where IMDB was used.

Changes in distribution package

Starting from DataObjects.Net Beta 5 we changed the layout and contents of the distribution package.
  1. The package is split into 2 main parts:
    • Lib — run-time components
    • Tools — build-time components


  2. Lib folder contains assemblies for both .NET frameworks: 3.5 and 4.0.
  3. DataObjects.Net.targets is located in the root of the package.
  4. The package includes no tests, samples, prerequisites, practices and other stuff that is not directly related to DataObjects.Net core.
  5. DataObjects.Net 4.4 had database drivers merged inside Xtensive.Orm assembly. The time showed that it hadn't been a good decision, so we are taking them back and putting in separate assemblies.


    The only driver that is still bundled with Xtensive.Orm assembly is SQL Server driver because its ADO.NET provider is contained in .NET framework. So if you are working with databases other than SQL Server, you should add a reference to the corresponding driver.

Migration path

If DataObjects.Net prior to 4.5 is installed
  • Uninstall it
  • Download and install DataObjects.Net 4.5
  • Update references in your project to Xtensive.Orm 4.5 assemblies
  • If you use a database other than SQL Server, reference the corresponding driver
  • If you used PostSharp 2.0, update reference in your project to Postsharp 2.1
  • Open your csproj file and scroll to the end.
    Find the line:
    <Import Project="$(DataObjectsDotNetPath)\Common\DataObjects.Net.targets" />
    
    Change it to the following one:
    <Import Project="$(MSBuildExtensionsPath)\DataObjects.Net\v4.5\DataObjects.Net.targets" />
    
If DataObjects.Net prior to 4.5 is not installed and is referenced by explicit absolute or relative path
  • Remove content of DataObjects.Net folder
  • Download DataObjects.Net 4.5 binaries and extract to the folder
  • Update references in your project to Xtensive.Orm 4.5 assemblies
  • If you use a database other than SQL Server, reference the corresponding driver
  • Update reference in your project to Postsharp 2.1
  • Open your csproj file and scroll to the end. Check that path to DataObjects.Net.targets file is valid.

Where to download

DataObjects.Net 4.5 can be downloaded from the official website.

4 comments:

  1. Fantastic news! Well done!

    ReplyDelete
  2. I love this

    1) The ORM has shrunk considerably smaller.
    2) This NuGet stuff is the way to go.
    3) Linqpad.

    I'm excited.

    ReplyDelete
  3. True true. Hope new version of DOEMD will join the club soon :-)

    ReplyDelete