AXForum  
Вернуться   AXForum > Рынок > Microsoft и системы Microsoft Dynamics
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.03.2017, 08:55   #1  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от AlexSD Посмотреть сообщение
А что нужно сделать что бы код с нулевым оверлеингом перевести на екстеншины?
Я полагаю, что ничего. Что там требуется переводить то? Все и так уже переведено.
Хм, LCS насколько мне известно экстеншены не создает(или уже создает?)

самый простой пример - поля на таблице. т.е. у вас есть новое поле "A" на CustTable лежащее в кастомизации этой таблицы, вы решаете сделать по модному..

создаете новую extension модель, далее вам надо в ней создать новый объект - extension для custTable, удалить поле из CustTable, добавить его в новый extension.
как только вы сделаете это "бонусом" получите неработоспособность тулзов в Visual Studio таких как обновить дата ентити по таблице.
далее если те кто установят ваше решение кодируют используя кастомизацию в AppSuite и захотят заюзать ваши поля, тут их тоже ждет сюрприз, так как поля собственно будут недоступны из AppSuite

или есть новый метод на классе - тут вообще переделка на экстеншены может быть невозможна если внутри него вы обращаетесь к private переменным

Последний раз редактировалось trud; 08.03.2017 в 09:59.
Старый 08.03.2017, 10:41   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от trud Посмотреть сообщение
далее если те кто установят ваше решение кодируют используя кастомизацию в AppSuite и захотят заюзать ваши поля


не по фэншую же
__________________
-ТСЯ или -ТЬСЯ ?
Старый 08.03.2017, 12:03   #3  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от trud Посмотреть сообщение

самый простой пример - поля на таблице. т.е. у вас есть новое поле "A" на CustTable лежащее в кастомизации этой таблицы, вы решаете сделать по модному..
Это не очень похоже на "нулевой оверлей", может раскроите ваше понимание этого словосочетания перед тем как мы продолжим дискусию ?

Цитата:
Сообщение от trud Посмотреть сообщение
.
далее если те кто установят ваше решение кодируют используя кастомизацию в AppSuite и захотят заюзать ваши поля, тут их тоже ждет сюрприз, так как поля собственно будут недоступны из AppSuite
Если вы уже стоите на шатком пути оверлеинга App Suite, такие мелочи вас не должны останавливать. Создается третья модель, котороя ссылаеться на экстеншен и предастваляет доступ к полям, а App Suite ссылаеться на нее. Все легко и немного извращенно

Последний раз редактировалось skuull; 08.03.2017 в 12:08.
Старый 08.03.2017, 14:50   #4  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от skuull Посмотреть сообщение
Это не очень похоже на "нулевой оверлей", может раскроите ваше понимание этого словосочетания перед тем как мы продолжим дискусию ?
:
в терминах 2012 - все ваши объекты содержатся только в вашем слое(не являются перекрытиями в sys). например новые поля в sys таблицах или методы классов. в рамках 2012 это позволяло обновляться на новые версии(CU) без мержинга кода
Цитата:
Создается третья модель, котороя ссылаеться на экстеншен и предастваляет доступ к полям, а App Suite ссылаеться на нее.
Ну как бы да, такой подход безусловно "упрощает и ускоряет" работу. Да и заказчик несомненно порадуется более большим счетам за услуги разработчика.

вообще есть кстати третий путь, который я думаю используют большинство - т.е. создается модель кастомизации, и далее все экстеншены уже делаются в ней. это сводит на нет начальную идею экстеншенов(отдельные бинарники), но зато можно смело говорить всем что "мы используем экстеншены" (но не везде ). кроме этого со стороны микрософт сделано не совсем честно - т.е. экстеншены позволяют более гранурярно изменять стандартный функционал, самый наверное простой пример на это - с экстеншеном можно добавить пункт в существующее меню, а с помощью кастомизации добавить без оверлея не получится, все меню при добавлении одного элемента попадет в ваш слой. тоже самое с датасорсами на формах и т.д.

идеальным вариантом конечно было бы сделать возможности изменения теми которые сейчас есть в экстеншенах(т.е. возможность менять меню, форм, каких-то св-в без перекрытия базового кода) + предложить разработчику решать - хочет ли он помещать код в отдельную DLL(в этом случае компилятор уже должен следить чтобы не было обращений к приватным переменным и прочему) или вместе с основной. зачем они сделали 2 разных по сути формата файлов изменений (кастомизацию и экстеншн) это не очень понятно
несомненный негатив от экстеншенов в том виде как они сейчас есть - это то что это другой объект в AOT с произвольным названием и визуально их наличие реализовано слабо - т.е. раньше хотя бы все эвенты было видно в AOT, теперь можно подписаться на метод, это вообще никак визуально будет не видно
как разбираться в таком коде - особенно если он изначально разрабатывался не вами - не очень понятно, на мой взгляд время проведенное за анализом будет поболее чем время за обновлением на очередной CU

вообще если подумать вся эта идея с отдельными частями системы уже была придумана дамгардами и называлась файлами слоев. т.е. если ваш слой не трогал каких то приватных методов из sys его можно было скопировать и при некотором везении использовать без компиляции на другом приложении. в 2012 это убрали, а сейчас они заново по сути изобретают тоже самое.
Старый 09.03.2017, 00:47   #5  
AlexSD is offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Регистрация: 14.10.2003
Цитата:
Сообщение от trud Посмотреть сообщение
Хм, LCS насколько мне известно экстеншены не создает(или уже создает?)
LCS сама екстеншины не создает. Но, мы говорим о ISV с нулевым оверлеингом. Екстеншины для ISV с нулевым оверлеем не особо нужны.

Цитата:
Сообщение от trud Посмотреть сообщение
самый простой пример - поля на таблице. т.е. у вас есть новое поле "A" на CustTable лежащее в кастомизации этой таблицы, вы решаете сделать по модному..

создаете новую extension модель,
С полями, можно обойтись без екстеншина. По старинке, как сделали с некоторыми полями в локализации для 2012. Все кастомные поля в отдельную таблицу, связь по RecId c базовой таблицей. Такой подход продолжает работать для D365. Единственно, что придется в этом случае екстендить - это формы, что бы вывести свои поля на стандартные формы.

По поводу новой модели. Зачем создавать новую модель для екстеншинов? У ISV с нулевым оверлеем есть своя модель, добавляйте екстеншины в эту же модель с ISV.

Последний раз редактировалось AlexSD; 09.03.2017 в 00:52.
Старый 09.03.2017, 06:47   #6  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от AlexSD Посмотреть сообщение
Но, мы говорим о ISV с нулевым оверлеингом. Екстеншины для ISV с нулевым оверлеем не особо нужны.
С полями, можно обойтись без екстеншина.
По поводу новой модели. Зачем создавать новую модель для екстеншинов? У ISV с нулевым оверлеем есть своя модель, добавляйте екстеншины в эту же модель с ISV.
я вот как раз полностью с этим согласен. мы вот создаём все изменения в модели с типом кастомизация, в которой и создаем экстеншены и прочее.

разговор собственно начался с фразы ниже, и обсуждению зачем это нужно.

Цитата:
МС поставил перед ними срок 12 месяцев чтобы переделать свой ISV на 100% экстеншен
т.е. я под этой фразой понимаю требование переноса решения в модель с типом Extension, это на мой взгляд довольно большой объем работ не дающий никаких преимуществ.
но народ кстати на яммере довольно активно этим занимает, некоторые используя подход описанный skuull, насоздавали уже по 10 моделей, зачем то они ж это делают
Цитата:
Cоздается третья модель, котороя ссылаеться на экстеншен и предастваляет доступ к полям, а App Suite ссылаеться на нее
Старый 09.03.2017, 09:32   #7  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от trud Посмотреть сообщение
т.е. я под этой фразой понимаю требование переноса решения в модель с типом Extension
Наличие типов у моделей вообще и типа "Extension" в частности для меня лично являеться больлшим открытием
Под этой фразой я имел в виду отсутствие Overlayering. Не забываем о том что ребята продают ISV и как только клиент захочет купить два разных ISV с оверлеингом App suite кто интересно будет ему их сводить? Вернее свести то не проблема, в 12 сводили и норм, но радужная картина апп стора и деплойментов 1 кнопкой из LCS рушиться к чертям

Цитата:
Сообщение от trud Посмотреть сообщение
но народ кстати на яммере довольно активно этим занимает, некоторые используя подход описанный skuull, насоздавали уже по 10 моделей, зачем то они ж это делают
Мне кажется эта тема тут уже обсуждалась и не раз. Пока весь мир вокруг уменьшает coupling, придумывает всякие микросервисы и прочей дурью маються мы 20 с лишним лет валим все в один неймспейс и тычим пальцем в дураков которые создают больше одной модели.
За это сообщение автора поблагодарили: trud (2).
Старый 09.03.2017, 10:19   #8  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
как раз для AppStore и нужны extension модели. тип модели задается при создании
Изображения
 
Старый 09.03.2017, 10:30   #9  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от trud Посмотреть сообщение
как раз для AppStore и нужны extension модели. тип модели задается при создании
Это не тип модели это пакет модели. Вы выбираете создавать новый пакет или использовать существующий. Пакет компилируется в dll, модель же несет характер метаданных, как и проект и нужна только для того чтобы логически группировать ваш код. Преимущество своего пакета в том что вы его можете поставлять отдельно, если же ваша модель принадлежит пакету App Suite вы деплоите одну огромную dll которая содержит 2 строчки вашего кода, пускай даже в вашей модели, и еще большую часть АХ.
Старый 10.03.2017, 03:11   #10  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 917 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от AlexSD Посмотреть сообщение
Все кастомные поля в отдельную таблицу, связь по RecId c базовой таблицей. Такой подход продолжает работать для D365.
А потом приходится устраивать пляски с бубном вокруг SQL чтобы он отрабатывал запросы в 30 таблиц в более-менее вменяемое время. И это без XDS, которую любой консультант спомощью галочки может активировать. С другой стороны, это извечная дилемма мира AX:"как совместить удобство Office с мощью SAP"
__________________
Isn't it nice when things just work?
Старый 10.03.2017, 04:29   #11  
AlexSD is offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Регистрация: 14.10.2003
Цитата:
Сообщение от macklakov Посмотреть сообщение
А потом приходится устраивать пляски с бубном вокруг SQL чтобы он отрабатывал запросы в 30 таблиц в более-менее вменяемое время.
Не думаю, что прям вот так сразу от одной дополнительной таблицы для одного ISV легко получится переступить порог в эти 30 таблиц сразу для всех стандартных форм.

Каждый случай нужно рассматривать отдельно. Варианты решения могут быть найдены разные. Например, для тех форм, где уже есть 25-29 таблиц, где этот порог действительно скоро будет перейден, можно стандартную форму оставить как есть, сделать свою форму для своих полей.

Короче, это не та причина, что бы перестать создавать свои таблицы.
Старый 10.03.2017, 05:19   #12  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 917 (35) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от AlexSD Посмотреть сообщение
Не думаю, что прям вот так сразу от одной дополнительной таблицы для одного ISV легко получится переступить порог в эти 30 таблиц сразу для всех стандартных форм.
Почему же только для одной? И почему только одного ISV рассматриваем? Ну и все стандартные формы корежить не обязательно. Хватит и парочки чтобы пользователи взвыли.
Цитата:
Сообщение от AlexSD Посмотреть сообщение
Например, для тех форм, где уже есть 25-29 таблиц
Ну вот давай рассмотрим сценарий:
На стандартной форме 24 таблице в join.
Устанавливается 2 решения от 2-х разных ISV. Каждое из решений добавляет по 3 таблицы.
В очередно релизе MS решает накинуть еще несколько табличек. Часто для системных нужд. Рефакторинг, нормализация, шаблоны проектирования и все такое.
И не забываем что типичный консультант свято уверен что врубить флажок secure by legal entity в параметрах GAB логичное решение. Ведь это стандарт и в доках его рекомендуют использовать.
Так вот, сколько у нас в результате таблиц в запросе получится?
P.S. Нет, я согласен, что концепция красивая и в любом случае "все там будем", но есть у меня ощущение что граблей тут разбросано изрядно. Топтать и топтать.
__________________
Isn't it nice when things just work?

Последний раз редактировалось macklakov; 10.03.2017 в 05:23.
Старый 10.03.2017, 11:08   #13  
AlexSD is offline
AlexSD
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
257 / 302 (11) ++++++
Регистрация: 14.10.2003
Цитата:
Сообщение от macklakov Посмотреть сообщение
Почему же только для одной? И почему только одного ISV рассматриваем?
Ну, потому что я отвечал на вопрос про ISV с нулевым оверлеингом. Для меня это значит, что такое ISV решает какую-то стороннюю задачу, которая не была реализована в стандарте. При этом наиболее вероятные стандартные таблицы для расширения - это справочники... Согласись, что для справочника не нужно создавать много таблиц. По одной на справочник - вполне достаточно.
Документы, журналы, транзакции скорее всего будут своими, сделанные специально для ISV (с нулевым оверлеингом).

То, что ты описываешь, больше похоже на ISV с ненулевым оверлеингом, которое расширяет существующий функционал оверлея его на все 100%.

В случае, когда на форме уже есть 24 таблицы, я бы, как вендор ISV, такую форму не полез бы со своими таблицами. Прилепил бы поля на новую форму и повесил бы ее куда-нибудь на кнопку.
Теги
#многоходовочка, ax7, axanywhere, d365, toincrease, whs, wmdp

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
alexef: Количество клиентов Microsoft Dynamics в мире? mazzy Microsoft и системы Microsoft Dynamics 28 27.01.2017 12:47
Вебинар 1 декабря - «Сервис на «пятерку» или как CRM бережет клиентов» OlegK Microsoft и системы Microsoft Dynamics 0 25.11.2015 17:00
Manzana Group раскрывает секрет качественной поддержки корпоративных клиентов Yulia_Ant Полезное по Microsoft Dynamics 4 25.06.2008 18:26
Клуб Клиентов Microsoft Business Solutions 7 июня 2006 г. George Nordic Microsoft и системы Microsoft Dynamics 1 07.06.2006 13:37
Клуб Клиентов Microsoft Business Solutions 7 июня 2006 года George Nordic Microsoft и системы Microsoft Dynamics 1 07.06.2006 13:32

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:13.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.