Отправка всего объекта только для обновления статуса? - PullRequest
2 голосов
/ 26 января 2012

Страница Aspx.

много полей в форме

мы представляем все поля в объекте JS.

мы только меняем статус записи в пользовательском интерфейсе на «0». (в интерфейсе)

нам нужно сохранить новый статус в БД.


вопрос:

мы должны

1) заполнить все поля для объектов, отправить весь объект на сервер через ajax и просмотреть его поля на сервере, чтобы увидеть, что изменилось?

или

2) создать специальную команду для изменения статуса только и отправить команду с ajax на сервер?

первый более OOP'ed, но я не нахожу никакой логики при отправке всех полей на сервер - просто для изменения статуса ...

приписка

это происходит из-за спора между мной и коллегой

Я предложил второй. он, первый

Ответы [ 5 ]

1 голос
/ 26 января 2012

Если вы думаете об этом с точки зрения CQS / CQRS (разделение командного запроса / разделение ответственности командного запроса), вы бы выбрали второй подход (ваш подход), потому что вы описываете конкретную команду, которую вы 'переиздание и обработка в вашем коде.Ваша команда, которую вы отправляете, содержит всю информацию, необходимую для того, чтобы ваша система что-то сделала (императивный тон).Таким образом, у вас есть код, выполняющий отдельные обязанности, что приводит к более читабельному и более понятному коду.

Я бы поддержал вас в вашем аргументе.

Удачи!

0 голосов
/ 26 января 2012

Как предлагается в другом месте, вы можете использовать универсальный обработчик (.ashx), веб-сервис (.asmx) или даже открытый метод с тегом WebMethod на рассматриваемой странице.В этом случае вам нужен простой Ajax-вызов (не путать с Microsoft Ajax Toolkit).

См., Например, Метод публикации jQuery .Это довольно просто сделать такой звонок.Для классического проекта веб-форм я лично выбрал бы ashx или asmx поверх тегов WebMethod внутри вашего aspx.Для MVC есть больше опций (JsonResult).

Одна из серьезных проблем, с которыми я сталкиваюсь с ASP.Net WebForms, - это состояние просмотра и огромное количество данных, передаваемых по каждому запросу.Лучше иметь простые / легкие обработчики или веб-сервисы, предназначенные для JS.

0 голосов
/ 26 января 2012

Я бы создал универсальный обработчик (.ashx) и вызывал его через Ajax, когда пользователь решил изменить статус.Вам нужно будет только передать идентификатор объекта и новый статус.

ООП хорош во многих вещах, но быстрое / легкое редактирование на самом деле не является одним из них.

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

Если нет, не беспокойтесь об этом.Если это так, подумайте, как вы могли бы это упростить.

0 голосов
/ 26 января 2012

Я бы выбрал альтернативу, которая меньше работает.С архитектурной точки зрения это не имеет большого значения.

0 голосов
/ 26 января 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...