Выпущена очередная стабильная версия Flexberry ORM 5.0.0

Изменения в ORM 5.0.0

Новое

  1. Add simply (Update/Insert style) order for write audit operation.
  2. Add interface IODataExportService.
  3. Add geometry type support.
  4. Add CheckLoadedProperty generic extension methods.
  5. Add delegate to check compatible property storage types.
  6. Add PersistUtcDates property to AuditService.
  7. Add PKHelper and FunctionBuilder utilities.

Исправлено

  1. Fix for Init Custom AuditService.
  2. Fix DataService init.
  3. Fix PostgresDataService wrong access to short names dictionary in multithreading app.
  4. Fix support multithreading in View.AddProperty method.
  5. Fix error for inherited aggregator type with same storage.
  6. Fix empty file saving in PostgresDataService.

Изменено

  1. [BREAKINGCHANGE] Upgrade Unity to 5.x version.
  2. Upgrade Npgsql to 3.x version.

Удалено

  1. [BREAKINGCHANGE] Support for .NET 3.5 and .NET 4.0 has been dropped - minimal version has been upgraded to .NET 4.5.

Изменения в ODataService 5.0.0

Новое

  1. Add exception handling in user functions.
  2. Add permissions for masters and details.
  3. Add export to excel with parameters.
  4. Add the ability to export to an excel function odata.

Исправлено

  1. Fix error when query contains same properties.

Изменено

  1. Update dependencies.
  2. Update ODataService package version to according ORM package version.

Переход на .NET 4.5

В связи с тем, что основной перечень создаваемых на платформе приложений уже давольно давно был переведён на .NET 4.5, было принято решение отказаться от использования .NET 3.5 в качестве основной версии при выпуске новых релизов. Напомним, что ранее Flexberry ORM поставлялся в виде NuGet-пакета, в котором присутствовали 3 версии: net35, net40, net45. Начиная с версии Flexberry ORM 5.0.0 в NuGet-пакете останется только net45.

В чём польза

Данное решение позволяет обновить зависимости, в частности Unity и npgsql, поскольку свежие версии этих пакетов также были лишены сборок для .NET ниже версии 4.5. Также технологам открываются возможности из .NET 4.5.

Что будет с проектами на .NET 3.5 и 4.0

Если проект не может по тем или иным причинам обновить версию .NET до 4.5, то остаётся возможность использования версии Flexberry ORM 4.1.0 включительно. В случае острой необходимости, по запросу будут выполняться работы по переносу исходного кода из текущей версии в ветки со старыми версиями и выпускаться обновления.

Про сломанную обратную совместимость и NuGet

Обновление ORM до версии 5.0 требует некоторого вмешательства в прикладной набор пакетов и, иногда, в исходный код - обратная совместимость нарушена из-за обновления пакетов Unity: потребуется перенастроить конфигурационные файлы и, возможно, using-и, поскольку у них сменились некоторые неймспейсы и названия сборок. Теперь используются следующие пакеты:

<dependency id="Unity.Abstractions" version="3.3.0" />
<dependency id="Unity.Configuration" version="5.2.2" />
<dependency id="Unity.Container" version="5.8.6" />

После обновления ORM до версии 5.* эти зависимости установятся автоматически, но обязательно нужно вручную удалить пакет (через NuGet Package Manager)

<dependency id="Unity" version="[2.1.505.2]" />

В конфигурационном файле нужно выполнить следующие изменения.
Было:

<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
<!-- ... -->
<alias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" />

Стало:

<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration" />
<!-- ... -->
<alias alias="singleton" type="Unity.Lifetime.ContainerControlledLifetimeManager, Unity.Abstractions" />

В C# коде там где использовался неймспейс:

using Microsoft.Practices.Unity;

Теперь будет:

using Unity;
Поделиться в: ВКонтакте, Twitter, Facebook.