AngularJS ist eher mit dem Anwendungsparadigma für einzelne Seiten verbunden und profitiert daher nicht viel von serverseitigen Technologien, die Markups rendern. Es gibt keinen technischen Grund, der Sie daran hindert, sie zusammen zu verwenden, aber im praktischen Sinne, warum sollten Sie?
Ein SPA ruft die benötigten Assets ab (JS-, CSS- und HTML-Ansichten) und wird eigenständig ausgeführt. Es kommuniziert zurück zu den Diensten, um Daten zu senden oder abzurufen. Daher ist für die Bereitstellung dieser Dienste (sowie anderer Mittel wie Authentifizierung und dergleichen) immer noch eine serverseitige Technologie erforderlich, aber die Rendering-Teile sind weitgehend irrelevant und nicht besonders nützlich, da es sich um eine Doppelarbeit handelt, außer MVC auf der Serverseite und Angular auf dem Client. Wenn Sie Angular verwenden, möchten Sie es auf dem Client erzielen, um die besten Ergebnisse zu erzielen. Sie können Angular-Post-HTML-Formulare erstellen und Teilansichten von MVC-Aktionen abrufen, aber Sie würden die besten und einfachsten Funktionen von Angular verpassen und Ihr Leben schwerer machen.
MVC ist ziemlich flexibel und kann verwendet werden, um Anrufe von einer SPA-Anwendung aus zu bearbeiten. WebAPI ist jedoch feiner abgestimmt und für solche Dienste etwas einfacher zu verwenden.
Ich habe eine Reihe von AngularJS-Anwendungen geschrieben, darunter einige, die von bereits vorhandenen WebForms- und MVC-Anwendungen migriert wurden, und der ASP.NET-Aspekt entwickelt sich zu einer Plattform für die Bereitstellung der AngularJS-App als eigentlichen Client und für das Hosting der Anwendungsschicht Der Client kommuniziert über REST (über WebAPI) mit. MVC ist ein gutes Framework, befindet sich jedoch normalerweise ohne Arbeit in solchen Anwendungen.
Die ASP.NET-Anwendung wird zu einer weiteren Ebene der Infrastruktur, deren Zuständigkeiten auf Folgendes beschränkt sind:
- Hosten Sie den Abhängigkeitscontainer.
- Verdrahten Sie die Implementierungen der Geschäftslogik mit dem Container.
- Richten Sie Asset-Bundles für JS und CSS ein.
- Host-WebAPI-Dienste.
- Erzwingen Sie die Sicherheit, führen Sie die Protokollierung und Diagnose durch.
- Schnittstelle zu Anwendungscaches für die Leistung.
Eine weitere großartige Sache an einem SPA ist, dass es die Bandbreite Ihres Teams erhöhen kann. Eine Gruppe kann die Dienste sprengen, während die andere in der Client-App liegt. Da Sie REST-Services problemlos stubben oder verspotten können, können Sie eine voll funktionsfähige Client-App für Mock-Services verwenden und diese nach Abschluss gegen die echten austauschen.
Sie müssen im Voraus in Angular investieren, aber es zahlt sich aus. Da Sie bereits mit MVC vertraut sind, haben Sie einen Einblick in einige der Kernkonzepte.