angular + asp.net mvc

65 views
Skip to first unread message

Denis Kodua

unread,
May 29, 2016, 7:53:03 AM5/29/16
to dotnetconf
поясните пожалуйста (если можно на простых примерах) есть ли плюсы от совместного использования. 

Артём Мурадов

unread,
May 29, 2016, 12:17:30 PM5/29/16
to dotnetconf
По мне, так сама постановка вопроса не корректная. Определитесь сначала с архитектурой вашего проекта и какую роль в ней будет играть фронтенд, а какую бекенд. И только если вам необходим сложный фронтенд, то тогда выбирайте из существующих библиотек.
Если это только вопрос совместимости ангуляра и asp.net mvc, то они вполне могут работать друг с другом, но при этом сервер должен отвечать только за статику и данные, когда вся разметка должна генерироваться на клиенте. ИМХО в такой связке лучше использовать webapi, чем mvс, чтобы не было соблазна генерировать разметку на сервере, иначе можно получить того ещё монстра :)

воскресенье, 29 мая 2016 г., 13:53:03 UTC+2 пользователь denis kodua написал:

Kilovatiy Maksim

unread,
May 29, 2016, 12:53:25 PM5/29/16
to dotne...@googlegroups.com
Мы как раз используем связку WebApi, AngularJS

воскресенье, 29 мая 2016 г. пользователь Артём Мурадов написал:
> --
>
> ---
> Вы получили это сообщение, поскольку подписаны на группу "dotnetconf".
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес dotnetconf+...@googlegroups.com.
> Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
>

--
Sincerely,

Max Kilovatiy

Denis Kodua

unread,
May 29, 2016, 2:11:22 PM5/29/16
to dotnetconf
т.е. использовать хелперы, а на полученные хтмл контролы навернуть ангуляр - плохая идея?  

29 мая 2016 г., 20:53 пользователь Kilovatiy Maksim <max...@gmail.com> написал:

Артём Мурадов

unread,
May 29, 2016, 2:23:40 PM5/29/16
to dotnetconf
Думаю, это будет не оч хорошо, так как в таком случае логика отображения ваша будет размазана между серверным и клиентским кодом. 
Обычно, если решается вынести логику отображения на клиент, то сервер выступает исключительно как АПИ вашего бекенда, которое может быть использовано не только фронтендом, но и другими приложениями (мобильным, например).
В случае, если ваш сервер начинает думать о том, что будет на клиенте отрисовано, то непонятно тогда, зачем вам нужен тяжелый фронтенд.
Повторю ещё раз, определитесь с архитектурой вашего проекта, какие там будут модули, какой модуль за что отвечает, какие требования по безопасности\масштабированию\наличию многих типов клиентов и прочее, а когда эта схема будет готова, тогда уже думайте, из каких технологий\библиотек стряпать конкретные модули.
Ну, и принцип SRP никто не отменял, если за одну и ту же функцию (в вашем случае - отображение юзеру) будут отвечать несколько подсистем, то в итоге получите кашу. Особенно весело будет, когда для изменения каких-то чисто юзер-интерфейсных вещей надо будет звать фронтенд и бекенд разработчиков и синхронизировать их вручную :)

воскресенье, 29 мая 2016 г., 20:11:22 UTC+2 пользователь denis kodua написал:

Denis Kodua

unread,
May 30, 2016, 2:06:38 AM5/30/16
to dotnetconf
тогда выходит в связке angular + asp.net mvc - толком ничего от mvc не остается, view - нету, controller - это просто сервис, model - может не тронутой остается....

29 мая 2016 г., 22:23 пользователь Артём Мурадов <tym3...@gmail.com> написал:

Kilovatiy Maksim

unread,
May 30, 2016, 3:06:12 AM5/30/16
to dotne...@googlegroups.com
Да именно так и получается!

30 мая 2016 г., 11:06 пользователь Denis Kodua <denis...@gmail.com> написал:



--
Sincerely,

Max Kilovatiy

Артём Мурадов

unread,
May 30, 2016, 3:30:37 AM5/30/16
to dotnetconf
Уходит, по сути, только view, так как эту роль будет играть фронтенд. Остальное остается. Собственно, поэтому и лучше использовать webapi, так как там по сути view нету и оно заточено для использования как api :)

Kilovatiy Maksim

unread,
May 30, 2016, 3:41:30 AM5/30/16
to dotne...@googlegroups.com
Еще хочу добавить, что такая связка WebApi + AngularJs, актуальна для single page application.

30 мая 2016 г., 12:30 пользователь Артём Мурадов <tym3...@gmail.com> написал:
Уходит, по сути, только view, так как эту роль будет играть фронтенд. Остальное остается. Собственно, поэтому и лучше использовать webapi, так как там по сути view нету и оно заточено для использования как api :)
--

---
Вы получили это сообщение, поскольку подписаны на группу dotnetconf.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес dotnetconf+...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.



--
Sincerely,

Max Kilovatiy

Denis Kodua

unread,
May 30, 2016, 3:46:19 AM5/30/16
to dotnetconf
а если не SPA 

30 мая 2016 г., 11:41 пользователь Kilovatiy Maksim <max...@gmail.com> написал:

Чапаев

unread,
May 30, 2016, 4:22:21 AM5/30/16
to dotnetconf
все тут вам красиво написали, да забыли про овраги.
если например у вас крупное приложение, то страницы удобно формировать в  виде  maser-detail - то есть иметь мастер страницу для общего дизайна.
тут вы будете mvc  с контроллерами и экшенами применять  в полный рост - то есть помимо view  и контроллеров ангуляра заимеете view  и контроллеры mvc, что усложнить разработку.
плюс насколько команда хорошо владеет ангуляром? пророг вхождения высокий, разработка усложняется и удорожается во всех отношениях.

плюс до тестов вы доросли? тесты по ангуляру к tfs, teamcity прикрутить можно? или вы их просто игнорируете ?

и как вы определили, что вам  SPA приложение надо делать? в корпоративных приложениях пользы от него немного.

так что вам писали - что вы делаете ? почему SPA хотите?


воскресенье, 29 мая 2016 г., 19:17:30 UTC+3 пользователь Артём Мурадов написал:

Denis Kodua

unread,
May 30, 2016, 4:39:15 AM5/30/16
to dotnetconf
я просто хочу разобраться можно ли использовать эти две технологии вместе, что бы это не превратилось в нечто ужасное (делаю маленький проект, но будут и крупные)

30 мая 2016 г., 12:22 пользователь Чапаев <http...@gmail.com> написал:

--

Артём Мурадов

unread,
May 30, 2016, 1:50:13 PM5/30/16
to dotnetconf
>>если например у вас крупное приложение, то страницы удобно формировать в  виде  maser-detail - то есть иметь мастер страницу для общего дизайна.
тут вы будете mvc  с контроллерами и экшенами применять  в полный рост - то есть помимо view  и контроллеров ангуляра заимеете view  и контроллеры mvc, что усложнить разработку.

Не могу с этим согласиться, так как разрабатывая SPA никакие серверные генерилки интерфейса не нужны, какой бы большой проект не был. 
Если вы делаете не SPA, а что то другое, то зачем тогда писать на фронтенде много логики? Делайте все традиционным MVC и все дела. Обычно, в таких случаях, ничего сложнее JQuery не требуется. Хотя, мне приходилось делать монстров с мешаниной javascript и серверной разметки, и это обычно жизнь только усложняло. 

В итоге, всякие ангуляры\марионеты\бекбоны\реакты\дюрандалы имеет смысл использовать, если вы делаете SPA. Если же за рендеринг будет отвечать и сервер, и клиент, то получите мешанину кода. 


понедельник, 30 мая 2016 г., 10:39:15 UTC+2 пользователь denis kodua написал:

Alexander Zaytsev

unread,
May 30, 2016, 4:42:35 PM5/30/16
to dotnetconf
Артём, а как же ReactJS с его изоморфным JS, когда изначальную версию html генерит сервер?

https://reactjsnews.com/isomorphic-javascript-with-react-node

Так же, возможность генерить отображения на сервере нужна для клиентов, которые не умеют выполнять JS - всякие параноики (их меньшинство) и поисковые боты (вас нет в гугле?-вы не существуете).

Артём Мурадов

unread,
May 30, 2016, 5:00:19 PM5/30/16
to dotnetconf
Саша, привет!

Я с изоморфным js не работал. Честно, не знаю, насколько это применимо к аспнету. По поводу индексирования ботами да, ты прав, тут без сервера никуда (совсем забыл про это). Однако, это не всегда обязательное требование. Потому я и говорю, всё зависит от требований и архитектуры.

понедельник, 30 мая 2016 г., 22:42:35 UTC+2 пользователь Alexander Zaytsev написал:

Артур Терегулов

unread,
Jun 1, 2016, 5:52:26 PM6/1/16
to dotnetconf
В следующем аспнет заявлена поддержка серверного процесса, который будет рендерить изоморфные контролы 



вторник, 31 мая 2016 г., 0:00:19 UTC+3 пользователь Артём Мурадов написал:

Denis Kodua

unread,
Jun 2, 2016, 4:18:35 AM6/2/16
to dotnetconf
что есть изоморфные контролы? (яваскрипт)

2 июня 2016 г., 1:52 пользователь Артур Терегулов <slic...@gmail.com> написал:

Alexander Zaytsev

unread,
Jun 2, 2016, 4:43:33 AM6/2/16
to dotne...@googlegroups.com
По ссылке доходчего написано что это, будет начальный вид отрисовываться для Angular 2/ReaxtJS
Reply all
Reply to author
Forward
0 new messages