Я с хрома слез на ФФ обратно год назад примерно, ни разу не жалею. А вот у хрома сплошные фейлы то с отображением, то с падением, то с поведением. Так что попробуйте, как раз вы :)
Ну, по сути, конкретно то, что я тут описал используется исключительно для user-initiated действий. Push уведомления мы не реализовывавали пока, за ненадобностью.
омг. На клиенте вообще может не быть данных, в процессе расчетов могут быть использованы тысячи записей, которые через секунду могут быть изменены уже.
Ну, в простейшем случае — да. Но никто не мешает сделать разработчику так, например:
var errors = (from o in context.FormData where o.Value != null select string.Format("Error {0} must be null", o.Key)).ToList();
if (errors.Count > 0)
{
ExceptionHelper.Interactive(Guid.NewGuid(), "У вас тут ошибочка вышла" + errors.ToString(", "));
}
Не использовать исключения для (нормативного) управления потоком выполнения.
По сути, это реально исключительная ситуация, мы не выбираем ветки выполнения программы в зависимости от выброшенного исключения. Мы либо ничего не делаем, либо заново все пересчитаываем в следующем запросе
А как гарантировать, что данные между первой и второй транзакцией не менялись? (не блокируя их при этом)
Для этого делаются дополнительные проверки, окнечно, еще до того, как начать что-то делать
У нас такие действия возвращают много чего, не только подтверждения. Фактически, мы можем делать все что угодно с клиентом из такого действия, с помощью вот такого:
public void Execute(IFormContext<Order> context)
Внутри context как раз и есть методы, для управления клиентом и показа всяких штук. А вот данный метод как раз используется для неявного прерывания дествия.
По сути, это реально исключительная ситуация, мы не выбираем ветки выполнения программы в зависимости от выброшенного исключения. Мы либо ничего не делаем, либо заново все пересчитаываем в следующем запросе
Для этого делаются дополнительные проверки, окнечно, еще до того, как начать что-то делать
У нас такие действия возвращают много чего, не только подтверждения. Фактически, мы можем делать все что угодно с клиентом из такого действия, с помощью вот такого:
Внутри context как раз и есть методы, для управления клиентом и показа всяких штук. А вот данный метод как раз используется для неявного прерывания дествия.