powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Single page aplication
23 сообщений из 73, страница 3 из 3
Single page aplication
    #38934868
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Что мне мешает создать из ViewModel диалог? Используется "диалоговый" сервис commonDialogs, всё в лучших традициях.А, это сервис :) Понятно. Почему же ajax в отдельный сервис не вынесен "в лучших традициях"?
На фига ViewModel знать, откуда данные (локальные, или с сервера получены ajax-ом, или не ajax-ом)?Ну я не вижу в данном случае необходимости добавлять ещё одну абстракцию: писанины больше, пользы - ноль.

Но я не спорю, такое решение в других случаях может иметь право на жизнь.
...
Рейтинг: 0 / 0
Single page aplication
    #38934874
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
MVVM.На MVVM не тянет.Кстати по поводу "не тянет": если бы в данном коде велась работа непосредственно с HTML-элементами, тогда да, на MVVM бы это не тянуло. А тут тянет. :-)
...
Рейтинг: 0 / 0
Single page aplication
    #38934878
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAА вот кстати лучшие традиции Ajax calls относят к модели.Как мне кажется, там описывается ViewModel - класс, к которому биндится View.Там описывается и model, и view model, и view.

Ajax calls относятся к model, ровно как и другие "operations in your business domain". А к view model относится "data and operations on a UI".
...
Рейтинг: 0 / 0
Single page aplication
    #38934902
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу я понял, что ты тут самый самый специалист по SPA фреймворкам. Извини, что потревожил твои религиозные чувства.

Похоже, ты обиделся )
...
Рейтинг: 0 / 0
Single page aplication
    #38934920
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
А, это сервис :) Понятно. Почему же ajax в отдельный сервис не вынесен "в лучших традициях"?
На фига ViewModel знать, откуда данные (локальные, или с сервера получены ajax-ом, или не ajax-ом)?Ну я не вижу в данном случае необходимости добавлять ещё одну абстракцию: писанины больше, пользы - ноль.

Но я не спорю, такое решение в других случаях может иметь право на жизнь."Keeping the view model abstract in this way lets it stay simple, so you can manage more sophisticated behaviors without getting lost".

Опять приходим к тому, что у тебя ничего никогда не меняется, не усложняется, не расширяется... :)
...
Рейтинг: 0 / 0
Single page aplication
    #38934927
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
На MVVM не тянет.Кстати по поводу "не тянет": если бы в данном коде велась работа непосредственно с HTML-элементами, тогда да, на MVVM бы это не тянуло. А тут тянет. :-)view model ничего не должна знать о сервере и ajax, так же как и о HTML.
Так что пока не тянет :)
...
Рейтинг: 0 / 0
Single page aplication
    #38934952
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Ну я не вижу в данном случае необходимости добавлять ещё одну абстракцию: писанины больше, пользы - ноль.

Но я не спорю, такое решение в других случаях может иметь право на жизнь."Keeping the view model abstract in this way lets it stay simple, so you can manage more sophisticated behaviors without getting lost".

Опять приходим к тому, что у тебя ничего никогда не меняется, не усложняется, не расширяется... :)Ну менять источник данных в данном случае мне точно не придётся.

По поводу изменений - чем больше абстракций, тем больше кода придётся менять при изменении предметной области, скорее всего в таком случае изменения коснуться всех слоёв.

skyANAАлексей Кпропущено...
Кстати по поводу "не тянет": если бы в данном коде велась работа непосредственно с HTML-элементами, тогда да, на MVVM бы это не тянуло. А тут тянет. :-)view model ничего не должна знать о сервере и ajax, так же как и о HTML.
Так что пока не тянет :)Если бы это был десктоп, то я бы согласился. Но для Веб AJAX является единственным способом взаимодействия с сервером, поэтому данная независимость нам ничего не даёт.
...
Рейтинг: 0 / 0
Single page aplication
    #38934965
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КНу я понял, что ты тут самый самый специалист по SPA фреймворкам. Извини, что потревожил твои религиозные чувства.

Похоже, ты обиделся )Совсем нет. :-)
...
Рейтинг: 0 / 0
Single page aplication
    #38934969
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСовсем нет. :-)

ну слава Богу
...
Рейтинг: 0 / 0
Single page aplication
    #38934990
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПо поводу изменений - чем больше абстракций, тем больше кода придётся менять при изменении предметной области, скорее всего в таком случае изменения коснуться всех слоёв.

При чём тут "больше" абстракций? Ты так легко варьируешь этим понятием. Абстракций не надо ни больше, ни меньше, а ровно столько, чтобы решить простейшую задачу разделения ответственности. Не надо их лепить по принципу больше/меньше, много/мало. Есть определённые уровни, их всего 3: уровень изоляции модели, уровень вью-модели и уровень презентации. Чего ты там городишь, я не понимаю?

Кода как раз меньше придётся менять при изменении слоёв, так как у тебя полная, изолированная независимость. Хочешь наследуй контроллеры, вью-модели, фабрики, создавай изменяй их поведение, аггрегируй, выноси целые куски в отдельные компоненты (со строгим MVC-MVVM естественно).

Я работал с этим, это очень гибко и удобно. Никаких 100500 абстракций, которые ты тут навыдумывал. Не надо боятся абстракций, надо их применять.

Знаю, тебе не интересно, но ты бы всё же посмотрел на какой-нибудь популярный фреймворк, да пусть даже Ангуляр, хотя бы для общего развития. Неужели не интересно?
...
Рейтинг: 0 / 0
Single page aplication
    #38935005
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КПо поводу изменений - чем больше абстракций, тем больше кода придётся менять при изменении предметной области, скорее всего в таком случае изменения коснуться всех слоёв.

При чём тут "больше" абстракций? Ты так легко варьируешь этим понятием. Абстракций не надо ни больше, ни меньше, а ровно столько, чтобы решить простейшую задачу разделения ответственности. Не надо их лепить по принципу больше/меньше, много/мало. Есть определённые уровни, их всего 3: уровень изоляции модели, уровень вью-модели и уровень презентации. Чего ты там городишь, я не понимаю?Ну представь, надо добавить поле в БД и форму редактирования, а у тебя данная сущность представлена разными классами в разных слоях: DAL, DTO и VM, свойство придётся добавлять в трёх классах вместо одного.
...
Рейтинг: 0 / 0
Single page aplication
    #38935031
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
"Keeping the view model abstract in this way lets it stay simple, so you can manage more sophisticated behaviors without getting lost".

Опять приходим к тому, что у тебя ничего никогда не меняется, не усложняется, не расширяется... :)Ну менять источник данных в данном случае мне точно не придётся.

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

А если например потребуется написать другую морду к этому же API? Мобильную к примеру и респонсив, и тоже на JavaScript?
Предметная область не изменилась, а изменения всё равно коснутся "всех слоёв" :)

Алексей КskyANAпропущено...
view model ничего не должна знать о сервере и ajax, так же как и о HTML.
Так что пока не тянет :)Если бы это был десктоп, то я бы согласился. Но для Веб AJAX является единственным способом взаимодействия с сервером, поэтому данная независимость нам ничего не даёт.Не единственным.

Плюс завтра попросят добавить поддержку offline режима и IndexedDB. Хотя это же опять не про тебя :)
...
Рейтинг: 0 / 0
Single page aplication
    #38935038
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНу представь, надо добавить поле в БД и форму редактирования, а у тебя данная сущность представлена разными классами в разных слоях: DAL, DTO и VM, свойство придётся добавлять в трёх классах вместо одного.

А вот и нет. Если ты добавишь поле, и у тебя не генерится форма на основе метамодели, которую легко можно запрашивать через тот же REST при желании, или без мета, тебе в любом случае надо добавить его в презентацию (в HTML), и этого в приницпе будет достаточно, так как вью-модель работает поверх модели, полученной из REST, ничего не поменяется, разве что если с этим полем не будет связана дополнительная логика, воможно слой валидации надо будет расширить. Но это в любом случае надо будет сделать, только тут изменения минимальны, практически ты трогаешь только то, что действительно надо изменить, а инфраструктуру не трогаешь, ничего не переколбашиваешь. Так как у каждого слоя чёткая область ответственности, прописывание всех полей поимённо в каждом слое обычно не требуется, ты наследуешь и агрегируешь, пользуешься метамоделью и...

и не описываешь набор колонок прямо в коде, как это сделано у тебя (очень, очень плохо).
...
Рейтинг: 0 / 0
Single page aplication
    #38935041
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Ну менять источник данных в данном случае мне точно не придётся.

По поводу изменений - чем больше абстракций, тем больше кода придётся менять при изменении предметной области, скорее всего в таком случае изменения коснуться всех слоёв.Ну скорее всего всех. Но сделать это можно будет параллельно (совместная разработко, о которой уже упоминали).У нас контора маленькая, разработчики делятся по предметной области.
skyANAА если например потребуется написать другую морду к этому же API? Мобильную к примеру и респонсив, и тоже на JavaScript?
Предметная область не изменилась, а изменения всё равно коснутся "всех слоёв" :)А вот и нет. :-)

Мы обсуждаем клиентскую HTML+JS часть. Серверная WebAPI часть тут и так есть, она останется без изменений.
skyANAАлексей Кпропущено...
Если бы это был десктоп, то я бы согласился. Но для Веб AJAX является единственным способом взаимодействия с сервером, поэтому данная независимость нам ничего не даёт.Не единственным.

Плюс завтра попросят добавить поддержку offline режима и IndexedDB. Хотя это же опять не про тебя :)Да, это не про меня. :-)

Таких требований на настоящий момент у нас нет и не планируются.
...
Рейтинг: 0 / 0
Single page aplication
    #38935050
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КНу представь, надо добавить поле в БД и форму редактирования, а у тебя данная сущность представлена разными классами в разных слоях: DAL, DTO и VM, свойство придётся добавлять в трёх классах вместо одного.

А вот и нет. Если ты добавишь поле, и у тебя не генерится форма на основе метамодели, которую легко можно запрашивать через тот же REST при желании, или без мета, тебе в любом случае надо добавить его в презентацию (в HTML), и этого в приницпе будет достаточно, так как вью-модель работает поверх модели, полученной из REST, ничего не поменяется, разве что если с этим полем не будет связана дополнительная логика, воможно слой валидации надо будет расширить. Но это в любом случае надо будет сделать, только тут изменения минимальны, практически ты трогаешь только то, что действительно надо изменить, а инфраструктуру не трогаешь, ничего не переколбашиваешь. Так как у каждого слоя чёткая область ответственности, прописывание всех полей поимённо в каждом слое обычно не требуется, ты наследуешь и агрегируешь, пользуешься метамоделью и...

и не описываешь набор колонок прямо в коде, как это сделано у тебя (очень, очень плохо).Я не сторонник генерации форм по метаданным.
...
Рейтинг: 0 / 0
Single page aplication
    #38935052
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

Вот, кстати, совершенно свежий пример из опыта. В чужом проекте, которого до селе я в глаза не видел попросили добавить 2 поля и кнопку на форму (поле, чекбокс и кнопка), с логикой: если чекбокс нажат, поле разрешено изменять, если отжат поле запрещено изменять и оно очищается, кнопка работает только когда поле заполнено, и отправляет данные в REST.

Так как это Ангуляр, я чуть ли не с закрытыми глазами нашёл эту форму, так как у ангуляров структура типичная, без всяких больных фантазий, открыл HTML, добавил поля: два инпута и один баттон, прибиндил их, из REST эти поля уже приходят, и также уходят, ничего трогать не пришлось, и строчка в контроллер для логики UI (очищение значения text при изменении поля bool). Если надо, можно было бы в слой валидации добавить логику. Совершенно чётко всё разложено по феншую, никто никуда не лезет, контроллер вообще не знает как отправляются данные и куда, они просто сохраняются, а как отвечает модель, и модели пофиг что там сохраняется, она лишь принимает данные и отправляет, всё работает как часы, вся доработка заняла 25 минут вместе с доставанием проекта из репы и заливкой коммита. Чудеса!
...
Рейтинг: 0 / 0
Single page aplication
    #38935056
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

А если бы в репо лежало нечто похожее на то, что ты привёл, я бы отказался от каких-либо действий, так как ХРЕН ЕГО ЗНАЕТ как это работает, как оно связано, и на что может повлиять любое изменение. Нафиг надо такое счастье, вот кто это УГ писал, тот пусть и разгребает его, как никак, это теперь незаменимый разработчик
...
Рейтинг: 0 / 0
Single page aplication
    #38935080
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей К,

Вот, кстати, совершенно свежий пример из опыта. В чужом проекте, которого до селе я в глаза не видел попросили добавить 2 поля и кнопку на форму (поле, чекбокс и кнопка), с логикой: если чекбокс нажат, поле разрешено изменять, если отжат поле запрещено изменять и оно очищается, кнопка работает только когда поле заполнено, и отправляет данные в REST.

Так как это Ангуляр, я чуть ли не с закрытыми глазами нашёл эту форму, так как у ангуляров структура типичная, без всяких больных фантазий, открыл HTML, добавил поля: два инпута и один баттон, прибиндил их, из REST эти поля уже приходят, и также уходят, ничего трогать не пришлось, и строчка в контроллер для логики UI (очищение значения text при изменении поля bool). Если надо, можно было бы в слой валидации добавить логику. Совершенно чётко всё разложено по феншую, никто никуда не лезет, контроллер вообще не знает как отправляются данные и куда, они просто сохраняются, а как отвечает модель, и модели пофиг что там сохраняется, она лишь принимает данные и отправляет, всё работает как часы, вся доработка заняла 25 минут вместе с доставанием проекта из репы и заливкой коммита. Чудеса!Ты не поверишь, в моём случае всё будет точно так же. :-)
...
Рейтинг: 0 / 0
Single page aplication
    #38935092
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТы не поверишь, в моём случае всё будет точно так же. :-)

ну а чего боишься тогда этих чёртовых обстракций?
...
Рейтинг: 0 / 0
Single page aplication
    #38935138
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Ну скорее всего всех. Но сделать это можно будет параллельно (совместная разработко, о которой уже упоминали).У нас контора маленькая, разработчики делятся по предметной области.
skyANAА если например потребуется написать другую морду к этому же API? Мобильную к примеру и респонсив, и тоже на JavaScript?
Предметная область не изменилась, а изменения всё равно коснутся "всех слоёв" :)А вот и нет. :-)

Мы обсуждаем клиентскую HTML+JS часть. Серверная WebAPI часть тут и так есть, она останется без изменений.Ты не понял.

В JS у нас есть model, которая инкапсулирует в себе все Ajax calls (IndexedDB calls, offline calls). Это набор js-"классов".
Я беру этот код и просто использую в другой HTML+JS морде без изменений.

А в твоём случае нужный код надо выдирать из view model и писать на его базе новую view model. Да и почему view model?
Новую морду может быстрее и проще реализовать используя другой MV* подход, не MVVM.

"Серверная WebAPI часть" в обоих случаях "тут и так есть, она останется без изменений".
...
Рейтинг: 0 / 0
Single page aplication
    #38935151
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
У нас контора маленькая, разработчики делятся по предметной области.
пропущено...
А вот и нет. :-)

Мы обсуждаем клиентскую HTML+JS часть. Серверная WebAPI часть тут и так есть, она останется без изменений.Ты не понял.

В JS у нас есть model, которая инкапсулирует в себе все Ajax calls (IndexedDB calls, offline calls). Это набор js-"классов".
Я беру этот код и просто использую в другой HTML+JS морде без изменений.Ок.
skyANAА в твоём случае нужный код надо выдирать из view model и писать на его базе новую view model.Да, если случится что-то невероятное, то придётся. Но чудес не бывает, невероятное не случится. :-)
...
Рейтинг: 0 / 0
Single page aplication
    #38935152
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей КТы не поверишь, в моём случае всё будет точно так же. :-)

ну а чего боишься тогда этих чёртовых обстракций? Я один раз нагородил абстракций, разгребал потом. Больше не хочу.
...
Рейтинг: 0 / 0
Single page aplication
    #38935299
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Ты не понял.

В JS у нас есть model, которая инкапсулирует в себе все Ajax calls (IndexedDB calls, offline calls). Это набор js-"классов".
Я беру этот код и просто использую в другой HTML+JS морде без изменений.Ок.
skyANAА в твоём случае нужный код надо выдирать из view model и писать на его базе новую view model.Да, если случится что-то невероятное, то придётся. Но чудес не бывает, невероятное не случится. :-)Помнится достаточно недавно за репозиторий спорили. Так что-то кроме SQL Server было для тебя невероятным :) Не зарекайся...
...
Рейтинг: 0 / 0
23 сообщений из 73, страница 3 из 3
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Single page aplication
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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