AngularJS jest bardziej związany z paradygmatem aplikacji jednostronicowych i jako taki nie korzysta zbytnio z technologii po stronie serwera, które renderują znaczniki. Nie ma technicznego powodu, który wykluczałby używanie ich razem, ale w praktycznym sensie, dlaczego miałbyś to robić?
SPA pobiera potrzebne zasoby (widoki JS, CSS i HTML) i działa samodzielnie, komunikując się z powrotem do usług w celu wysyłania lub pobierania danych. Tak więc technologia po stronie serwera jest nadal niezbędna do świadczenia tych usług (a także innych środków, takich jak uwierzytelnianie i tym podobne), ale części renderujące są w dużej mierze nieistotne i niezbyt przydatne, ponieważ jest to powielenie wysiłków, z wyjątkiem MVC to robi po stronie serwera, a Angular robi to na kliencie. Jeśli używasz Angulara, chcesz, aby był on dostępny na kliencie, aby uzyskać najlepsze wyniki. Możesz tworzyć formularze post HTML w Angular i pobierać częściowe widoki z akcji MVC, ale straciłbyś najlepsze i najłatwiejsze funkcje Angular i utrudniał Ci życie.
MVC jest dość elastyczny i można go używać do obsługi połączeń z aplikacji SPA. Jednak WebAPI jest lepiej dostrojone i nieco łatwiejsze w użyciu dla takich usług.
Napisałem wiele aplikacji AngularJS, w tym kilka, które migrowały z wcześniej istniejących aplikacji WebForms i MVC, a aspekt ASP.NET ewoluuje w kierunku platformy do dostarczania aplikacji AngularJS jako rzeczywistego klienta i do hostowania warstwy aplikacji klient komunikuje się przez REST (używając WebAPI). MVC to dobry framework, ale zwykle nie ma pracy w tego rodzaju aplikacjach.
Aplikacja ASP.NET staje się kolejną warstwą infrastruktury, gdzie jej obowiązki ograniczają się do:
- Hostuj kontener zależności.
- Połącz implementacje logiki biznesowej z kontenerem.
- Skonfiguruj pakiety zasobów dla JS i CSS.
- Hostuj usługi WebAPI.
- Wymuszaj bezpieczeństwo, wykonuj logowanie i diagnostykę.
- Współpraca z pamięcią podręczną aplikacji w celu zwiększenia wydajności.
Kolejną wielką zaletą SPA jest to, że może zwiększyć przepustowość Twojego zespołu. Jedna grupa może wysadzać usługi, podczas gdy druga leży w aplikacji klienta. Ponieważ możesz łatwo odgrywać lub mockować usługi REST, możesz mieć w pełni działającą aplikację kliencką na usługach pozorowanych i zamieniać się na prawdziwe, gdy są gotowe.
Musisz zainwestować z góry w Angular, ale to się opłaca. Ponieważ znasz już MVC, masz przewagę nad niektórymi podstawowymi koncepcjami.