|
![]() |
#1 |
Боец
|
Цитата:
Сообщение от Владимир Максимов
![]() Возможно, я что-то пропустил. Дайте, пожалуйста, ссылку на обоснование. Т.е. где указаны причины по которым надо делать так, а не иначе. Ну, или просто процитируйте.
По факту, я и пытаюсь получить обоснованный и аргументированный ответ на правильно понятый Вами вопрос. А КАК нужно-то? Точнее, не столько даже "как", сколько "почему именно ТАК"? - паковать перменные в pack\unpack, использовать их в диалоге - написать конструктор, с getLast() и перетереть сохраненные значение переменных, если предыдущее значение какой-то переменной Обоснование - поддержав сериализацию, вы не нарушаете правил RunBase Framework и следуете BestPractice - класс сможет выполняться на сервере, в Batch даже если вам этого пока не нужно (может другим понадобится) - вы полностью сохраняете универсальность класса, задавая нужное вам поведение отдельным конструктором. Обоснуйте, почему вы "не хотите" сделать так? |
|
![]() |
#2 |
Участник
|
Цитата:
- В Best Practices я не встречал упоминания об обязательности перекрытия pack/unpack. Ну, кроме обязательности перекрытия абстрактных методов из-за чего и возникает необходимость в заглушке. Но к Best Practices это не относится Цитата:
- Batch не нужен и не понадобиться. Это также было в постановке задачи Если Batch все-таки понадобиться, то объем модификаций при использовании заглушек и при затирании кеша будет сопоставим. Надо будет организовать "вырезание" из кеша тех переменных, которые не надо сохранять от тех, которые понадобятся для работы Batch. Там придется добавлять ряд переменных именно для Batch - Не понял этого тезиса. О чем идет речь?
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 19.12.2016 в 13:07. |
|
![]() |
#3 |
Боец
|
|
|
![]() |
#4 |
Участник
|
По той причине, что я вынужден буду делать лишнюю и бессмысленную работу.
- Писать "лишний" код pack/unpack - Инициализировать переменные, которые сразу после инициализации необходимо затирать (очищать) (getLast()) Т.е. делать "мусорную" работу. С этим можно смирится, если бы в этом был какой-то практический смысл. Но вот этого самого смысла я и не вижу
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
![]() |
#5 |
Боец
|
Цитата:
Сообщение от Владимир Максимов
![]() По той причине, что я вынужден буду делать лишнюю и бессмысленную работу.
- Писать "лишний" код pack/unpack - Инициализировать переменные, которые сразу после инициализации необходимо затирать (очищать) (getLast()) Т.е. делать "мусорную" работу. С этим можно смирится, если бы в этом был какой-то практический смысл. Но вот этого самого смысла я и не вижу Вам приходилось сдавать майкрософту ISV решения? Там куда больше спорных моментов из ряда "кому это нужно", правки занимали недели. Так принято, работа не бессмысленная и не мусорная - вам за неё платят, как минимум. Есть стандарт, принято ему следовать и не плодить антипатиерны. Еще раз - сделать можно так как вам хочется, кому нужно будет - переделает, тоже за деньги |
|
![]() |
#6 |
Участник
|
Цитата:
__________________
// no comments |
|
![]() |
#7 |
Боец
|
Цитата:
|
|
![]() |
#8 |
Участник
|
Вот с этого места поподробнее. О каком стандарте идет речь? Я же неоднократно указывал, что то, что я делал по Варианту 1 - это тоже стандарт. Стандарт, предусмотренный самим FrameWork. Просто этот подход используется нечасто из-за его не типичности (нестандартности самого подхода, а не реализации)
Ради интереса, сделайте поиск по перекрытым методам pack/unpack. Заглушки в этих методах встречаются довольно часто в разных стандартных классах. Но! Все они имеют RunOn = calledFrom, при этом неявно предполагая, что речь будет всегда идти о запуске на стороне клиента. Т.е. нет проблемы сериализации. Просто в данном конкретном случае "камнем преткновения" является RunOn = Server. Это как раз и есть то самое "бессмысленное и беспощадное" требование клиента, которое я вынужден сделать. Клиента не интересует надо/не надо. У него есть свой "стандарт" Вариант 1, описанный мной - это следование требованию клиента об установке RunOn = Server, но при этом выполняется отказ от сериализации. Еще раз подчеркиваю, отказ происходит стандартными способами, предусмотренными самим FrameWork ------------- Ответ на какой вопрос я хотел услышать, но так и не услышал Чем грозит отказ от сериализации при настройке RunOn = Server? Т.е. класс запускается на сервере, а форма диалога на клиенте без создания дубликатов. Происходит прямое "общение" формы на клиенте и обслуживающего его класса на сервере.
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... Последний раз редактировалось Владимир Максимов; 19.12.2016 в 15:02. |
|
Теги |
как правильно |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|