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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.03.2013, 08:59   #1  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Microsoft Dynamics AX 2012 White Paper: Introduction to the SysOperation Framework
Overview
The SysOperation framework enables application logic to be written in a way that supports running interactively or via the batch server in Microsoft Dynamics AX 2012. This white paper illustrates how the SysOperation framework can be used to build operations that can run asynchronously and make use of the full processing power available on the server. Four code samples are presented and explained to illustrate the comparison between the SysOperation and the RunBaseBatch framework, and to demonstrate the use of the SysOperation framework in building asynchrouous and scalable operations.
Microsoft Dynamics AX 2012 White Paper: Introduction to the SysOperation Framework
__________________
-ТСЯ или -ТЬСЯ ?
За это сообщение автора поблагодарили: mazzy (2), sukhanchik (2), alex55 (1).
Старый 28.03.2013, 09:31   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ну, нафига? нафига?! они используют вызов метода через classstr()/methodstr().
так же перестают работать перекрестные ссылки, синтаксическое переименование. начинаются глюки при переименовании метода.

пидарасы. нет у меня другого слова.
Старый 28.03.2013, 09:52   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
может я чего не понимаю?
может, кто-нибудь сможет объяснить: "ЗАЧЕМ они делают это?"

я, конечно, обещал не использовать термин Программистский подход
но, на мой взгляд, это типичный пример пресловутого подхода: программирование ради программирования. не учитывая интересы и мотивацию людей.
типичный пример - "Execution Mode". кто? в какой момент? и как сделает выбор между этими 4 режимами?


может, кто-нибудь может придумать "ПОЧЕМУ человек-программист захочет использовать ЭТОТ фреймворк? в каких сценариях?"

вот, например, runbasebatch имеет очень понятное, простое и человеческое объяснение: разгрузить компьютер пользователя и перенести тяжелую обработку на мощный сервер.
есть более программистское (но все еще понятное) расширение этого объяснения: Заодно и параметры повторения есть, и задачи выполняются поочередно (что снижает вероятность блокировок).

А для этого Фреймворка есть какое-нибудь объяснение на человеческом языке: ЗАЧЕМ?

весь документ я прочитал. introduction перечитал несколько раз.
все равно - нуб и опозорился.
Старый 28.03.2013, 09:55   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от mazzy Посмотреть сообщение
ну, нафига? нафига?! они используют вызов метода через classstr()/methodstr().
так же перестают работать перекрестные ссылки, синтаксическое переименование. начинаются глюки при переименовании метода.
..
нет у меня другого слова.
В целом согласен но хотел бы уточнить некоторые детали.. О какой версии речь? В 4.0 и 2012 к примеру перекрестные ссылки на staticmethodstr() и classstr() создаются.
__________________
-ТСЯ или -ТЬСЯ ?
Старый 28.03.2013, 10:03   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Vadik Посмотреть сообщение
В целом согласен но хотел бы уточнить некоторые детали.. О какой версии речь? В 4.0 и 2012 к примеру перекрестные ссылки на staticmethodstr() и classstr() создаются.
я не про staticmethodstr
я про invokeStaticMethodIL, который выполняется в дальнейшем.

во-первых, они ВЫНУЖДЕНЫ делать assert для invoke.
во-вторых, invoke уже не ловится перекрестными ссылками. И встав мышкой на метод контролера мы НЕ узнаем, где же он вызывается. Нужен дополнительный и трудоемкий анализ.
Старый 28.03.2013, 10:05   #6  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,324 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
ну, нафига? нафига?! они используют вызов метода через classstr()/methodstr().
Не... теперь надо не так говорить. Надо говорить так: "О! Они теперь пишут названия методов не строкой в кавычках, а используют встроенные функции classstr()/methodstr(). Гениально!".
Лояльнее надо быть к вендору . И во всем искать свою плюсы. Даже на кладбище

Я так понимаю, что речь идет о попытке переноса кода в СIL. Отсюда и вызов метода. Или я чего-то не понял? (Тоже неоднократно перечитал доку).
Т.е. как я понял изначально - ключевое отличие SysOperationFramework от RunBaseBatch состоит в том, что первый предполагает вызов кода из CIL. А во всем остальном (с т.з. идеологии) никаких изменений нет. Я неправ?
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 28.03.2013 в 10:10.
За это сообщение автора поблагодарили: mazzy (2).
Старый 28.03.2013, 10:23   #7  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Ну по моему все более понятно.
Назначили нового Архитектора с 20 летним ERP опытом, который слова ранбейсбетч и перекрестные ссылки и не слышал ранее
А тут все так красиво - разделение кода и данных, попробуй возрази
За это сообщение автора поблагодарили: mazzy (2).
Старый 28.03.2013, 10:43   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
для добавления одного параметра в RunBase надо:

- добавить поле в класс
- добавить поле в макрос со списком полей для упаковки/распаковки
- по хорошему еще:
1. добавить два макроса для новой версии в classdeclaration
2. Добавить в распаковку логику по разделению этих версий
- добавить в создание диалога
- добавить в получение данных из диалога

Для добавления параметра в SysOperationFramework надо

- добавить поле в класс-контракт
- добавить метод-свойство в класс-контракт
- аннотировать метод атрибутами для диалога
За это сообщение автора поблагодарили: mazzy (2), ta_and (4), Kabardian (5).
Старый 28.03.2013, 11:01   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
ключевое отличие SysOperationFramework от RunBaseBatch состоит в том, что первый предполагает вызов кода из CIL.
Не-а.
см. страница 8 - метод runbase.run
и на странице 13 результат выполнения runbase на CIL
Изображения
 
За это сообщение автора поблагодарили: sukhanchik (2).
Старый 28.03.2013, 11:05   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Для добавления параметра в SysOperationFramework надо

- добавить поле в класс-контракт
- добавить метод-свойство в класс-контракт
- аннотировать метод атрибутами для диалога
О! и поэтому программист теперь должен работать не с одним классом, в котором присутствуют все переменные, а с целым набором классов, в котором все равно будут эти же переменные (но разбросанные по коду)? и к тому же через assert/invoke и methodstr?

Максим, а почему это проще/предпочтительнее для разработчика? Может быть я чего не знаю?

Можно я повторю вопрос: "кто-нибудь может придумать "ПОЧЕМУ человек-программист захочет использовать ЭТОТ фреймворк? в каких сценариях?"
Старый 28.03.2013, 11:16   #11  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от mazzy Посмотреть сообщение
может я чего не понимаю?
может, кто-нибудь сможет объяснить: "ЗАЧЕМ они делают это?"

я, конечно, обещал не использовать термин Программистский подход
но, на мой взгляд, это типичный пример пресловутого подхода: программирование ради программирования. не учитывая интересы и мотивацию людей.
типичный пример - "Execution Mode". кто? в какой момент? и как сделает выбор между этими 4 режимами?


может, кто-нибудь может придумать "ПОЧЕМУ человек-программист захочет использовать ЭТОТ фреймворк? в каких сценариях?"

вот, например, runbasebatch имеет очень понятное, простое и человеческое объяснение: разгрузить компьютер пользователя и перенести тяжелую обработку на мощный сервер.
есть более программистское (но все еще понятное) расширение этого объяснения: Заодно и параметры повторения есть, и задачи выполняются поочередно (что снижает вероятность блокировок).

А для этого Фреймворка есть какое-нибудь объяснение на человеческом языке: ЗАЧЕМ?

весь документ я прочитал. introduction перечитал несколько раз.
все равно - нуб и опозорился.
В целом - не только данный фреймфорк вызываеть много вопросов. Я первые пол года бесился, а сейчас порсто пришел к выводу, что аксапту просто убили, пустив в систему армию засранцев, которые все перетоптали. В результате 20 часов тратишь на поиск как сделать что-то, что раньше занимало час\два. Клиентам очень сложно объяснить, почему эта мелочь занимает так много времени.

Цитата:
Сообщение от belugin Посмотреть сообщение
для добавления одного параметра в RunBase надо:

- добавить поле в класс
- добавить поле в макрос со списком полей для упаковки/распаковки
- по хорошему еще:
1. добавить два макроса для новой версии в classdeclaration
2. Добавить в распаковку логику по разделению этих версий
- добавить в создание диалога
- добавить в получение данных из диалога

Для добавления параметра в SysOperationFramework надо

- добавить поле в класс-контракт
- добавить метод-свойство в класс-контракт
- аннотировать метод атрибутами для диалога
... и они очень радуютя подобным нововведениям, и охотно платят за это деньги. И я рад, очень.
Старый 28.03.2013, 11:21   #12  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от mazzy Посмотреть сообщение
О! и поэтому программист теперь должен работать не с одним классом, в котором присутствуют все переменные, а с целым набором классов, в котором все равно будут эти же переменные (но разбросанные по коду)? и к тому же через assert/invoke и methodstr?

Максим, а почему это проще/предпочтительнее для разработчика? Может быть я чего не знаю?

Можно я повторю вопрос: "кто-нибудь может придумать "ПОЧЕМУ человек-программист захочет использовать ЭТОТ фреймворк? в каких сценариях?"
Цитата:
Routing tasks to the .NET Common Language Runtime (CLR) environment.
- это главная фича сего вреймфорка. Ради этого он был создан. На практике это пока ничего не даёт, но возможно это промежуточный шаг в сторону полного отказа от X++.

Цитата:
может, кто-нибудь может придумать "ПОЧЕМУ человек-программист захочет использовать ЭТОТ фреймворк? в каких сценариях?"
Предполагаю два сцерия: когда использование этого чуда станет обязательным для ISV или же RunBase класс уберут из системы в след. версии.

Последний раз редактировалось DSPIC; 28.03.2013 в 11:25.
За это сообщение автора поблагодарили: mazzy (2).
Старый 28.03.2013, 11:32   #13  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Цитата:
Routing tasks to the .NET Common Language Runtime (CLR) environment.
- это главная фича сего вреймфорка.

Предполагаю два сцерия: когда использование этого чуда станет обязательным для ISV или же RunBase класс уберут из системы в след. версии.
может быть, может быть... надо подумать.
Старый 28.03.2013, 11:56   #14  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Я бы главную проблему DAX2012 сформулировал так: Разработчики (в широком смысле) в MS не понимали что их продукт, на проектах, будут переписывать люди, у которых значительно меньше времени и значительно шире специализация чем у сотрудников MS.
Все остальное - лишь проявление этой проблемы...
За это сообщение автора поблагодарили: mazzy (2), Vadik (1), denny (1), Logger (3), Stitch_MS (3), miklenew (2).
Старый 28.03.2013, 12:23   #15  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
О! и поэтому программист теперь должен работать не с одним классом, в котором присутствуют все переменные, а с целым набором классов, в котором все равно будут эти же переменные (но разбросанные по коду)?
Эти переменные будут только в одном месте - в контракте.
Зато
- не будет переменных и кода, который генерирует интерфейс
- не будет макросов и кода для упаковки распаковки

Цитата:
и к тому же через assert/invoke и methodstr?
можешь привести пример с исследованием кода который вызвал вопросы?

Цитата:
Максим, а почему это проще/предпочтительнее для разработчика? Может быть я чего не знаю?
Меньше кода, меньше вероятность что-то забыть при написании чего-то само собой разумеющегося.

Цитата:
Можно я повторю вопрос: "кто-нибудь может придумать "ПОЧЕМУ человек-программист захочет использовать ЭТОТ фреймворк? в каких сценариях?"
- например, программист не любит писать 100 раз одно и то же
- программист хочет ускорить работу за счет удобного распараллеливания
Старый 28.03.2013, 12:34   #16  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от fed Посмотреть сообщение
Я бы главную проблему DAX2012 сформулировал так: Разработчики (в широком смысле) в MS не понимали что их продукт, на проектах, будут переписывать люди, у которых значительно меньше времени и значительно шире специализация чем у сотрудников MS.
Все остальное - лишь проявление этой проблемы...
А внедренцы считают что продукт - для них, когда он - для пользователей А по мне так если платформа стала более продвинутой, а кастомизация - сложнее \ дороже - может, оно и лучше в каком-то смысле ? Может, продукт таки уже внедрять начнем а не мертворожденных кадавров (см. "Решения") плодить.. Мне лично с AX 2012 проще стало мотивированно отказываться какую-то очевидную туфту делать. В старой системе (4.0) когда к примеру очередной бездарь по заказу другого бездаря за полдня (а че там делать-то) рисует десятый по счету Inventory value отчет (ни один из кастомных естественно ни с другими ни с GL не сходится) довольно занятно наблюдать трехмесячное шоу под названием "закрытие года и внешний аудит"
__________________
-ТСЯ или -ТЬСЯ ?
Старый 28.03.2013, 12:36   #17  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от fed Посмотреть сообщение
Я бы главную проблему DAX2012 сформулировал так: Разработчики (в широком смысле) в MS не понимали что их продукт, на проектах, будут переписывать люди, у которых значительно меньше времени и значительно шире специализация чем у сотрудников MS.
Все остальное - лишь проявление этой проблемы...
Я думаю, тут еще конфликт с привычками, выработанными программистами на проектах.

Я вот помню, совсем не умел читать код так как работал на русском языке и термины в программе были незнакомы. Никакой XML документации не было и просто документации по коду и фреймворкам был минимум.
Старый 28.03.2013, 13:03   #18  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от Vadik Посмотреть сообщение
Может, продукт таки уже внедрять начнем а не мертворожденных кадавров (см. "Решения") плодить.. Мне лично с AX 2012 проще стало мотивированно отказываться какую-то очевидную туфту делать. В старой системе (4.0) когда к примеру очередной бездарь по заказу другого бездаря за полдня (а че там делать-то) рисует десятый по счету Inventory value отчет (ни один из кастомных естественно ни с другими ни с GL не сходится) довольно занятно наблюдать трехмесячное шоу под названием "закрытие года и внешний аудит"
Ты помнишь знаменитый анекдот горбачевской эпохи ?
Маленький мальчик прибегает к отцу и говорит:"Папа,папа,водка подорожала!Это значит,что ты теперь будешь меньше пить?" - "Нет,сынок,это значит,что ты теперь будешь меньше есть!
Ты-то может реквестов пользовательских и наотвергаешь, а вот качество среднестатистического внедрения у среднестатистического партнера с "естественной кривизной рук" - заметно упадет...
Старый 28.03.2013, 13:09   #19  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от fed Посмотреть сообщение
а вот качество среднестатистического внедрения у среднестатистического партнера с "естественной кривизной рук" - заметно упадет...
Качество решений у КРИВОРУКОГО партнера уже ниже плинтуса независимо от версии. Мне куда интереснее пряморукие
__________________
-ТСЯ или -ТЬСЯ ?
Старый 28.03.2013, 13:49   #20  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Проблема в том, что криворукие партнеры роняют нам рынок. При этом их Микрософт нифига не вычищает. Так что - им там в консерватории надо либо криворуких партнеров вычишать (причем ориентируясь на качество внедрений, а не на число сертификатов и объем квартальных продаж), либо уж продукт не усложнять до нынешнего состояния...
Теги
ax2012, runbase, runbasebatch, sysoperation framework

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Translated User Help on TechNet and downloadable New Features lists available! Blog bot DAX Blogs 0 31.01.2013 05:11
mfp: Microsoft Dynamics AX 2012 is here! Blog bot DAX Blogs 10 04.08.2011 17:11
AIF: Microsoft Dynamics AX 2012 Services and AIF White Papers Blog bot DAX Blogs 0 16.06.2011 00:11
dynamics-ax: Interview with Microsoft's Lachlan Cash on his new role, AX 2012 and more Blog bot DAX Blogs 6 22.04.2011 14:55
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:26.