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 становится еще одним слоем инфраструктуры, где его обязанности ограничиваются:
- Разместите контейнер зависимостей.
- Подключите реализации бизнес-логики к контейнеру.
- Настройте пакеты ресурсов для JS и CSS.
- Размещайте службы WebAPI.
- Обеспечьте безопасность, выполните регистрацию и диагностику.
- Взаимодействие с кешами приложений для повышения производительности.
Еще одна замечательная вещь в SPA - это то, что он может увеличить пропускную способность вашей команды. Одна группа может запускать службы, а другая находится в клиентском приложении. Поскольку вы можете легко заглушить или имитировать службы REST, у вас может быть полностью работающее клиентское приложение для имитирующих сервисов и заменять его на настоящие, когда они будут готовы.
Вам действительно нужно инвестировать в Angular заранее, но это окупается. Поскольку вы уже знакомы с MVC, у вас есть некоторые базовые концепции.