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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.03.2011, 10:15   #1  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
У меня такое ощущение, что эти классы разрабатывал какой-то выходец из .net-программирования и он пытался сэммулировать привычное наследование для таблиц. Потом в рамках какой-то группы (кажется - EP), использование этих классов вместо таблиц стало стандартом разработки. Но рефакторить остальной код никто не стал, да и другие группы этими классами не пользуются. Так что, на мой взгляд, большого смысла в использовании этой функциональности - нету...
Кстати - интересно как в 2012 с использованием этих классов...
Старый 26.03.2011, 10:18   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
большого смысла в использовании этой функциональности - нету...
"Этой" - какой именно? ax-классов или работой напрямую с таблицами?

Конкретизирую вопрос:
В чем преимущество ax-классов перед непосредственной работой с таблицами ВНУТРИ самой аксапты?
__________________
полезное на axForum, github, vk, coub.
Старый 26.03.2011, 10:24   #3  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от mazzy Посмотреть сообщение
"Этой" - какой именно? ax-классов или работой напрямую с таблицами?

Конкретизирую вопрос:
В чем преимущество ax-классов перед непосредственной работой с таблицами ВНУТРИ самой аксапты?
1. Есть вероятность что в таком случае на таблицах будут создавать меньше методов, и таблицы не превратятся в "могильники" методов
2. Удобнее управлять местом выполнения кода: клиент или сервер.
3. Возможность написания более "объектно-ориентированного" кода.
Старый 26.03.2011, 10:28   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от kornix Посмотреть сообщение
1. Есть вероятность что в таком случае на таблицах будут создавать меньше методов, и таблицы не превратятся в "могильники" методов
В будущем? А сейчас какое преимущество?

Цитата:
Сообщение от kornix Посмотреть сообщение
2. Удобнее управлять местом выполнения кода: клиент или сервер.
Зачем? таблицы живут только на сервере.

Цитата:
Сообщение от kornix Посмотреть сообщение
3. Возможность написания более "объектно-ориентированного" кода.
э-э-э? это точно не маркетинговый булшит?
__________________
полезное на axForum, github, vk, coub.
Старый 26.03.2011, 10:35   #5  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
1. Ага, только в будущем
2. Имел ввиду ситуации, как, например, вызов табличного метода из формы. Если в методе написана какая-то логика - она будет выполняться на клиенте. А если вызывать класс - можно выполнить то же на сервере.
3. По идее, если вызывать отовсюду axSalesTable.insert() вместо salesTable.insert() - получается что вставкой записи уже управляет класс. Его удобно дорабатывать, в отличии от модификации табличных методов, которые обычно сильно раздуваются.

P.S.: Согласен с fed, лучше использовать Type классы (SalesLineType и т.п.). Если начать активно использовать ax классы изнутри - это как минимум будет резать глаз и сразу вызывать вопросы

Последний раз редактировалось kornix; 26.03.2011 в 10:37.
Старый 26.03.2011, 10:50   #6  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от kornix Посмотреть сообщение
3. По идее, если вызывать отовсюду axSalesTable.insert() вместо salesTable.insert() - получается что вставкой записи уже управляет класс. Его удобно дорабатывать, в отличии от модификации табличных методов, которые обычно сильно раздуваются.
Кстати - если уж очень хочется поместить сложную логику в табличный insert(), то надо в нем вызывать this.type().insert() (не вызывая super()), а в методе insert() соответствующего класса, тупо вызывать table.doinsert(). Так, помниться, вставка в строки заказов и закупок отрабатывает...
Старый 26.03.2011, 10:35   #7  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
Зачем? таблицы живут только на сервере.
Насколько я помню, таблицы живут на том уровне, на котором был выполнен первый select или первый insert. То есть - если у тебя таблица на форме, то все нестатические методы будут вызываться на клиенте.
За это сообщение автора поблагодарили: mifi (-1), kornix (1).
Старый 26.03.2011, 10:42   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от fed Посмотреть сообщение
Насколько я помню, таблицы живут на том уровне, на котором был выполнен первый select или первый insert. То есть - если у тебя таблица на форме, то все нестатические методы будут вызываться на клиенте.
так вроде было раньше.
в ax2009 все таблицы живут на сервере.
__________________
полезное на axForum, github, vk, coub.
Старый 26.03.2011, 10:49   #9  
mifi is offline
mifi
Microsoft Dynamics
Сотрудники Microsoft Dynamics
 
173 / 89 (3) ++++
Регистрация: 24.07.2002
Цитата:
Сообщение от fed Посмотреть сообщение
Насколько я помню, таблицы живут на том уровне, на котором был выполнен первый select или первый insert. То есть - если у тебя таблица на форме, то все нестатические методы будут вызываться на клиенте.
Первый insert - это правило относится только к временным таблицам. Второе предложение никак не связано с первым, на самом деле Интересно также понять, как на клиенте отрабатывает нестатический метод insert(), куда именно он вставляет данные, если таблица постоянная
Старый 26.03.2011, 10:56   #10  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mifi Посмотреть сообщение
Первый insert - это правило относится только к временным таблицам. Второе предложение никак не связано с первым, на самом деле
Угу - спасибо что напомнил.
Цитата:
Сообщение от mifi Посмотреть сообщение
Интересно также понять, как на клиенте отрабатывает нестатический метод insert(), куда именно он вставляет данные, если таблица постоянная
Ну вставит он конечно в таблицу БД. Но мне казалось что в этом случае, если логика метода insert() переопределена, то она будет на клиенте отрабатывать ?
Старый 26.03.2011, 10:27   #11  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
"Этой" - какой именно? ax-классов или работой напрямую с таблицами?

Конкретизирую вопрос:
В чем преимущество ax-классов перед непосредственной работой с таблицами ВНУТРИ самой аксапты?
Этой - работы с классами.
Мне кажется - никакого преимущества нету. В принципе - можно для своих новых таблиц наделать аналогичных классов, и некоторую функциональность выкинуть в базовый класс axInternalBase. Но класс этот и так уже достаточно помоечный, и мне кажется что правильнее использовать паттерн с методом type() таблицы, который возвращает соответствующий класс. Можно даже табличное наследование ограниченное реализовать, если у тебя в базовой таблице есть поле типа и метод type() ищет соответствущую таблицу с данными подтипа и в ней вызывает метод type().

В общем - IMHO - за исключением узкой задачи сериализации документов, эти классы не функциональны.
За это сообщение автора поблагодарили: mazzy (2).
Теги
ax-классы, axbc, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
semanticax: Dynamics AX 2009 Installation - Application Blog bot DAX Blogs 0 22.12.2010 08:11
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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