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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.12.2006, 13:48   #1  
6apcyk is offline
6apcyk
Участник
 
57 / 11 (1) +
Регистрация: 17.08.2005
Когда нужно ставить свойство server на static методах
Здравствуйте Уважаемые Коллеги!

На сколько сложней системе обращатся к серверному статическому методу таблицы, чем просто к статическому?

Т.е. почему методу статическому exist не ставить всегда server???
Мы же так должны экономить на передачах текстового запроса по сети?!
(иммеется ввиду канал от клиента до AOS)
Старый 11.12.2006, 14:07   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от 6apcyk Посмотреть сообщение
Мы же так должны экономить на передачах текстового запроса по сети?!
Не текстового запроса.
Читайте Best Practice и документацию.

Разработчики настоятельно рекомендуют уменьшать количество обращений (сеансов) клиент-сервер. Каждое обращение упаковывается в пакет (который сам по себе весит достаточно много). Кроме того, время на установление сеанса может быть достаточно большим.

Т.е. лучше, если передаваемый между клиентом и сервером пакет данных будет побольше, нежели много маленьких пакетиков.
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 16:04   #3  
6apcyk is offline
6apcyk
Участник
 
57 / 11 (1) +
Регистрация: 17.08.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
Не текстового запроса.
Читайте Best Practice и документацию.

Разработчики настоятельно рекомендуют уменьшать количество обращений (сеансов) клиент-сервер. Каждое обращение упаковывается в пакет (который сам по себе весит достаточно много). Кроме того, время на установление сеанса может быть достаточно большим.

Т.е. лучше, если передаваемый между клиентом и сервером пакет данных будет побольше, нежели много маленьких пакетиков.
Я собственно и хотел понять границу, когда надо переходить на серверный метод. Я еще раз упомяну: например на таблицах есть методы static exist(...), которые исполняются на клиенте, т.е передается запрос от клиента до сервера AOS, а потом судя по всему к базе. Поставив свойство server отпадает необходимость передавать запрос до сервера. Или я чего-то не понимаю ???
Старый 11.12.2006, 16:26   #4  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от 6apcyk Посмотреть сообщение
Я собственно и хотел понять границу, когда надо переходить на серверный метод. Я еще раз упомяну: например на таблицах есть методы static exist(...), которые исполняются на клиенте, т.е передается запрос от клиента до сервера AOS, а потом судя по всему к базе. Поставив свойство server отпадает необходимость передавать запрос до сервера. Или я чего-то не понимаю ???
Интересный вопрос.

Мне кажется что если проверка идет по первичному ключу и на таблице включено кешировнаие то ключевое слово server не нужно.

А так действитьельно кажется что должно бы быть оптимальнее с Server
Непонятно только почему в стандартном коде написано без него. Наверно неспроста.
Старый 11.12.2006, 14:57   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Кстати, не в тему вопрос но все же.

Есть ли какое нибудь отличие если в статическом методе написано
X++:
Static void blablabla()
{
}
или

X++:
client server Static void blablabla2()
{
}
Старый 11.12.2006, 15:04   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Logger Посмотреть сообщение
Есть ли какое нибудь отличие
Да.

Первый будет выполняться на сервере (если он есть)
Второй будет выполняться там, откуда его вызвали.

Читайте доку по ключевому слову Called from.
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 15:14   #7  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Cool
Цитата:
Сообщение от mazzy Посмотреть сообщение
Да.

Первый будет выполняться на сервере (если он есть)
Второй будет выполняться там, откуда его вызвали.

Читайте доку по ключевому слову Called from.
Да читал я доку. Только не нашел там ответа. Может пропустил что...
Мне всегда казалось, что по умолчанию код static метода выполняется там же где и вызвавший его код (если конечно явно не указано server или client)

А из ваших слов получается что static метод выполняется на сервере если не указано Client.
Или я вообще все перепутал...
Старый 11.12.2006, 15:14   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Не совсем верно - первый будет зависить от свойства RunOn класса
__________________
Axapta v.3.0 sp5 kr2
Старый 11.12.2006, 15:21   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AndyD Посмотреть сообщение
Не совсем верно - первый будет зависить от свойства RunOn класса
Даже если метод статический?
Просто день открытий...
__________________
полезное на axForum, github, vk, coub.
Старый 11.12.2006, 15:45   #10  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от mazzy Посмотреть сообщение
Даже если метод статический?
Мы же о статических и вели беседу
__________________
Axapta v.3.0 sp5 kr2
Старый 11.12.2006, 17:39   #11  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Послушайте а почему я не могу одобрить сообщение AndyD ?

Новые правила одобрения ? Подряд нельзя одобрять ?
Mazzy, если это не глюк то это неправильно

Мне кажется нужно иметь возможность одобрять подряд одного и того же участника.

Если это сделано как защита от накруток, то мне кажется все равно не спасет от недобросовестных участников.
Старый 11.12.2006, 17:52   #12  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
Цитата:
Сообщение от Logger Посмотреть сообщение
Новые правила одобрения ? Подряд нельзя одобрять ?
Mazzy, если это не глюк то это неправильно

Мне кажется нужно иметь возможность одобрять подряд одного и того же участника.

Если это сделано как защита от накруток, то мне кажется все равно не спасет от недобросовестных участников.
Надо ли включать персональный рейтинг участинка?

Т.е. придется еще кого-нить одного одобрить, прежде чем вернуться к AndyD.
Старый 11.12.2006, 18:29   #13  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от oip Посмотреть сообщение
Надо ли включать персональный рейтинг участинка?

Т.е. придется еще кого-нить одного одобрить, прежде чем вернуться к AndyD.
Об этом я догадался.
И написал что не согласен.
Думаю что неправильно так делать.
Ну да ладно.
Для AndyD и Mazzy репутацию вообще надо отключить. И так все ясно без рейтингов
Старый 11.12.2006, 15:33   #14  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
В общем проверил на примере -
Получается что если ничего не указано, то исполнятеся там как указно в свойствах класса RunOn.

А если в методе написано client server Static
то тогда выполняется там же где выполняется вызвавший код.

Теперь понятно почему кое где в коде встречалось
client server Static
Старый 13.12.2006, 13:02   #15  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Предложение не использовать свойство сервер в запросах к данным не имеет перспективы. По логике вещей, это имеет смысл делать в 3.0 только в случае 2-tier или Fat client. В противном случае запрос к БД все равно пойдет через сервер и вы заменяете явный вызов неявным. А в версии 4.0 есть только thin client.
Старый 13.12.2006, 13:08   #16  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,953 / 3230 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от EVGL Посмотреть сообщение
Предложение не использовать свойство сервер в запросах к данным не имеет перспективы. По логике вещей, это имеет смысл делать в 3.0 только в случае 2-tier или Fat client. В противном случае запрос к БД все равно пойдет через сервер и вы заменяете явный вызов неявным. А в версии 4.0 есть только thin client.
Нууу...
Вообще то в 2-tier (подозреваю что и в Fat client тоже) модификаторы client и Server не имеют смысла - они ни на что не влияют. Все и так выполняется на клиенте, т.к. сервера приложений, на котором мог бы выполняться код - нет. Так что все что мы тут говорили имеет смысл только для thin client.
(Про 4.0 не говорю - не знаю)
Старый 13.12.2006, 13:10   #17  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Верно. Про 2-tier я прогнал. Гипотетический выигрыш client против server в случае запросов к БД может быть только для fat client в 3.0.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX Sustained Engineering: SQL Server 2005 sp3 & SQL Server 2008 with Dynamics AX Blog bot DAX Blogs 0 12.02.2009 06:08
aEremenko: Поддержка Microsoft SQL Server 2008 Blog bot DAX Blogs 0 04.10.2007 23:21
axaptabuilder: How to setup Axapta batch server running as user defined windows service Blog bot DAX Blogs 0 12.04.2007 16:10
aEremenko: Нужно ли использовать секционирование в Microsoft SQL Server 2005 для DAX 3.0 Blog bot DAX Blogs 5 27.03.2007 09:37

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

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

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