Список изменений в системе версии 4.0.0 RC2
Возможна только установка на чистую базу, обновление с предыдущих версий и использование существующих конфигураций временно невозможно.
Критичные изменения
Техническая оптимизация
1. Прекращение поддержки провайдеров внешней аутентификации. Вместо них следует использовать модули внешней аутентификации. Подробности перехода описаны в этой статье. В связи с этим удалены интерфейсы EleWise.ELMA.Security.IExternalMembershipService и EleWise.ELMA.Security.IDomainExternalMembershipService.
2. Изменен интерфейс методов импорта/экспорта. В методах ConfigImport.RunImport(), ConfigImport.RunTest(), ConfigExport.RunExport() тип параметра вызова изменен с object(object[]) на RunImportParameters, RunTestParameters и RunExportParameters соответственно.
3. Реализации компонентов перенесена в глобальные модули и удалена из скриптов объектов. При запуске сервера ELMA4 проверяется данное условие, и сервер запустится в ограниченной функциональности, чтобы можно было перенести классы.
4. Изменены классы сущностей. Сущности наследуются от интерфейса EleWise.ELMA.Model.Entities.IInheritable независимо от наличия наследников или настройки возможности создания наследников. Проверка типа сущности на реализацию указанного интерфейса больше не может быть признаком поддержки наследования и наличия поля TypeUid в базе данных.
Удалены сущности:
- ShellDescriptorEntity
- ShellFeatureStateEntity
- ShellFetureEntity
- ShellParameterEntity
- ShellStateEntity
Удалены разделы в PublicApi:
- PublicAPI.Objects.Web со всеми подразделами
5. Изменено значение по умолчанию для коллекций простых типов. Для наследников IEntity, IFilter, IDataClass свойства – коллекции простых типов инициализируются пустым списком (раньше значением по умолчанию был null). Это может отразиться на логике обработки таких свойств: кроме проверки на null может потребоваться проверка наличия элементов в коллекции. Простыми типами считаются типы из списка, кроме object, а так же типы значения (перечисления и структуры).
6. Изменена логика построения запроса для некоторых свойств фильтров. В связи с изменением, описанным в п. 22, устарела логика обработки некоторых свойств в фильтрах. Ранее значение null для свойства не влияло на запрос, а пустой список добавлял условие "... IN (-1)", теперь пустой список и null обрабатываются одинаково и не влияют на запрос. Список фильтров и свойств, которые это затронуло:
- Ids
- NotIds
- ProjectIds
- Ids
- NotIds
- NotIds
- NotIds
- NotIds
- NotIds
7. Изменения в ComponentManager. Метод GetComponents устарел и больше не используется. Попытка вызова метода приведет к возникновению исключения NotImplementedException.
Изменения интерфейсов
Изменен внешний вид чек-боксов.
Остальное
Изменения в справке. Упаковка пакетов справки командой пакетного менеджера packSln теперь не применяется. Не следует создавать новые nuspec-манифесты для справки в проектах решения. Упаковка справки полностью передана в скрипты сборки MSBuild (с упаковкой через nuget.exe).