AngularJS est davantage associé au paradigme de l'application à page unique et, en tant que tel, ne bénéficie pas beaucoup des technologies côté serveur qui rendent le balisage. Il n'y a aucune raison technique qui vous empêche de les utiliser ensemble, mais dans un sens pratique, pourquoi le feriez-vous?
Un SPA récupère les ressources dont il a besoin (vues JS, CSS et HTML) et s'exécute de manière autonome, communiquant avec les services pour envoyer ou récupérer des données. Ainsi, une technologie côté serveur est toujours nécessaire pour fournir ces services (ainsi que d'autres moyens tels que l'authentification et autres), mais les parties de rendu sont largement hors de propos et pas particulièrement utiles car c'est une duplication des efforts, sauf que MVC le fait. côté serveur et Angular le fait sur le client. Si vous utilisez Angular, vous le souhaitez sur le client pour de meilleurs résultats. Vous pouvez créer des formulaires HTML de publication angulaire et récupérer des vues partielles des actions MVC, mais vous manqueriez les fonctionnalités les meilleures et les plus simples d'Angular et vous rendriez la vie plus difficile.
MVC est assez flexible et vous pouvez l'utiliser pour traiter les appels d'une application SPA. Cependant, WebAPI est plus finement réglé et un peu plus facile à utiliser pour de tels services.
J'ai écrit un certain nombre d'applications AngularJS, y compris quelques applications qui ont migré à partir d'applications WebForms et MVC préexistantes, et l'aspect ASP.NET évolue vers une plate-forme pour fournir l'application AngularJS en tant que client réel et pour héberger la couche d'application. le client communique avec via REST (en utilisant WebAPI). MVC est un bon framework, mais il se retrouve généralement sans travail dans ce type d'applications.
L'application ASP.NET devient une autre couche de l'infrastructure, où ses responsabilités se limitent à:
- Hébergez le conteneur de dépendances.
- Câblez les implémentations de logique métier dans le conteneur.
- Configurez des ensembles d'actifs pour JS et CSS.
- Héberger des services WebAPI.
- Renforcez la sécurité, effectuez la journalisation et les diagnostics.
- Interfaçage avec les caches d'applications pour les performances.
Un autre avantage d'un SPA est qu'il peut augmenter la bande passante de votre équipe. Un groupe peut faire exploser les services tandis que l'autre se trouve dans l'application cliente. Étant donné que vous pouvez facilement stub ou simuler des services REST, vous pouvez avoir une application client entièrement fonctionnelle sur des services simulés et remplacer les services réels une fois qu'ils ont terminé.
Vous devez investir d'avance sur Angular, mais cela rapporte gros. Puisque vous êtes déjà familier avec MVC, vous avez une longueur d'avance sur certains des concepts de base.