Выпущены очередные стабильные версии Flexberry ORM: 5.1.0, 6.0

Опублкован NuGet-пакет Flexberry ORM 5.1.0

Это последняя версия, которая собирается только под Microsoft .NET Framework 4.5. Последующие версии будут совместимы с .NET Standard 2.0.

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

Новое в 5.1.0
  • FunctionBuilder implements BuildLike(VariableDef, string) functions.
  • DbTransactionWrapper class to wrap IDbConnection and IDbTransaction.
  • Interfaces IConverterToQueryValueString and IConvertibleToQueryValueString to control the conversion of objects to a query string.
  • Interfaces INotifyUpdateObjects, INotifyUpdateObject, INotifyUpdateProperty and INotifyUpdatePropertyByType for notify when data is updates.
  • Support of postgres table suffix and prefix modifiers.
  • Differ table modifiers from and join expressions.
  • Property AuditService.DetailedLogEnabled to disable audit log info.
  • Interface IExportStringedObjectViewService for fast export service based on ObjectStringDataView type.
Изменено в 5.1.0
  • ChangesToSqlBTMonitor now split queries by ‘;’.
  • Signatures of the method GenerateQueriesForUpdateObjects and its overloads.
  • Upgraded Npgsql version to 3.2.6.
  • Optimize left join with SQLDataService.GenerateSQL methods for some cases.
  • Moved group audit from SQLDataService to AuditService.
Исправлено в 5.1.0
  • Parsing nullable guids with PKHelper.GetKeys method.
  • Getting property storage name when resolving circular dependencies.
  • Getting Unity container by replace UnityFactory.CreateContainer to UnityFactory.GetContainer.
  • Loading details to delete on deleting aggregator object (using single transaction).
  • Appending view properties from not stored prop expression.
  • Updating empty array via SQLDataService.UpdateObjects (connections remain opened).
  • Updating array with no changes via SQLDataService.UpdateObjects (connections remain opened).
  • Incorrect altered state of masters after loading in some cases.
  • Setting LoadingState.Loaded to DataObject after loading.
  • Objects updating order if exists cycle in dependencies graph of them.
  • DbTransactionWrapper commit and rollback over expired connections.
  • Null GetHandler or SetHandler via cache dictionary.
  • Rethrowing exception while handling special scenario via UpdateObjects.
  • Fix loading __PrimaryKey property of NotStored master.
  • Fix InitDataCopy for already loaded details.
  • Removed usage of DataServiceProvider.DataService for ExternalLangDef.
  • Auditing objects with Unaltered status and Deleted not presented in database.
  • Removed memory lock by business server (possible memory leakage).
  • Removed caching business server (fix multi-threading).
  • Getting new instance of audit data service on every write audit operation.
  • Getting inherited business servers.
  • Concurrent getting business servers.
  • Ordering in PostgresDataService when used RowNumber.

Опублкован NuGet-пакет Flexberry ORM 6.0.0

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

Новое в 6.0.0
  • .NET Standard 2.0 implementation. NuGet package contains net45 and netstandard2.0 targets.
Изменено в 6.0.0
  • [BREAKINGCHANGE] MSSQLDataService, PostgresDataService, OracleDataService in it’s own NuGet packages.
  • [BREAKINGCHANGE] ToolXML.DataObject2XMLDocument uses ToolBinarySerializer for serialize DynamicProperties.
  • [BREAKINGCHANGE] CurrentUserService support only windows users.
  • [BREAKINGCHANGE] DataServiceProvider.IsWebApp now always return false.
  • [BREAKINGCHANGE] ChangesToSqlBTMonitor class moved to ICSSoft.STORMNET.Business assembly.
  • [BREAKINGCHANGE] DRDataService class moved to ICSSoft.STORMNET.Business.MSSQLDataService assembly.
  • [BREAKINGCHANGE] Assembly ExternalLangDef renamed to ICSSoft.STORMNET.Business.ExternalLangDef.
  • [BREAKINGCHANGE] Assembly CurrentUserService renamed to NewPlatform.Flexberry.ORM.CurrentUserService.
  • [BREAKINGCHANGE] Assembly UnityFactory renamed to NewPlatform.Flexberry.ORM.UnityFactory.
Удалено в 6.0.0
  • Information.GetPropertyDataFormat method.
  • [BREAKINGCHANGE] CurrentWebHttpUser class.
  • ServiceContract for IAudit, IAuditWcfService interfaces.
  • RemoteAuditController class.
  • CurrentUserFromLockService class.
  • ICSSoft.STORMNET.Business.ODBCDataService assembly.
Исправлено в 6.0.0
  • ControlProviderAttribute(string) constructor ignores type loading error.
  • Multiple concurrency fixes.

Инструменты генерации

Также были обновлены инструменты генерации, поэтому важно обновить Flexberry Designer до последней версии с сайта https://designer.flexberry.net.

Важно учесть при обновлении

Наиболее важными пунктами при обновлении ORM до версии 6 являются следующие:

  • Пакета NewPlatform.Flexberry.ORM теперь недостаточно для функционирования системы - для каждой конкретной СУБД теперь есть свой отдельный пакет, например, NewPlatform.Flexberry.ORM.PostgresDataService.
  • CurrentUserService больше не содержит реализацию для web, если нужно, переопределяйте на прикладном уровне.
  • Переименованы некоторые сборки, что потребует изменений в конфигурационных файлах.

В качестве примера можно использовать вот этот PR.

Исходный код

Исходный код Flexberry ORM доступен на GitHub под лицензией MIT. Изменения относительно версии 5.0.0 можно оценить по этому PR. Если есть необходимость внести исправление в код ORM, это можно сделать следующим образом:

  • Добвить issue с описанием проблемы или предложения
  • Сделать Fork репозитория
  • В этом форке выполнить доработку, добавить юнит-тест
  • Создать Pull Request в upstream-репозиторий Flexberry ORM
  • По аналогичной схеме внести доработки в документацию и сделать PR в репозиторий с документацией
Поделиться в: ВКонтакте, Twitter, Facebook.