![]() |
#101 |
Microsoft Dynamics
|
Цитата:
Я полагаю, что ничего. Что там требуется переводить то? Все и так уже переведено. ЗЫ. У меня есть опыт апргейда на 7-ку ISV (Demand Forecasting) с минимальным использованием стандартных таблиц и форм.И тулза - есть. Называется LCS. Последний раз редактировалось AlexSD; 08.03.2017 в 01:18. |
|
|
За это сообщение автора поблагодарили: skuull (3). |
![]() |
#102 |
NavAx
|
Ну, в принципе, они стараются. Но в нашем регионе у них ресурсов не хватает пока что. Когда с emergency на первую линию поддержки попадаешь, им долго приходится объяснять что такое AX и что да, их контора действительно такое продает, это входит в линейку dynamics. Потом они посреди ночи ищут инжинера по всем миру. Находят. Инжинер читает описание ошибки, делает озадаченное лицо и говорит:"у нас в CRM склада нет". В конце концов вопрос решается, но в процессе бывает весело.
Но несмотря на накладки система работает. Баги расследуются, выпускаются фиксы. И вот когда фикс выпущен, его нужно как можно быстрее накатить всем клиентам, прежде чем пользователи столкнулись с проблемой. Похоже что изоляция между ядром и isv как раз для этого и вводится, чтобы фиксить ядро без необходимости merge с кастомизациями. Как оно будет работать и будет ли работать вообще. Но процесс движется именно в этом направлении.
__________________
Isn't it nice when things just work? |
|
![]() |
#103 |
Участник
|
Цитата:
самый простой пример - поля на таблице. т.е. у вас есть новое поле "A" на CustTable лежащее в кастомизации этой таблицы, вы решаете сделать по модному.. создаете новую extension модель, далее вам надо в ней создать новый объект - extension для custTable, удалить поле из CustTable, добавить его в новый extension. как только вы сделаете это "бонусом" получите неработоспособность тулзов в Visual Studio таких как обновить дата ентити по таблице. далее если те кто установят ваше решение кодируют используя кастомизацию в AppSuite и захотят заюзать ваши поля, тут их тоже ждет сюрприз, так как поля собственно будут недоступны из AppSuite или есть новый метод на классе - тут вообще переделка на экстеншены может быть невозможна если внутри него вы обращаетесь к private переменным Последний раз редактировалось trud; 08.03.2017 в 09:59. |
|
![]() |
#104 |
Модератор
|
Цитата:
![]() не по фэншую же
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#105 |
Участник
|
Цитата:
Цитата:
![]() Последний раз редактировалось skuull; 08.03.2017 в 12:08. |
|
![]() |
#106 |
Участник
|
Цитата:
Цитата:
Создается третья модель, котороя ссылаеться на экстеншен и предастваляет доступ к полям, а App Suite ссылаеться на нее.
вообще есть кстати третий путь, который я думаю используют большинство - т.е. создается модель кастомизации, и далее все экстеншены уже делаются в ней. это сводит на нет начальную идею экстеншенов(отдельные бинарники), но зато можно смело говорить всем что "мы используем экстеншены" (но не везде ![]() идеальным вариантом конечно было бы сделать возможности изменения теми которые сейчас есть в экстеншенах(т.е. возможность менять меню, форм, каких-то св-в без перекрытия базового кода) + предложить разработчику решать - хочет ли он помещать код в отдельную DLL(в этом случае компилятор уже должен следить чтобы не было обращений к приватным переменным и прочему) или вместе с основной. зачем они сделали 2 разных по сути формата файлов изменений (кастомизацию и экстеншн) это не очень понятно несомненный негатив от экстеншенов в том виде как они сейчас есть - это то что это другой объект в AOT с произвольным названием и визуально их наличие реализовано слабо - т.е. раньше хотя бы все эвенты было видно в AOT, теперь можно подписаться на метод, это вообще никак визуально будет не видно как разбираться в таком коде - особенно если он изначально разрабатывался не вами - не очень понятно, на мой взгляд время проведенное за анализом будет поболее чем время за обновлением на очередной CU вообще если подумать вся эта идея с отдельными частями системы уже была придумана дамгардами и называлась файлами слоев. т.е. если ваш слой не трогал каких то приватных методов из sys его можно было скопировать и при некотором везении использовать без компиляции на другом приложении. в 2012 это убрали, а сейчас они заново по сути изобретают тоже самое. |
|
![]() |
#107 |
Moderator
|
В дискуссии trud vs skuull, меня больше всего удивляет, что никто даже не рассматривает вариант "Сделать все на overlay, а если Микрософт будет докапываться - предложить им оплатить дополнительные затраты на использование extensions"
Последний раз редактировалось fed; 08.03.2017 в 15:30. |
|
![]() |
#108 |
Banned
|
Microsoft никогда ничего вам не оплатит. Просто не сможете обновиться, будете смотреть на свежие хотфиксы и кусать локти.
|
|
![]() |
#109 |
Moderator
|
|
|
![]() |
#110 |
Участник
|
Ну речь немного не про это. Т.е. сейчас существует 2 типа моделей - вы выбираете этот тип при создании модели экстеншн модель и модель кастомизации.
физически это означает будет ваш код лежать в отдельной папке или подпапки у какой-то модели если выбрана экстеншн модель - в ней можно создавать только экстеншн, в модели кастомизации можно создавать как экстеншены так и кастомизации Утверждение 1 - нужно по возможности как можно меньше перекрывать (делать overlay) кода и объектов микрософт - это всегда было так, дает массу преимуществ и т.д. с этим я думаю никто спорить не будет это можно достигать как кастомизациями, так и там где невозможно экстеншенами теперь следующая ситуация - вот у вас есть приложение 2012 где оверлея вообще нет(или он минимальный). решение не аддон где-то сбоку, а к примеру небольшое расширение логистики или типа того(т.е. затрагивает и использует стандартные таблицы - добавляет туда поля, методы и т.п.) автоматом это решение мигрирует на D365, где тоже не будет оверлея - мигрирует оно в модель кастомизации вопрос в следующем - выиграите ли вы и имеет ли вообще смысл перводить этот код в модель типа экстеншн. на мой взгляд нет, ибо объем работы(при условии что у вас созданы какие-то поля, методы и т.п. на стандартных таблицах) будет просто огромный, преимуществ особо никаких нет и более того есть ряд негативных моментов. собственно это обсуждаем ![]() |
|
![]() |
#111 |
Moderator
|
Мне как раз просто интересно - а зачем вообще использовать extensions, если они явно повышают трудозатраты на разработку, а трудозатраты на апгрейд, в типичном случае, снижают несильно ? Ну то есть - я могу представить какого-то нишевого ISV, который, например, написал приблуду для печати бар-кодов, интегрировал ее только через extensions и счастлив. Там этот подход вполне жизнеспособен.
Но вот когда я гляжу на типичный внедренческий проект, я понимаю что на одних extensions его в принципе не сделаешь. Более того - есть ощущение что процентов 70 типичных доработок будет уходить в overlay независимо от того, насколько сильно вам хочется использовать extensions. И вот отсюда и вопрос - а стоит ли городить огород с extensions на типичном проекте, если мы точно знаем что апгрейдить и мерджить приложение все равно придется (из за тех самых 70% типичных доработок ушедших в overlay...)? |
|
![]() |
#112 |
Участник
|
Extension для элементов или extension модели? Это же разные вещи
Extension для элементов позволяет менять меньше системного кода – тот же меню айтем добавить в меню, или в формах можно обойтись без перекрытия. Т.е. цель использования – сократить изменения в коде, чтобы легче фиксы ставить. Это вполне такой рабочий инструмент если использовать без фанатизма extension модели – это другое. Зачем его используют на проектах я не понимаю, пример использования я видел и это было мягко говоря не очень. На вопрос – а собственно нафига, следовал стандартный ответ – ну мы же AX7, тут надо Extension |
|
|
За это сообщение автора поблагодарили: fed (2), mazzy (2). |
![]() |
#113 |
Участник
|
Цитата:
![]() |
|
![]() |
#114 |
Microsoft Dynamics
|
LCS сама екстеншины не создает. Но, мы говорим о ISV с нулевым оверлеингом. Екстеншины для ISV с нулевым оверлеем не особо нужны.
Цитата:
По поводу новой модели. Зачем создавать новую модель для екстеншинов? У ISV с нулевым оверлеем есть своя модель, добавляйте екстеншины в эту же модель с ISV. Последний раз редактировалось AlexSD; 09.03.2017 в 00:52. |
|
![]() |
#115 |
Участник
|
Цитата:
Сообщение от AlexSD
![]() Но, мы говорим о ISV с нулевым оверлеингом. Екстеншины для ISV с нулевым оверлеем не особо нужны.
С полями, можно обойтись без екстеншина. По поводу новой модели. Зачем создавать новую модель для екстеншинов? У ISV с нулевым оверлеем есть своя модель, добавляйте екстеншины в эту же модель с ISV. разговор собственно начался с фразы ниже, и обсуждению зачем это нужно. Цитата:
МС поставил перед ними срок 12 месяцев чтобы переделать свой ISV на 100% экстеншен
но народ кстати на яммере довольно активно этим занимает, некоторые используя подход описанный skuull, насоздавали уже по 10 моделей, зачем то они ж это делают Цитата:
Cоздается третья модель, котороя ссылаеться на экстеншен и предастваляет доступ к полям, а App Suite ссылаеться на нее
|
|
![]() |
#116 |
Microsoft Dynamics
|
Если интересно мое мнение (я уже больше года екстендю)
![]() Мне пока "везло", мне не попалось еще ни одной фичи для разработки, которую бы я не смог так или иначе заэкстендить. Т.е. технически я еще не заоверлеил ни одной строки кода. В паре случаях пришлось закопипастить половину приватного кода одного класса и писать доступ к приватным полям через рефлексию. Я совсем не горжусь копипастом и рефлексией. По моему мнению реализация кустомерской фичи на екстеншинах привносит в код много дополнительных (по сути ненужных) строк, которые не относятся к реализации задуманного функционала, а являются некоторым мусором, через который придется продираться тому, кто будет поддерживать этот написанный на екстеншинах функционал. Не считая того, что найти необходимый код, который спрятался в event handler - тоже задача не очевидная. |
|
|
За это сообщение автора поблагодарили: trud (2), Vadik (1). |
![]() |
#117 |
Участник
|
Цитата:
![]() Под этой фразой я имел в виду отсутствие Overlayering. Не забываем о том что ребята продают ISV и как только клиент захочет купить два разных ISV с оверлеингом App suite кто интересно будет ему их сводить? Вернее свести то не проблема, в 12 сводили и норм, но радужная картина апп стора и деплойментов 1 кнопкой из LCS рушиться к чертям ![]() Мне кажется эта тема тут уже обсуждалась и не раз. Пока весь мир вокруг уменьшает coupling, придумывает всякие микросервисы и прочей дурью маються мы 20 с лишним лет валим все в один неймспейс и тычим пальцем в дураков которые создают больше одной модели. |
|
|
За это сообщение автора поблагодарили: trud (2). |
![]() |
#118 |
Участник
|
как раз для AppStore и нужны extension модели. тип модели задается при создании
|
|
![]() |
#119 |
Участник
|
Цитата:
![]() |
|
![]() |
#120 |
Участник
|
Да, правильно. но выбрав первый пункт вы уже на существующем классе или таблице новый метод не создадите. во втором случае вы этот метод можете создать(не перекрывая существующий код- т.е. мержинг 2 решений пойдет без проблем)
|
|
Теги |
#многоходовочка, ax7, axanywhere, d365, toincrease, whs, wmdp |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|