powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: т.н. "бизенес-правила" во вью
43 сообщений из 43, показаны все 2 страниц
MVC: т.н. "бизенес-правила" во вью
    #37851744
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальная практика реализаций т.н. предпринимательских правил (всякий раз ржу с названия :) ) - регистрация обработчиков событий конкретного вью
При этом иеем небольшой набор правил: если значение поля А = "ляляля" - тут читаем, тут не читаем! тут рыбу заворачивали:

- при изменении поля скрывать/отображать другие поля
- при изменении поля активировать/деактивировать другие поля
- при изменении поля загрузить в селект новый список с сервера
- при изменении поля какскадно загрузить в селекты новые списки с сервера основываясь на значении предыдущего селекта
- ....

все нормально работает когда заполняем поля вью.
Но когда мы прибиндили данные существующей модели - встает вопрос - а как же нам привести контролы во вью в состояния отвечающие "предпринимательским правилам" (простите немогу не поиздеваться :) ) ?
если мы начнем вручную генерировать псевдо события всех элементов последовательно - начнется такой шорох в DOM с генерацией кучи событий и зменении состояний элементов с возможной загрузкой данных с сервера (хотя загружать их уже и не нужно - мы их уже прибиндили!)

какие есть лутшие практики в этом деле?
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37852916
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spвстает вопрос - а как же нам привести контролы во вью в состояния отвечающие "предпринимательским правилам" (простите немогу не поиздеваться :) ) ?
если мы начнем вручную генерировать псевдо события всех элементов последовательно - начнется такой шорох в DOM с генерацией кучи событий и зменении состояний элементов с возможной загрузкой данных с сервера (хотя загружать их уже и не нужно - мы их уже прибиндили!)

Ничего не понятно. Какие контролы, события и состояний элементов в MVC?
Бизенес-правилам не место во вью.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37852962
Фотография OracleLover
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вью должно быть максимально глупым
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853079
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jQuery.live. Логику писать в отдельном js файле.
js файл подключить к нужной странице.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853091
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если речь о ASP.NET MVC, а не о попытке MVC на ASP.NET WebForm
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853092
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давайте по-сути:
не столь важно где (в некоторых фреймворках вью это одновременно и контроллер) - пусть будет как в армии - не N самолетов а К :)) пусть будет в контроллере!
Так теперь легче понять?
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853105
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонНичего не понятно. Какие контролы, события и состояний элементов в MVC?
Бизенес-правилам не место во вью.

Что непонятно?
спрашивайте конкретней. Не думаю, что вы не знаете что такое контролы и что у них бывают события?
Т.е. Вы предлагаете никак не напрягать лицо и пусть юзер выбирает и клацает на форме всеми педальками как хочет - а при отправке на сервер како-ето звено произведет валидацию и выкинет юзеру петицию с правилами клацания на всех пимпочках формы???
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853109
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79jQuery.live. Логику писать в отдельном js файле.
js файл подключить к нужной странице.

вопрос про валидацию по ходу заполнения не стоит!!!!
Вопрос стоит как в зависимости от сохраненных уже на сервере данных, представленных моделью, отобразить элементы вью в соответствии с "предпринимательскими правилами" - тут читаем, тут не читаем, тут рыбу заворачивали!
Так понятней проблема?
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853175
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spVar79jQuery.live. Логику писать в отдельном js файле.
js файл подключить к нужной странице.

вопрос про валидацию по ходу заполнения не стоит!!!!
Вопрос стоит как в зависимости от сохраненных уже на сервере данных, представленных моделью, отобразить элементы вью в соответствии с "предпринимательскими правилами" - тут читаем, тут не читаем, тут рыбу заворачивали!
Так понятней проблема?
Я не имел в виду валидацию.
Если юзер в радиобоксе указывает что у персоны есть дети, то должен отобразится раздел, в котором можно добавлять детей, если указал что нет, то раздел скрывается, при каждом щелчке можно как отправлять запрос на сервер, так и не отправлять, а учитывать логику в JavaScript-файле для этой страницы.
Вижу такие способы:
1) JavaScript-файл
2) RenderPartial - во вью RenderPartial думать рендерить раздел с детьми или не рендерить.
3) рендерить или не рендерить- определять во вью самой страницы.
4) 2+3 варианты вместе.
5) 1+2+3 варианты вместе.

логику view (логику отображения) логично во вью и реализовывать, причем для разных клиентов (мобылы, компутеры, telnet клиет) можно писать разные вью с разной логикой.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853192
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

Да проблема не нова. Был сделан единственный вариант начальной загрузки страницы. Потом понадобилось загружать в разных конфигурациях в зависимости от ранее введенных значений. Если это не предусмотреть и всё захардкодить, то действительно много придется доделывать:) Но всё нужно готовить на сервере, иначе еще раз придется переделывать :)
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853262
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spНе думаю, что вы не знаете что такое контролы и что у них бывают события?

Не ясно о каких контрола идет речь. Как вариант могу представить что, речь о контролах из вебформ, бо у вью в MVC - нет этих извратов.

spТ.е. Вы предлагаете никак не напрягать лицо и пусть юзер выбирает и клацает на форме всеми педальками как хочет - а при отправке на сервер како-ето звено произведет валидацию и выкинет юзеру петицию с правилами клацания на всех пимпочках формы???
Я пока ничего не предлагал, по причине того что не вник полностью в это - образное описание проблемы. Все зависит от конкретной задачи, если вы не в поиске универсальных решений ). Давайте больше конкретики, желательно с примерами кода.

spв некоторых фреймворках вью это одновременно и контроллер

В топку такие фреймворки. Вью не может быть контроллером по определению, в противном случае это не MVC.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853307
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp- при изменении поля скрывать/отображать другие поля
- при изменении поля активировать/деактивировать другие поля
- при изменении поля загрузить в селект новый список с сервера
- при изменении поля какскадно загрузить в селекты новые списки с сервера основываясь на значении предыдущего селекта


Вариант 1: Все елементы уже на форме, играемся hidden visible append
Вариант 2: AJAX подгрузка элементов (целых вью) дабы избежать - "шорох в DOM".
Вариант 3: Больше внимания уделять в планировании гуя, избегать комплексных, перегруженных вью. Это и для "энд юзера" полезней.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853541
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонsp- при изменении поля скрывать/отображать другие поля
- при изменении поля активировать/деактивировать другие поля
- при изменении поля загрузить в селект новый список с сервера
- при изменении поля какскадно загрузить в селекты новые списки с сервера основываясь на значении предыдущего селекта


Вариант 1: Все елементы уже на форме, играемся hidden visible append
Вариант 2: AJAX подгрузка элементов (целых вью) дабы избежать - "шорох в DOM".
Вариант 3: Больше внимания уделять в планировании гуя, избегать комплексных, перегруженных вью. Это и для "энд юзера" полезней.

Еще раз: имеем уже сформированную форму со всеми контролами. Имеем модель с данными.
Надо привести форму в адекватное данным состояние - где надо - задизейблить, где надо - спрятать контролы, где надо - не знаю...станцевать гопак..
Делать отдельно функционал для приведения формы в надлежащее состояние в зависимости от данных и дублировать функционал в контроллере/вью?

Избежать комплексных вью не удастся - сам документ товарищи составители документа должны тогда поменять постановку задачи и все свои тарифные планы - им проще меня убить! :)
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853546
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонВ топку такие фреймворки. Вью не может быть контроллером по определению, в противном случае это не MVC.
это вы сгоряча :) они есть и успешные и применяются по своему назначению :)
В основном это клиентские фреймворки - MVC.js, Bacbone.js, Knockout.js, Spring.js и очень много других :)
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853642
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp Knockout.js
это MVVM фреймворк
ответ дали выше
sp так и не понятно какая технология используется WebForm или .NET MVC
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853645
Var79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть еще такая штука как DataAnnotations можно сделать на подобе этого, дописать свои куски JS
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853733
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Var79sp Knockout.js
это MVVM фреймворк
ответ дали выше
sp так и не понятно какая технология используется WebForm или .NET MVC

Backbone.js - клиентский M(v)C
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853753
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spэто вы сгоряча :) они есть и успешные и применяются по своему назначению :)

Напротив, MVC это паттерн , который принципиально не меняется, и логически не зависит от фреймворка. Пока вы, для себя, четко не выведите кто есть кто (model view controller) - толку не будет.
Это похоже на попытку натянуть MVC, на вашу логику, которая с ним не стыкуется.

JavaScriptMVC

spДелать отдельно функционал для приведения формы в надлежащее состояние в зависимости от данных и дублировать функционал в контроллере/вью?

Делать это на сервере - в котроллере, и подавать не клиента в нужной форме на AJAX.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853775
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонspэто вы сгоряча :) они есть и успешные и применяются по своему назначению :)

Напротив, MVC это паттерн , который принципиально не меняется, и логически не зависит от фреймворка. Пока вы, для себя, четко не выведите кто есть кто (model view controller) - толку не будет.
Это похоже на попытку натянуть MVC, на вашу логику, которая с ним не стыкуется.

JavaScriptMVC

spДелать отдельно функционал для приведения формы в надлежащее состояние в зависимости от данных и дублировать функционал в контроллере/вью?

Делать это на сервере - в котроллере, и подавать не клиента в нужной форме на AJAX.

Принцип действия у них немного разный - вы на сервере имея модель - генерите вью с соответствующими состояниями контролов, а тут имеем исходное состояние вью + модель -> надо контролы во вью привести в консистентное состояние + еще по ходу работы с вью нужно в обработчиках событий дублировать этот же функционал - а этого как раз и не хочецца делать!
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853808
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spПринцип действия у них немного разный

Дык а зачем вы все пытаетесь пробивать, свой клиентский мвц с JS FW, в ветке, которая больше server side?
На форумах JS скучно? :)
Вроде клиентские мвц выросли из серверных, но специфика все равно другая.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37853955
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37854027
Starlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонspПринцип действия у них немного разный

Дык а зачем вы все пытаетесь пробивать, свой клиентский мвц с JS FW, в ветке, которая больше server side?


Вот кто по настоящему пробивает :) Knockout.js уже входит в пакет MVC4. Попробовал на формах, в принципе, наверное, удобно в случае, когда отрисовываешь один раз разметку (view), например, таблицу. Потом при обновлении таблицы аякс запросами загружаешь на клиент массив данных (model) и привязываешь к таблице. Код привязки писать не надо.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37854101
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПарамонspПринцип действия у них немного разный

Дык а зачем вы все пытаетесь пробивать, свой клиентский мвц с JS FW, в ветке, которая больше server side?
На форумах JS скучно? :)
Вроде клиентские мвц выросли из серверных, но специфика все равно другая.

потому что это одна из составных частей ASP.NET!
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37854105
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,

в разделе JavaScript - обсуждают возможности языка но не шаблоны проектирования
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37854108
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,

забыл добавить :)

...шаблоны проектирования относящиеся и работающие в ASP.NET
если бы я использовал PHP - я б туда написал!
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37854449
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

Да мне без разницы, просто сабж можно указать более понятно. Типа "Knockout.js MVC и бизенес-правила на клиенте" :)
А что толку вам например от ASP MVC ?
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37854457
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StarlexВот кто по настоящему пробивает :) Knockout.js уже входит в пакет MVC4.
По вашему теперь это часть MS Asp.net FW? OK :)
Кста глянул ролик. Не нравятся мне декларативные примочки, но хз, может не созрел :)
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37857727
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,

А как у вас во фреймворке устанавливается начальное состояние элементов?
У вас же в microdoft MVC там шаблоны T4?
Да и наверняка использует народ аякс для подгрузки списков динамически на клиенте!?

Как вы устанавливаете контролы в состояние соответствующее правилам??
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37857933
sp..
Как вы устанавливаете контролы в состояние соответствующее правилам??

Код: javascript
1.
2.
$addHandler(element, eventName, handler, autoRemove);
$removeHandler(element, eventName, handler);
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37857950
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использует народ аякс,

почитайте вопрос - обработчики по ходу работы с вью - не интересуют - интересует как установить все контролы в адекватное состояние когда доставили модель с сервера!
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37858426
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

В MS MVC, вью приходит с сервера в максимально адекватном состоянии, дальше на него цепляются JS обработчики.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37858543
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамонsp,
В MS MVC, вью приходит с сервера в максимально адекватном состоянии, дальше на него цепляются JS обработчики.

ну а на сервере как добиваются адекватного состояния?
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37858698
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spну а на сервере как добиваются адекватного состояния?
К чему абстрактные беседы? Приведите конкретный пример задачи (в микро варианте)
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37860005
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,

Ну пусть будет модель

Person
-----------
id,
ФИО,
Рол,
Замужем,
Служил,
СтранаID,
РегионID,
ОбластьID,
ГородID,
адрес
..........


в форме необходимо соблюсти правила
- если Пол - женский, активируем чекбокс "Замужем", иначе деактивируем его
- если Пол - мужской, активируем чекбокс "Служил", иначе деактивируем его
- РегионID, ОбластьID, ГородID - должны быть заполнены только значениями, относящимися к вышестоящему элементу (т.е. в списке регионов должны быть только регионы указанной страны, в областях - области указанного региона и в городах - города только указанной области)

ну для начала вот так как-то
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37860006
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,
упс Рол - это Пол
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37861477
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Type.registerNamespace("MyCompany");
// Person :: ctor
MyCompany.Person = function MyCompany$Person(View) {
    this.view = View;
};
// Person :: members
function MyCompany$Person$get_FullName() {
    if(sp.approve())
        return $dom.getInputValue(this.view.FullName());
    return null;
}
function MyCompany$Person$set_FullName() {
    // Rules
    // ...
    $dom.setInputValue(this.view.FullName());
}
// Person :: prototype
MyCompany.Person.prototype =
{
    getFullName: MyCompany$Person$get_FullName,
    setFullName: MyCompany$Person$set_FullName
}
// Person :: class
MyCompany.Person.registerClass("MyCompany.Person");
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37861490
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
spв форме необходимо соблюсти правила
- если Пол - женский, активируем чекбокс "Замужем", иначе деактивируем его
- если Пол - мужской, активируем чекбокс "Служил", иначе деактивируем его
- РегионID, ОбластьID, ГородID - должны быть заполнены только значениями, относящимися к вышестоящему элементу (т.е. в списке регионов должны быть только регионы указанной страны, в областях - области указанного региона и в городах - города только указанной области)

ну для начала вот так как-то

1. получаем форму с дефолтными установками.
2. привязываем эвенты (jQuery как вариант).

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$('input[name=Gender]').change(function() {
     if(this.value == 0)
         $('#IsMarried').attr('disabled', false);
     else
         // остальные условия .....
});

$('#RegionID').change(function(){
   // подгрузка с сервера
    $.get('/registration/areas?regionid=' + this.value, function(data) {
       // заполняем области ......
    });
});



В таком стиле, в общем.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37861496
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее, "бизнес-правила" во вью - это уже presentation logic, бо завтра это будет мобильная аппликация, но бизнес-логика не изменятся, а вот представление да.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37861511
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, не пробовал натягивать мвц шаблон, на эвент драйвен интерфейсную логику.
Имхо нет смысла.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37863504
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон1. получаем форму с дефолтными установками.
2. привязываем эвенты (jQuery как вариант).

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$('input[name=Gender]').change(function() {
     if(this.value == 0)
         $('#IsMarried').attr('disabled', false);
     else
         // остальные условия .....
});

$('#RegionID').change(function(){
   // подгрузка с сервера
    $.get('/registration/areas?regionid=' + this.value, function(data) {
       // заполняем области ......
    });
});



В таком стиле, в общем.

я же писал, что логи обработки изменений понятна и не интересна!
Интересует ситуация когда с сервера пришла модель и надо установить состояние вью в соответствии с правилами (и при биндинге данных модели не возникает событий onchange)
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37864094
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

Генерация разметки?
Как вариант:
Код: html
1.
<input type="checkbox" name="IsMarried" @(Gender == 0 ? "disabled" : "") />


Или HTML хелперы.
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37868026
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Парамон,

а потом еще и в обработчиках логика дублируется?
...
Рейтинг: 0 / 0
MVC: т.н. "бизенес-правила" во вью
    #37868290
Парамон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp,

Можно постоянно гонять вью на сервер, с прелоадером, либо выставлять все параметры onload на клиенте.
По ситуации.
...
Рейтинг: 0 / 0
43 сообщений из 43, показаны все 2 страниц
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: т.н. "бизенес-правила" во вью
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]