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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.08.2017, 22:19   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
SMART TALKS 110: Metadata, abstract syntax tree and X++ best practice rules. Part 1
SMART TALKS 110: Metadata, abstract syntax tree and X++ best practice rules. Part 1
https://www.youtube.com/watch?v=Jn0THuduMTY
__________________
полезное на axForum, github, vk, coub.
Старый 15.08.2017, 22:42   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
чел грамотный, конечно.
но:
1.
заявлять что майкрософт за две последние версии 2 (два) раза поменяла формат хранения (AOD -> база данных -> XML)
И тут же рассматривать способ, основанный на работе с форматом хранения (XML)...
странно это и нелогично.

где гарантия, что майкрософт не поменяет и этот способ?

2.
использовать в качестве базы какую-то разработку третьих лиц...
почему? почему не MS SQL?

В общем, доклад с очень странной внутренней логикой.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 15.08.2017 в 22:59.
Старый 16.08.2017, 02:15   #3  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
699 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Не совсем понятна практическая цель сего доклада. Microsoft.Dynamics.Ax.Xpp.MetadataSupport* как замена Dict* полезна и нужна, но вот все остальное то зачем ?
Старый 16.08.2017, 08:29   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от skuull Посмотреть сообщение
Не совсем понятна практическая цель сего доклада. Microsoft.Dynamics.Ax.Xpp.MetadataSupport* как замена Dict* полезна и нужна, но вот все остальное то зачем ?
не знаю точно.
подозреваю, что автор хотел рассказать обо всех способах, но из доклада выкинули вводную часть "из-за нехватки времени" )

а можно было рассмотреть:
= utilElement,
= treeNode,
= Dict*,
= SysModelStore (акс2012)
= обращение к исходному коду к xml-файлам,
= обращение к таблице с перекрестными ссылками,
= пресловутый SysModelMetaData (будь он неладен)
= работа с .net-классами из namespace Microsoft.Dynamics.Ax...

можно было привести примеры динамической генерации кода.
в акс7 - пресловутый SysModelMetaData, в недавних версиях AIF/DIXF, в ранних версиях - модуль ProductBuilder.

Независимо от этого мероприятия я поднимал тему рефлексии на форуме.
Как правильно получить элементы AOT заданной модели? В X++? В SQL? в акс2012? в акс7? А extension?
Там же можно увидеть скриншот для FleetManagement на тему "что хочется"
Там же можно увидеть пример кода от Maxim Belugin для работы с провайдером метаданных.

=============================
И что хочу сказать: не используйте доступ к xml-файлам.
на мой взгляд это тупиковый путь. интересный, но тупиковый

1. напрямую через xml достаточно непросто получить корректную информацию про extensions, которые "добавляют" поля, индексы, методы и прочие субноды в основной объект. да, можно. но обратите внимание, что автор лихо обошел вопрос extension'ов. Хотя из дальнейшего доклада хорошо видно, что автор очень даже в курсе )

2. обратите внимание, что каталоги C:\AOSService\PackagesLocalDirectory\FleetManagement содержат не только исходный код. там куча бинарных и служебных xml-файлов.

3. Далеко не факт, что этот формат хранения останется в будущем именно таким. По крайней мере, я нигде не видел, что этот формат хотя бы документирован. И уж точно не было обещаний, что он сохранится.

4. Может быть, раскрою секрет. Но разработчики внутри майкрософта НЕ работают с каталогом C:\AOSService\PackagesLocalDirectory\. для VCS используется ДРУГОЙ каталог с немного другим форматом хранения и в котором находятся немного другой состав файлов (да, похожий, но другой). А в C:\AOSService\PackagesLocalDirectory\ файлы деплоятся в ходе билд-процедур или отдельной процедурой.

Поэтому, копаться в C:\AOSService\PackagesLocalDirectory\ полезно также как копаться в UtilElements - появляются новые знания. Но нет никакой гарантии, что этот способ будет работать и в будущем.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 406
Размер:	34.2 Кб
ID:	11609  
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 16.08.2017 в 08:35.
Старый 16.08.2017, 08:44   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Я постоянно пишу всякие штуки которые выдирают данные из XML но это одноразовые скрипты на powershell
Старый 16.08.2017, 09:11   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Я постоянно пишу всякие штуки которые выдирают данные из XML но это одноразовые скрипты на powershell
1. и не только ты. и не только одноразовые. и не только на powershell
2. то, что люди обращаются к файловой структуре скорее говорит о том, насколько плохо спроектировано новое семейство классов для рефлексии.

представь что в прошлой версии кто то бы начал говорить о том, что научился работать с utilElement. В принципе там есть поле, которое хранит контейнер в блобе. Ему тут же бы ответили про treeNode/Dict* и покрутили бы пальцем у виска, посчитав автора городским сумашедшим.

а щас ничё так. )

3.
как раз для powershell и прочих .net инструментов удобнее классы в Microsoft.Dynamics.Ax. на мой взгляд. по крайней мере они позволяют непосредственно получать и работать с объектами. но классы конечно... особенно по сравнению с treeNode... постоянно возникает желание оторвать выступающее архитектору классов... а extensions - это полный пипец конечно.

либо я что-то базовое напрочь не понимаю.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 16.08.2017 в 09:13.
Старый 18.08.2017, 08:01   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Мне гораздо проще писать утилиты на XML чем раньше поверх treenode. Есть xpath и работает быстро и проще с контролем версий
Старый 18.08.2017, 08:27   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от belugin Посмотреть сообщение
Мне гораздо проще писать утилиты на XML чем раньше поверх treenode. Есть xpath и работает быстро и проще с контролем версий
проще?!

Макс, один вопрос:
твои утилиты на XML выдают тебе итоговое состояние метаданных с учетом всех установленных extensions? или игнорируют extensions?

Анекдот 1:
принимают на работу секретаршу. Спрашивают:
- с какой скоростью печатаете
- 1000 знаков в минуту
- вы приняты
- (про себя) такая фигня получается...
Анекдот 2:
начало 2000х. аксфорум. очередной только что созданный участник заявляет:
- удалять документы проще чем создавать коррекции
См. также:
"хитрый" вопрос на собеседование по акс7.
Как правильно получить элементы AOT заданной модели? В X++? В SQL? в акс2012? в акс7? А extension?
__________________
полезное на axForum, github, vk, coub.
Старый 18.08.2017, 10:08   #9  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2922 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
проще?!

Макс, один вопрос:
твои утилиты на XML выдают тебе итоговое состояние метаданных с учетом всех установленных extensions? или игнорируют extensions?
Игнорируют. В моих задачах это не требуется.

Цитата:
- (про себя) такая фигня получается...
Говорят до 5 лет ребенок не способен выполнить задачу "нарисуй два кубика как из видит человек напротив" если перед ним стоит слева красный кубик а справа синий, он рисует так же.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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