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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.12.2016, 09:04   #1  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
650 / 352 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Ну во-первых, RunBase много чего дает. Тот же диалог, прогресс-бар или запуск заданий.
Во-вторых, паттерн может быть уже реализован (см. RunBaseReport).
В-третьих, если нельзя сделать всем понятную заглушку, а нужно "четко следовать" стандартам, то здесь попахивает занудством и бессмыслицей.
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Почему, собственно я обязан поддерживать возможность сериализации, если она в данном конкретном случае мне не нужна?
Полностью поддерживаю Владимира и задаю вопрос, зачем делать то, что абсолютно не нужно. Потому что так надо? Или потому что другие не поймут? Опять же повторюсь:
Цитата:
Сообщение от dech Посмотреть сообщение
Даже если сменится программист, он вполне сможет понять, что автор не имел намерений сохранять что-либо в классе. Наоборот, сохранение параметров, которые затем затираются, лично на меня наводит легкий ступор.)))
__________________
// no comments
Старый 19.12.2016, 10:33   #2  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от dech Посмотреть сообщение
Ну во-первых, RunBase много чего дает. Тот же диалог, прогресс-бар или запуск заданий.
Во-вторых, паттерн может быть уже реализован (см. RunBaseReport).
В-третьих, если нельзя сделать всем понятную заглушку, а нужно "четко следовать" стандартам, то здесь попахивает занудством и бессмыслицей.

Полностью поддерживаю Владимира и задаю вопрос, зачем делать то, что абсолютно не нужно. Потому что так надо? Или потому что другие не поймут? Опять же повторюсь:
Судя по всему, обоснованные ответы, которые вы запросили вас неудовлетворяют. По факту они вам не нужны, все упирается в "зачем делать то, что абсолютно не нужно. Потому что так надо? Или потому что другие не поймут?".

Ответ: Как нужно - не делайте, делайте как вам нравится. Кому будет нужно - разберется и поправит. Не заморачивайтесь.
За это сообщение автора поблагодарили: dn (2).
Старый 19.12.2016, 11:24   #3  
eugene egorov is offline
eugene egorov
Участник
Аватар для eugene egorov
 
273 / 97 (4) ++++
Регистрация: 05.06.2002
Адрес: Москва
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Ответ: Как нужно - не делайте, делайте как вам нравится. Кому будет нужно - разберется и поправит. Не заморачивайтесь.
Отличный совет. Как человек прокопавший не один десяток тыщ строк Х++ рекомендую - делайте так! И я без работы не останусь
__________________
любитель портвейна и снов с прокисшей капустой в усах
За это сообщение автора поблагодарили: Sada (1).
Старый 19.12.2016, 11:53   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Судя по всему, обоснованные ответы, которые вы запросили вас неудовлетворяют.
Возможно, я что-то пропустил. Дайте, пожалуйста, ссылку на обоснование. Т.е. где указаны причины по которым надо делать так, а не иначе. Ну, или просто процитируйте.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
По факту они вам не нужны, все упирается в "зачем делать то, что абсолютно не нужно. Потому что так надо? Или потому что другие не поймут?".
По факту, я и пытаюсь получить обоснованный и аргументированный ответ на правильно понятый Вами вопрос.

Цитата:
Сообщение от DSPIC Посмотреть сообщение
Ответ: Как нужно - не делайте, делайте как вам нравится. Кому будет нужно - разберется и поправит. Не заморачивайтесь.
А КАК нужно-то? Точнее, не столько даже "как", сколько "почему именно ТАК"?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 19.12.2016, 12:22   #5  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Возможно, я что-то пропустил. Дайте, пожалуйста, ссылку на обоснование. Т.е. где указаны причины по которым надо делать так, а не иначе. Ну, или просто процитируйте.

По факту, я и пытаюсь получить обоснованный и аргументированный ответ на правильно понятый Вами вопрос.

А КАК нужно-то? Точнее, не столько даже "как", сколько "почему именно ТАК"?
Как нужно:
- паковать перменные в pack\unpack, использовать их в диалоге
- написать конструктор, с getLast() и перетереть сохраненные значение переменных, если предыдущее значение какой-то переменной

Обоснование
- поддержав сериализацию, вы не нарушаете правил RunBase Framework и следуете BestPractice
- класс сможет выполняться на сервере, в Batch даже если вам этого пока не нужно (может другим понадобится)
- вы полностью сохраняете универсальность класса, задавая нужное вам поведение отдельным конструктором.

Обоснуйте, почему вы "не хотите" сделать так?
Старый 19.12.2016, 12:57   #6  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Обоснование
- поддержав сериализацию, вы не нарушаете правил RunBase Framework и следуете BestPractice
- Отказ от поддержки сериализации НЕ нарушает правила RunBase FrameWork. Это один их штатных, предусмотренный самим FrameWork, способ реализации
- В Best Practices я не встречал упоминания об обязательности перекрытия pack/unpack. Ну, кроме обязательности перекрытия абстрактных методов из-за чего и возникает необходимость в заглушке. Но к Best Practices это не относится

Цитата:
Сообщение от DSPIC Посмотреть сообщение
- класс сможет выполняться на сервере, в Batch даже если вам этого пока не нужно (может другим понадобится)
- Класс и так выполняется на сервере. Это было в постановке задачи. RunOn = Server
- Batch не нужен и не понадобиться. Это также было в постановке задачи

Если Batch все-таки понадобиться, то объем модификаций при использовании заглушек и при затирании кеша будет сопоставим. Надо будет организовать "вырезание" из кеша тех переменных, которые не надо сохранять от тех, которые понадобятся для работы Batch. Там придется добавлять ряд переменных именно для Batch

Цитата:
Сообщение от DSPIC Посмотреть сообщение
- вы полностью сохраняете универсальность класса, задавая нужное вам поведение отдельным конструктором.
- Не понял этого тезиса. О чем идет речь?
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 19.12.2016 в 13:07.
Старый 19.12.2016, 13:06   #7  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от DSPIC Посмотреть сообщение
[U]
Обоснуйте, почему вы "не хотите" сделать так?
?
Старый 19.12.2016, 13:52   #8  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от DSPIC Посмотреть сообщение
Обоснуйте, почему вы "не хотите" сделать так?
По той причине, что я вынужден буду делать лишнюю и бессмысленную работу.

- Писать "лишний" код pack/unpack
- Инициализировать переменные, которые сразу после инициализации необходимо затирать (очищать) (getLast())

Т.е. делать "мусорную" работу. С этим можно смирится, если бы в этом был какой-то практический смысл. Но вот этого самого смысла я и не вижу
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 19.12.2016, 14:26   #9  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
По той причине, что я вынужден буду делать лишнюю и бессмысленную работу.

- Писать "лишний" код pack/unpack
- Инициализировать переменные, которые сразу после инициализации необходимо затирать (очищать) (getLast())

Т.е. делать "мусорную" работу. С этим можно смирится, если бы в этом был какой-то практический смысл. Но вот этого самого смысла я и не вижу
Я расцениваю ваше обоснование так: "не хочу". Ну так и не делайте. О всех нюансах вы в курсе, ответ/совет вам таки не нужен, как я предполагал.

Вам приходилось сдавать майкрософту ISV решения? Там куда больше спорных моментов из ряда "кому это нужно", правки занимали недели. Так принято, работа не бессмысленная и не мусорная - вам за неё платят, как минимум. Есть стандарт, принято ему следовать и не плодить антипатиерны. Еще раз - сделать можно так как вам хочется, кому нужно будет - переделает, тоже за деньги
Теги
как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axinthefield: Critical issue in SQL Server 2012 Service Pack 1 that could crash your SQL server Blog bot DAX Blogs 0 01.11.2013 01:11
emeadaxsupport: How to disable the Public Sector solution when using Microsoft Dynamics AX 2012 Feature Pack Blog bot DAX Blogs 0 07.08.2012 00:13
emeadaxsupport: Error when upgrading to AX 2012 Feature Pack: The UPDATE statement conflicted with the FOREIGN KEY constraint "FK_ModelElementData_HasModelId_LayerId" Blog bot DAX Blogs 0 20.07.2012 00:11
AX UK: Microsoft Dynamics AX 2009 Management Pack for SCOM 2007 Blog bot DAX Blogs 2 12.08.2009 09:08
chrisfie: Announcing the release of Project Portfolio Server 2007 Service Pack 2 (SP2) Blog bot DAX Blogs 0 24.07.2009 04:20
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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