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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.06.2017, 15:23   #1  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от belugin Посмотреть сообщение
Соответственно везде перевели хранение на имена. Дополниельно к этому перевели на строчки еще кучу мест - тут уж я не знаю зачем. Например типы в диалоге, вроде, никуда не сохраняются, а addField(typeNum(xxx) надо переводить на extendedTypeStr
Этого, кстати, никто не заставляет делать.
Но все новые API используют строковое представление для объектов АОТ, поэтому при написании нового кода или рефакторинге логичнее использовать их.
Старый 14.06.2017, 15:34   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Но все новые API используют строковое представление для объектов АОТ, поэтому при написании нового кода или рефакторинге логичнее использовать их.
С моделями плохо получается.
По сути модель в аксапте - это привычный namespace.

название без namespace - не очень.
__________________
полезное на axForum, github, vk, coub.
Старый 14.06.2017, 15:44   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
По сути модель в аксапте - это привычный namespace.
Модель это скорее некая папка - она не создает пространства имен. Имена в разных моделях не могут пересекаться.

Модуль, это сборка. А пространство имен глобальное, общее, одно.
За это сообщение автора поблагодарили: mazzy (2).
Старый 14.06.2017, 15:41   #4  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Этого, кстати, никто не заставляет делать.
Как это, не заставляет, если в dialog.addField теперь нельзя запихать TypeID а только TypeName? Все далоги надо обрабатывать хотя бы просто S&R на numStr/extendedTypeStr - обратной совместимости же нет
Старый 15.06.2017, 06:59   #5  
ta_and is offline
ta_and
Участник
 
226 / 122 (5) +++++
Регистрация: 26.02.2002
Адрес: СПб
Цитата:
Сообщение от belugin Посмотреть сообщение
Все далоги надо обрабатывать хотя бы просто S&R на numStr/extendedTypeStr - обратной совместимости же нет
Вот вот...
Что можно сказать об изменении интерфейсов в базовых классах после их публичной декларации?
Ага.
Только одно.
Тот человек, который ПРИДУМАЛ это решение совершенно не знает ничего о программировании.
Этому человеку совершенно на...ть на всех, кто работал до него.
И на тех, кто будет работать с его "гениальным решением" при переходе с предыдущих версий.
А так как это решение было принято и одобрено видимо не одним человеком, то напрашивается вывод о работе всей команды.
Я очень уважаю M$ как фирму.
Но у меня есть вопросы к некоторым (неизвестным мне) людям, которые работают в этой фирме. один из вопросов - ЗАЧЕМ?
Старый 15.06.2017, 08:47   #6  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от ta_and Посмотреть сообщение
Вот вот...
Что можно сказать об изменении интерфейсов в базовых классах после их публичной декларации?
Ага.
Только одно.
Тот человек, который ПРИДУМАЛ это решение совершенно не знает ничего о программировании.
По разному бывает. Насколько я помню, Python 2.5 print "Hello, world" - это правильный код, в python 2.6 это уже deprected API в Python 3.0 это ошибка.

В Ax соблюдают обратную совместимость в рамках одной версии. Стараются и дальше, но если нет возможности (например, как с хранением classid/typeid) то приходится переделывать.

Я не знаю, зачем переделали именно API dialog, но сам принцип соблюдается далеко не всеми и не всегда - это все набор компромиссов между разными факторами.

Добавим к этому, что до версии 7.0 в Ax не было ключевого слова internal - то есть нельзя было отделить внутренние классы от внешних, фактически каждый класс был API. Сейчас оно есть но массово не используется.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Запросы формы "Выбрать" в Ax 2012 vmokerov DAX: Программирование 3 18.11.2014 14:19
Как из кода сделать запись в DataSource "грязной"? AR® DAX: Программирование 3 25.04.2014 12:07
Перезапуск AOS'ов. Батник (".bat" файл) lev DAX: Администрирование 3 26.02.2013 12:51
Кнопка "Выбрать", как её добавить aao_p DAX: Программирование 6 31.05.2012 13:36
"Инвентаризационный код" в группах инвентаризации и создание строк инвентаризации lev DAX: Функционал 0 11.10.2011 09:49

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

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

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