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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.07.2017, 19:02   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Я давно понял вашу позицию, но вы упрямо продолжаете держаться за воздух.
Цитата:
Сообщение от ta_and Посмотреть сообщение
О. Да. 0.1 процента всех классов.
Наберите-ка лучше в поиске по содержимому классов такую ключевую фразу:
X++:
void new()
Цитата:
Сообщение от ta_and Посмотреть сообщение
X++:
void new(Args _args = null)
Эта поправка успокоит мятущуюся душу насчет Мар и сервисных классов?
Вот тут я не понял, Вы что, реально и в сервисные классы хотите залезть? Работать с коллекциями через Args? Или как вообще?
Цитата:
Сообщение от ta_and Посмотреть сообщение
При чем здесь передача параметров из метода в метод?
Конструктор вызывается один раз для создания экземпляра.
Полюбому в созданный экземпляр передаются входные параметры.
Сейчас как раз это делается с помощью куевой хучи неформализованных методов аля initFromArgs и тому подобной лабудени.
Т.е. вы видите только те аргсы которые из менюайтемов вылупляются. На основе своих предположений о вашем "правильном" положении вещей в аксапте, я догадываюсь, что в недалеком будущем у вас абсолютно все классы инициализируются через аргс. И каждый, я повторюсь, каждый класс принимает нет тот же самый аргс, который был изначально. Каждому классу нужен будет отдельно созданный инстанс Аргс со своими параметрами.
Цитата:
Сообщение от ta_and Посмотреть сообщение
Огромного количества чего? Того, что уже есть в системе? Что уже и так генерится и существует для каждого интерфейсного элемента и может быть запросто передано в класс? Вы серьезно? Ничего, что все main вызываются с передачей параметра аргс? это Вас не смущает?
Как бы вам объяснить доходчиво... Давайте построим QueryRun таким макаром? Допустим, все работает через аргсы... Что ж, давайте сделаем 3 QueryBuildDataSource, на каждый навешаем по 5 QueryBuildRange... Результат надо передать в Query, а потом уже его получит QueryRun. Т.е. чтобы построить обычный динамический запрос, вы получите 17 разных инстансов Аргс! А если вы инвойс разнести хотите, там в SalesFormLetter не хило так можно развернуться, а? Посчитайте, сколько там в classDeclaration классов, передайте-ка каждому по своему экземпляру Аргс. А потом по цепочке из класса в класс. Они ведь тоже используют какие-то свои классы? Вы хоть раз замеряли производительность, объем используемой памяти? А Если каждый аргс будет держать в себе курсор не с одной записью?

Короче, ваша идея с аргс - чисто солдафонская привычка: грубо, топорно, но зато понятно и надёжно. А какова цена - да не важно совсем, главное работает и всем понятно))).
Всё, я с вами больше не спорю. Нет никакого смысла.
__________________
// no comments
За это сообщение автора поблагодарили: skuull (4).
Старый 19.07.2017, 03:37   #2  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от dech Посмотреть сообщение
Короче, ваша идея с аргс - чисто солдафонская привычка: грубо, топорно, но зато понятно и надёжно. А какова цена - да не важно совсем, главное работает и всем понятно))).
Дело не в передаче именно аргс, а в понятном и надежном подходе.
Это может быть и имя, и аргс, и массив параметров.

В стыдном PHP например это делается так
PHP код:
public object ReflectionClass::newInstanceArgs ([ array $args ] ) 
http://php.net/manual/en/reflectionc...stanceargs.php

PHP код:
public object ReflectionClass::newInstance mixed $args [, mixed $... ] ) 
http://php.net/manual/en/reflectionc...ewinstance.php

А есть и такая фишка
ReflectionClass::newInstanceWithoutConstructor — Creates a new class instance without invoking the constructor.
http://php.net/manual/en/reflectionc...onstructor.php

От передачи ссылки или null - системе не поплохеет.

Использование метаданных в случае данной темы - это само по себе не глупо.
Автор темы просто устал от того бардака который привнесли в неплохую и законченную систему.
Солдафонство в том смысле что должен быть единый и единственный фрэймворк в конкретном продукте/платформе, единообразие и следование уставу - это то что доктор студентам прописал
Старый 19.07.2017, 07:08   #3  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,347 / 996 (38) +++++++
Регистрация: 03.04.2002
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Дело не в передаче именно аргс, а в понятном и надежном подходе.
Что хорошего в передаче Args, если это не вызов через menuItem? Куча бессмысленных параметров, из которых будет лишь один будет иметь смысл, да и тот предельно обобщенный Object. Т.е. вся надежность в том, что надежно удается обмануть компилятор и словить ошибку в runtime.
Цитата:
Сообщение от ax_mct Посмотреть сообщение
В стыдном PHP например это делается так
Здесь соглашусь. Такого многие стыдятся. Но из уважения к твоим религиозным убеждениям про "граальность" некторых языков, тему развивать не вижу смысла.
__________________
Isn't it nice when things just work?
Старый 19.07.2017, 19:09   #4  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от macklakov Посмотреть сообщение
Что хорошего в передаче Args, если это не вызов через menuItem? Куча бессмысленных параметров, из которых будет лишь один будет иметь смысл, да и тот предельно обобщенный Object. Т.е. вся надежность в том, что надежно удается обмануть компилятор и словить ошибку в runtime.

Здесь соглашусь. Такого многие стыдятся. Но из уважения к твоим религиозным убеждениям про "граальность" некторых языков, тему развивать не вижу смысла.
Согласен что Args с тремя лицами (record, enum, object) не шибко прямой и понятный вариант. Но я не сколько об Args как о конкретном варианте, а о тупом солдафонстве которого так не хватает в AX. Чтобы просто и тупо как топор. Тут не так важно что именно, главное что единообразно по всей системе. Множественность фрэймворков под реальные и нереальные проблемы - это бардак там где должна быть казарма.
Собственно старые солдаты и тоскуют о порядке. Которого не стало.

Компилятор как защита от дурака - от дураков не помогает, но помогает делать дураков.
Теги
sysextension framework, sysoperation framework, как правильно, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
stephenmann: Technical History of Dynamics AX - From Axapta 3.0 to AX2012 Blog bot DAX Blogs 5 03.03.2017 10:22
dynamicsax-fico: Invoice search AX2012 vs. AX7 (Part 2) Blog bot DAX Blogs 0 01.04.2016 10:11
DAX2009 аналог friend классов. Как сделать? Raven Melancholic DAX: Программирование 9 07.11.2015 23:50
emeadaxsupport: Inventory closing differences between AX4.0 and AX2012 using weighted average costing method Blog bot DAX Blogs 0 27.12.2012 19:11

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

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

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