|
![]() |
#1 |
Banned
|
Цитата:
как часть паттерна расширения The extension framework. Для отсутствия связанности между приложением и его расширениями. Используется class attribute framework как часть этого паттерна. Ищется класс помеченный данным аттрибутом. Да, телодвижений для программиста не меньше. Но наличие подобного подхода - оправданно. P.S. По сути мы отвязываемся от имени класса. Наш атрибут как внешнее имя. Это очень хорошо на самом деле для расширения. Последний раз редактировалось ax_mct; 29.05.2017 в 18:01. |
|
|
За это сообщение автора поблагодарили: ta_and (3). |
![]() |
#2 |
Участник
|
Спасибо.
Все понятно. Это расширение сделано исключительно для того, чтобы не трогать базовый класс при добавлении наследника. Т.е. вся эта архитектура, дополнительные классы, дополнительная нагрузка на сервер, кэши и прочая байда исключительно для того, чтобы МС мог безопасно закрыть свои базовые классы. Цель понятна. Выводы: 1. Для стороннего разработчика (не МС) эта технология создает исключительно дополнительные (и не спорьте) трудозатраты. 2. При разработке своих классов лучше продолжать использовать старый добрый свич для простоты поддержки, понятности и прозрачности. ПС. Сейчас у меня стоит задача разработки сложной структуры классов и мне хотелось услышать мнение сообщества по поводу необходимости использования данной технологии. Я услышал. Еще раз спасибо. ![]() |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#3 |
Banned
|
Цитата:
Если это AX7 или существуют планы портировать на AX7, то старый добрый свитч - не хорошо. Если это AX2009, AX2012 - то пожалуй да, усложнять без необходимости нет смысла. Development tutorial: SysExtension framework in factory methods where the constructor requires one or more arguments http://kashperuk.blogspot.co.uk/2017...extension.html At the Dynamics 365 for Operations Technical Conference earlier this week, Microsoft announced its plans around overlayering going forward. The direct impact of this change is that we should stop using certain patterns when writing new X++ code. Pattern to avoid One of these patterns is the implementation of factory methods through a switch block, where depending on an enumeration value (another typical example is table ID) the corresponding sub-class is returned. |
|
![]() |
#4 |
Участник
|
Цитата:
Сообщение от ax_mct
![]() Development tutorial: SysExtension framework in factory methods where the constructor requires one or more arguments
http://kashperuk.blogspot.co.uk/2017...extension.html |
|
Теги |
sysextension framework, sysoperation framework, как правильно, полезное |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|