Ich komme aus der Verwendung der ASP.NET MVC / Web-API und beginne jetzt mit der Verwendung von Angular, bin mir aber nicht sicher, wie ich sie richtig mischen soll.
Wenn ich Angular verwende, bieten die MVC-Serverkonzepte noch einen Wert? Oder sollte ich die Web-API ausschließlich zum Abrufen von Daten für die eckigen HTTP-Aufrufe verwenden?
Alle Tipps, die Sie für einen ASP.NET MVC-Mitarbeiter haben, der zu Angular wechselt, sind hilfreich
asp.net-mvc
angularjs
asp.net-mvc-4
user2256870
quelle
quelle
Antworten:
Reine Web-API
Früher war ich mit ASP.NET MVC ziemlich hardcore, aber seit ich Angular kennengelernt habe, sehe ich keinen Grund, warum ich ein serverseitiges Framework zur Inhaltsgenerierung verwenden würde . Pure Angular / REST (WebApi) liefert ein satteres und gleichmäßigeres Ergebnis. Es ist viel schneller und ermöglicht es Ihnen, Websites zu erstellen, die Desktop-Anwendungen sehr nahe kommen, ohne funky Hacks.
Angular hat zwar eine kleine Lernkurve, aber sobald Ihr Team diese beherrscht, können Sie in kürzerer Zeit viel bessere Websites erstellen. Dies hat hauptsächlich damit zu tun, dass Sie nicht mehr alle diese (weniger) Statusprobleme haben.
Stellen Sie sich beispielsweise ein Assistentenformular mit einem herkömmlichen serverseitigen Framework vor. Jede Seite muss validiert und separat eingereicht werden. Möglicherweise hängt der Inhalt der Seite von den Werten einer vorherigen Seite ab. Möglicherweise hat der Benutzer die Zurück-Taste gedrückt und sendet ein vorheriges Formular erneut. Wo speichern wir den Status des Kunden? Alle diese Komplikationen treten bei Verwendung von Angular und REST nicht auf.
Also ... komm rüber zur dunklen Seite ... wir haben Kekse.
Ähnliche Frage
quelle
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:
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.
quelle
Dies hängt von dem Projekt ab, an dem Sie arbeiten.
Wenn angularJS etwas Neues für Sie ist, würde ich lieber ein kleines Projekt mit geringem Risiko / Druck auswählen, um loszulegen und sicherzustellen, dass Sie lernen, wie man Dinge richtig macht (ich habe viele Projekte gesehen, bei denen Angularjs aufgrund von Druck, Fristen ... falsch verwendet wurde). Zeitmangel, um es richtig zu lernen, z. B. mit JQuery oder Zugriff auf das DOM in den Controllern usw.).
Wenn es sich bei dem Projekt um ein Projekt auf der grünen Wiese handelt und Sie Erfahrung mit AngularJS haben, ist es sinnvoll, ASP.net MVC aufzugeben und auf der Serverseite auf reines REST / WebAPI zu setzen.
Wenn es sich um ein vorhandenes Projekt handelt, können Sie eine komplexe Teilmenge von Funktionen abrufen und diese Seite als separate AngularJS-App erstellen (z. B. besteht Ihre App aus einer großen Anzahl von Standard-Razor-basierten Seiten mit einfacher / mittlerer Komplexität, aber Sie benötigen einen erweiterten Editor / Seite, das könnte das Zielstück sein, das mit AngularJS erstellt werden soll).
quelle
Sie können das Angular-Framework für die Front-End-Entwicklung verwenden, dh um Ansichten zu erstellen. Es bietet Ihnen eine robuste Architektur und sobald Sie dies gelernt haben, werden Sie feststellen, dass es Vorteile gegenüber der Rasiermesser-Ansichts-Engine von Asp.net MVC bietet. Um Daten abzurufen, müssen Sie WebAPIs verwenden. Jetzt unterstützt das ASP.Net MVC-Projekt sofort sowohl WebAPI- als auch MVC-Controller. Sie können sich auf den folgenden Link beziehen, der mit der Entwicklung von Angular- und ASP.Net MVC-Anwendungen beginnt.
http://hive.rinoy.in/angular4-and-asp-net-mvc-hybrid-application/
Derzeit sind zwei Frameworks für die Entwicklung von UI-Komponenten für Winkelanwendungen verfügbar. Ich habe beide Frameworks in einem der Winkelprojekte verwendet, an denen ich gearbeitet habe.
Material https://material.angular.io/
PrimeNG https://www.primefaces.org/primeng/#/
quelle