AngularJS більше пов'язаний з парадигмою додатків на одній сторінці, і як такий не отримує великої вигоди від серверних технологій, які відображають розмітку. Не існує жодної технічної причини, яка заважає вам використовувати їх разом, але на практиці, чому б ви?
SPA отримує необхідні йому ресурси (подання JS, CSS та HTML) та працює самостійно, передаючи дані службам для надсилання або отримання даних. Отже, серверна технологія все ще необхідна для надання цих послуг (а також інших засобів, таких як автентифікація та подібні), але частини рендерингу в основному не мають значення і не особливо корисні, оскільки це дублювання зусиль, за винятком того, що MVC це робить на стороні сервера, а Angular робить це на клієнті. Якщо ви використовуєте Angular, ви хочете, щоб це було на клієнті для досягнення найкращих результатів. Ви можете створювати Angular post HTML-форми та отримувати часткові перегляди від дій MVC, але ви втрачаєте найкращі та найпростіші функції Angular і ускладнюєте своє життя.
MVC досить гнучкий, і ви можете використовувати його для обслуговування дзвінків із програми SPA. Однак WebAPI більш тонко налаштований і дещо простіший у використанні для таких служб.
Я написав ряд програм AngularJS, включаючи пару, яка перейшла з вже існуючих програм WebForms та MVC, і аспект ASP.NET розвивається до платформи для доставки програми AngularJS як власне клієнта та для розміщення рівня додатків. клієнт спілкується через REST (за допомогою WebAPI). MVC - це прекрасний фреймворк, але він зазвичай опиняється без роботи в таких видах програм.
Додаток ASP.NET стає іншим рівнем інфраструктури, де його обов'язки обмежені:
- Розмістіть контейнер залежностей.
- Підключіть реалізації бізнес-логіки до контейнера.
- Налаштуйте пакети активів для JS та CSS.
- Розміщувати послуги WebAPI.
- Забезпечте безпеку, виконуйте журналювання та діагностику.
- Взаємодія з кешами програм для підвищення продуктивності.
Ще одна чудова річ про СПА - це те, що це може збільшити пропускну здатність вашої команди. Одна група може скористатися послугами, тоді як інша розміщує в клієнтському додатку. Оскільки ви можете легко заглушити або висміяти REST-послуги, ви можете мати повністю працюючий клієнтський додаток на макетних послугах і поміняти його на справжні, коли вони закінчать.
Вам доведеться вкладати гроші вперед на Angular, але це приносить великі результати. Оскільки ви вже знайомі з MVC, у вас є детальний опис деяких основних концепцій.