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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.07.2017, 14:00   #121  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
2,999 / 1632 (60) ++++++++
Регистрация: 12.10.2004
Прикольно.
Только там не описали как обращаться к переменным класса.
Вот так можно ?

X++:
class BaseClass1
{
    str   memberVar;  // axforum
    str method1(int arg) {
        memberVar+="; "+int2str(arg); // axforum
    
    }
}

[ExtensionOf(ClassStr(BaseClass1))]
class BaseClass1_Extension
{
    str method1(int arg) {
        // Part 1
        info(memberVar);  // axforum
        var s = next method1(arg + 4);
        info(memberVar);  // axforum
        // Part 2
        return s;
    }
}
Чем-то это напомнило классы SysReportRun и SysSetupFormRun
Вернулись к корням ?

Последний раз редактировалось Logger; 03.07.2017 в 14:03.
Старый 03.07.2017, 14:29   #122  
trud is offline
trud
Участник
Лучший по профессии 2017
 
550 / 427 (16) +++++++
Регистрация: 07.06.2003
думаю да
Цитата:
can also access other public and protected methods and variables of the class.
переменные класса то по умолчанию protected
Старый 03.07.2017, 14:50   #123  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,836 / 3725 (182) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
неужели таки сделают extension method как у нормальных людей.
http://kotlinlang.org/docs/reference/extensions.html
__________________
GitHub, Facebook, mazzy.priot, mazzy.music, coub.
За это сообщение автора поблагодарили: Logger (3).
Старый 03.07.2017, 15:48   #124  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
2,015 / 736 (29) +++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от mazzy Посмотреть сообщение
неужели таки сделают extension method как у нормальных людей.
http://kotlinlang.org/docs/reference/extensions.html
У Котлин это без необходимости наследования, а вот по
https://roadmap.dynamics.com/?i=296a...3a1#collapse13
непонятно наследование это или нет. К примеру если у базового класса есть абстрактные методы, то что?

Но главное как подметили это обязательность или нет вызова базового метода. Потому как обертка вокруг и полная подмена - очень разные вещи.

Вот скучная статья если кому интересно.
http://wiki.c2.com/?CompositionInsteadOfInheritance
За это сообщение автора поблагодарили: mazzy (2), Logger (3).
Старый 04.07.2017, 21:33   #125  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
466 / 478 (16) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от ax_mct Посмотреть сообщение
У Котлин это без необходимости наследования, а вот по
https://roadmap.dynamics.com/?i=296a...3a1#collapse13
непонятно наследование это или нет. К примеру если у базового класса есть абстрактные методы, то что?

Но главное как подметили это обязательность или нет вызова базового метода. Потому как обертка вокруг и полная подмена - очень разные вещи.
Это не наследование. И наследовать extension тоже нельзя, там даже проверка была что он всегда final, но в примере походу как всегда накосячили.

Про next говорят, что его выкинуть нельзя.
За это сообщение автора поблагодарили: ax_mct (3).
Старый 05.07.2017, 15:05   #126  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
2,015 / 736 (29) +++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от skuull Посмотреть сообщение
Это не наследование. И наследовать extension тоже нельзя, там даже проверка была что он всегда final, но в примере походу как всегда накосячили.

Про next говорят, что его выкинуть нельзя.
Если next() как super()/base() вызов базового метода выкинуть нельзя то это тогда просто синтаксический сахар.
В том же xppPrePostArgs через getThis() и parm() я точно так же могу иметь доступ к переменным класса, если конечно он нормально спроектирован.
В чем прибыток то?
Старый 05.07.2017, 17:26   #127  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,353 / 2051 (77) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Если next() как super()/base() вызов базового метода выкинуть нельзя то это тогда просто синтаксический сахар.
В том же xppPrePostArgs через getThis() и parm() я точно так же могу иметь доступ к переменным класса, если конечно он нормально спроектирован.
В чем прибыток то?
Во многом, да.

Разница в доступе к protected methods / protected class fields
Старый 05.07.2017, 17:46   #128  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,353 / 2051 (77) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Dave Froslie очень адекватный чувак, и нормально в техническом плане, так что это вы зря.
Он курирует партнерами с которыми мы ближе работаем, и extensibility requests по Finance, Project, GAB, etc. То есть с точки зрения именно application

Йорис - энтузиаст, поэтому больше интересовался возможностями платформы, конечно же.
Он бывший MVP - вот его блог http://daxmusings.codecrib.com/

Поэтому могло так показаться на конференции, что Дейв не шарил. Это не так
Старый 05.07.2017, 20:06   #129  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
2,015 / 736 (29) +++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Во многом, да.

Разница в доступе к protected methods / protected class fields
И еще наверно в целостности выполнения так как при подписке нет предсказуемости последовательности вызова подписчиков. Тут кстати возникает вопрос как будут жить вместе несколько врапперов между собой и порядок вызова между ними и их самих с подписными пре и пост.
Вроде отдельная тема появилась - пойду почитаю...
Старый 05.07.2017, 20:27   #130  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
2,015 / 736 (29) +++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Dave Froslie очень адекватный чувак, и нормально в техническом плане, так что это вы зря.
Он курирует партнерами с которыми мы ближе работаем, и extensibility requests по Finance, Project, GAB, etc. То есть с точки зрения именно application
...
Поэтому могло так показаться на конференции, что Дейв не шарил. Это не так
Поскольку блокирование кода и уход от основы АХ - перекрытия слоев само по себе - неадекват, от которого вообще никто не выигрывает - то и ищем мы этих самых мифических технарей-неадекватов в Майкрософте. Ну и поскольку он из угла тестеров то я не исключаю что все текущие проблемы экосистемы из-за того что для Дейва автоматические тесты и покрытие ими - приоритет. Он при этом может быть и адекватом только с противоположными интересами и искренним непониманием проблем сложившейся экосистемы. Если не он то кто тогда сошел с ума?
Старый 08.07.2017, 21:17   #131  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
2,015 / 736 (29) +++++++
Регистрация: 10.10.2005
Адрес: Westlands
Тихо и с косами стоят...
А у меня вопрос.
При overlaying конфликты кода и как результат логики - налицо, а при extension модели расширений конфликта кода нет и как результат конфликта логики не видно.
При seemless updates со стороны MS в production клиента встаёт вопрос о совместимости существующих расширений и этих апдейтов. Это реальная проблема или я опять занимаюсь от скуки scaremongering?
Старый 08.07.2017, 23:32   #132  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
466 / 478 (16) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Тихо и с косами стоят...
А у меня вопрос.
При overlaying конфликты кода и как результат логики - налицо, а при extension модели расширений конфликта кода нет и как результат конфликта логики не видно.
При seemless updates со стороны MS в production клиента встаёт вопрос о совместимости существующих расширений и этих апдейтов. Это реальная проблема или я опять занимаюсь от скуки scaremongering?
Ну если и занимаетесь то точно не один. Вот начинание https://github.com/Adacta/source-dependency где человек хочет знать, что метод который он расширял поменялся и не плохо было бы его посмотреть. Присоеденяйтесь, внесите лепту делом, а не словом

Последний раз редактировалось skuull; 08.07.2017 в 23:37.
За это сообщение автора поблагодарили: ax_mct (5).
Старый 09.07.2017, 01:51   #133  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
2,015 / 736 (29) +++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от skuull Посмотреть сообщение
Ну если и занимаетесь то точно не один. Вот начинание https://github.com/Adacta/source-dependency где человек хочет знать, что метод который он расширял поменялся и не плохо было бы его посмотреть. Присоеденяйтесь, внесите лепту делом, а не словом
Дельно человек предлагает. Но как это будет выглядеть я не понимаю. Seamless servicing and continuous updates как я понимаю это прямиком в production.

Даже если предположить возможность контроля над обновлениями в случае on-premise то выявление возможных конфликтов в случае использования точек расширения (где визуально не видно конфликтов кода и как результат - логики) становится на порядок более тяжелой задачей чем при явном наложении одного кода на другой.

Насчет лепты не готов. Мне кредит за дом платить надо, а не песочные замки строить вместе с играющими в песочнице

Последний раз редактировалось ax_mct; 09.07.2017 в 01:55.
Старый 09.07.2017, 11:02   #134  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
466 / 478 (16) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Дельно человек предлагает. Но как это будет выглядеть я не понимаю. Seamless servicing and continuous updates как я понимаю это прямиком в production.
Есть слухи, что рано или поздно, но скорее рано, platform обновления будут ставиться раз в месяц сами по себе, как на винду. По поводу application suite даже слухов нет. Т.е. будете сами их ставить на дев, сами этим или каким другим образом смотреть, что ваши чудо расширения не развалились и сами их потом деплоить. А в связи с тем, что МС очень сильно хочет, чтобы мы их ставили, нам бы какой-то инструмент в помощь.
Хотелось бы еще заметить, что титаник задраен не до конца, даты задраивания модели Currency я нигде не видел.
Старый 09.07.2017, 12:54   #135  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
2,015 / 736 (29) +++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от skuull Посмотреть сообщение
Есть слухи, что рано или поздно, но скорее рано, platform обновления будут ставиться раз в месяц сами по себе, как на винду. По поводу application suite даже слухов нет. Т.е. будете сами их ставить на дев, сами этим или каким другим образом смотреть, что ваши чудо расширения не развалились и сами их потом деплоить. А в связи с тем, что МС очень сильно хочет, чтобы мы их ставили, нам бы какой-то инструмент в помощь.
Хотелось бы еще заметить, что титаник задраен не до конца, даты задраивания модели Currency я нигде не видел.
Довольно непросто понять что есть platform, а что application suite. Туповатому мне.

Application stack and server architecture
https://docs.microsoft.com/en-us/dyn...r-architecture

New extensibility support in the July 2017 Update
https://blogs.msdn.microsoft.com/mfp...y-2017-update/
Цитата:
Refactoring of the *TableType and *LineType classes, so insert/update/delete events on the backing tables can be used as extension points.
То есть я понимаю все это так что обновления и изменения в *TableType and *LineType классах будут идти автоматически и прямо в Production. Я правильно понимаю?
Старый 09.07.2017, 14:51   #136  
EVGL is offline
EVGL
Moderator
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,636 / 2173 (80) +++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от ax_mct Посмотреть сообщение
То есть я понимаю все это так что обновления и изменения в *TableType and *LineType классах будут идти автоматически и прямо в Production. Я правильно понимаю?
Нет. Банально идет речь о том, что на методы SalesTableType.update() и SalesLineType.update() повесили атрибут [Hookable] или отрефакторили там, чтобы можно было вклиниваться в исполнение кода.
За это сообщение автора поблагодарили: ax_mct (3).
Старый 09.07.2017, 15:27   #137  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
2,015 / 736 (29) +++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от EVGL Посмотреть сообщение
Нет. Банально идет речь о том, что на методы SalesTableType.update() и SalesLineType.update() повесили атрибут [Hookable] или отрефакторили там, чтобы можно было вклиниваться в исполнение кода.
Это, да, в контексте "что именно сделали в данных классах" для возможности их расширения не меняя "базовый" код.

Но зачем? Затем чтобы можно было автоматически и без спроса менять этот "базовый" код в Production.
То есть, код SalesLineType.update() может меняться автоматически и без спроса в Production. Это так или нет? В этом вопрос.
Старый 09.07.2017, 15:41   #138  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,368 / 1430 (54) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Нет. Не может
__________________
-ТСЯ или -ТЬСЯ ?
Старый 09.07.2017, 17:21   #139  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,252 / 4247 (146) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от skuull Посмотреть сообщение
Есть слухи, что рано или поздно, но скорее рано, platform обновления будут ставиться раз в месяц сами по себе, как на винду.
Во многих индустриях (в частности в фармацевтике), обязательно использование стандартизированых систем управления качеством. И большая часть систем качества требует верификации устанавливаемого программного обеспечения. Не буду притворятся что я очень хорошо процесс верификации понимаю, но одно из его требований состоит в том, что любое обновление, перед развертыванием, должно либо тестироваться самим клиентом, либо каким-то независимой тестирующей организацией. Поэтому никакой автоматической установки обновлений в фармацевтике нет и быть не может. Аналогичный подход применяется и в других индустриях где системы управления качеством достаточно стандартизированы.
И разговоры об автоматическом обновлении чего либо просто демонстрируют как в MS на самом деле плохо понимают свой рынок...
Старый 09.07.2017, 18:26   #140  
kashperuk is offline
kashperuk
Senior SDE, Dynamics AX
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,353 / 2051 (77) +++++++++
Регистрация: 30.05.2004
Адрес: Копенгаген, Дания
Цитата:
Сообщение от ax_mct Посмотреть сообщение
То есть я понимаю все это так что обновления и изменения в *TableType and *LineType классах будут идти автоматически и прямо в Production. Я правильно понимаю?
Раньше в salesLine.update(), к примеру, super() не вызывался. Вместо этого вызывался salesLineType.update(), который внутри делал record.doUpdate()

После рефакторинга super() будет вызываться в salesLine.update(), а весь код вокруг него который был в salesLineType вынесен в различные методы.

Тем самым достигается несколько вещей:
- Теперь можно будет подписаться на вызов onInserted, onUpdated, onUpdating, etc. на SalesLine - раньше это было невозможно, так как event тригеррится в super()
- Теперь можно будет с помощью CoC или pre/post-method handlers добавлять требуемую партнерскую логику, которая должна выполняться во время обновления строки заказа.
Теги
#многоходовочка, #стокгольмскийсиндром, extensions, overlayering, все пропало, титаник задраен

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Клуб клиентов Microsoft Dynamics 31 мая 2011 mazzy Microsoft и системы Microsoft Dynamics 3 02.06.2011 16:32
Клуб Клиентов 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
«Форекс Клуб» внедряет систему Microsoft Axapta dap Microsoft и системы Microsoft Dynamics 0 21.06.2004 21:29
«Форекс Клуб» и ЛАНИТ внедряют Microsoft Axapta dap Microsoft и системы Microsoft Dynamics 0 20.05.2004 09:50
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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