Я использую ASP.NET MVC / Web API, и теперь я начинаю использовать Angular, но я не знаю, как правильно их смешивать.
После того, как я использую Angular, будут ли концепции стороны MVC-сервера по-прежнему иметь какое-либо значение? Или мне следует строго использовать веб-API исключительно для получения данных для HTTP-вызовов angular?
Любые советы, которые у вас есть для парня из ASP.NET MVC, переходящего на Angular, будут полезны.
asp.net-mvc
angularjs
asp.net-mvc-4
user2256870
источник
источник
Ответы:
Чистый веб-API
Раньше я был довольно хардкорным с ASP.NET MVC, но с тех пор, как я встретил Angular, я не вижу ни одной причины, по которой я бы использовал любой структуру генерации контента на стороне сервера. Чистый Angular / REST (WebApi) дает более насыщенный и плавный результат. Это намного быстрее и позволяет создавать веб-сайты, которые довольно близко подходят к настольным приложениям, без каких-либо забавных хаков.
У Angular есть небольшая кривая обучения, но как только ваша команда освоит ее, вы сможете создавать гораздо лучшие веб-сайты за меньшее время. В основном это связано с тем, что у вас больше нет всех этих проблем с состоянием (меньше).
Например, представьте форму мастера с любой традиционной серверной структурой. Каждую страницу необходимо проверить и отправить отдельно. Возможно, содержимое страницы зависит от значений с предыдущей страницы. Возможно, пользователь нажал кнопку «Назад» и повторно отправляет предыдущую форму. Где мы храним состояние клиента? Всех этих сложностей не существует при использовании Angular и REST.
Итак ... переходим на темную сторону ... у нас есть печенье.
Аналогичный вопрос
источник
AngularJS больше связан с парадигмой одностраничного приложения и поэтому не особо выигрывает от серверных технологий, отображающих разметку. Нет никаких технических причин, которые мешают вам использовать их вместе, но с практической точки зрения зачем?
SPA извлекает необходимые ресурсы (представления JS, CSS и HTML) и работает самостоятельно, связываясь со службами для отправки или получения данных. Таким образом, серверная технология по-прежнему необходима для предоставления этих услуг (а также других средств, таких как аутентификация и тому подобное), но части рендеринга в значительной степени неактуальны и не особенно полезны, потому что это дублирование усилий, за исключением того, что это делает MVC. на стороне сервера, а Angular делает это на стороне клиента. Если вы используете Angular, вы хотите, чтобы он был на клиенте для достижения наилучших результатов. Вы можете создавать HTML-формы для публикаций Angular и получать частичные представления из действий MVC, но вы упустите лучшие и самые простые функции Angular и усложните себе жизнь.
MVC довольно гибкий, и вы можете использовать его для обслуживания вызовов из приложения SPA. Однако WebAPI более точно настроен и немного проще в использовании для таких служб.
Я написал несколько приложений AngularJS, в том числе пару, которые мигрировали из ранее существовавших приложений WebForms и MVC, а аспект ASP.NET развивается в сторону платформы для доставки приложения AngularJS в качестве реального клиента и для размещения уровня приложения. клиент связывается через REST (используя WebAPI). MVC - прекрасный фреймворк, но обычно он не работает в подобных приложениях.
Приложение ASP.NET становится еще одним слоем инфраструктуры, где его обязанности ограничиваются:
Еще одна замечательная вещь в SPA - это то, что он может увеличить пропускную способность вашей команды. Одна группа может запускать службы, а другая находится в клиентском приложении. Поскольку вы можете легко заглушить или имитировать службы REST, у вас может быть полностью работающее клиентское приложение для имитирующих сервисов и заменять его на настоящие, когда они будут готовы.
Вам действительно нужно инвестировать в Angular заранее, но это окупается. Поскольку вы уже знакомы с MVC, у вас есть некоторые базовые концепции.
источник
Это зависит от проекта, над которым вы работаете.
Если angularJS - это что-то новое для вас, я бы предпочел небольшой проект с низким риском / давлением, чтобы начать работу и убедиться, что вы научитесь делать что-то правильно (я видел много проектов, использующих Angularjs неправильно из-за давления, сроков ... недостаток времени, чтобы изучить это должным образом, например, с помощью JQuery или доступа к DOM внутри контроллеров и т. д.).
Если проект находится в зеленом поле, и у вас есть некоторый опыт работы с AngularJS, имеет смысл отказаться от ASP.net MVC и на стороне сервера перейти на чистый REST / WebAPI.
Если это существующий проект, вы можете выбрать сложный набор функций и создать эту страницу как отдельное приложение angularJS (например, ваше приложение состоит из большого набора стандартных страниц на основе Razor простой / средней сложности, но вам понадобится и расширенный редактор / страницу, которая может быть целевой частью для создания с помощью AngularJS).
источник
Вы можете использовать Angular framework для разработки внешнего интерфейса, то есть для создания представлений. Он предоставляет вам надежную архитектуру, и, как только вы узнаете, вы обнаружите ее преимущества перед движком бритвенного представления Asp.net MVC. Для получения данных вам необходимо использовать WebAPI, и теперь проект ASP.Net MVC из коробки поддерживает как контроллеры WebAPI, так и MVC. Вы можете обратиться к ссылке ниже, начиная с разработки приложений Angular и ASP.Net MVC.
http://hive.rinoy.in/angular4-and-asp-net-mvc-hybrid-application/
В настоящее время доступны две платформы для разработки компонентов пользовательского интерфейса для приложений angular. Я использовал оба этих фреймворка в одном из проектов angular, над которым работал.
Материал https://material.angular.io/
PrimeNG https://www.primefaces.org/primeng/#/
источник