Ich komme von der Verwendung von ASP.NET MVC / Web API und beginne jetzt mit der Verwendung von Angular, mir ist jedoch nicht klar, wie ich sie richtig mischen soll.
Bieten die serverseitigen Konzepte von MVC nach der Verwendung von Angular noch einen Wert? Oder sollte ich ausschließlich die Web-API verwenden, um Daten für die winkligen HTTP-Aufrufe abzurufen?
Gibt es vielleicht einen abgespeckten Ausgangspunkt, den ich verwenden sollte, wenn die VS-Vorlage viele Dinge hinzufügt, die ich nicht benötige?
Ich mag die Idee einer strikten Trennung von Server-Seite = reine Daten und Client-Seite = reine HTML-Verarbeitung.
javascript
mvc
asp.net-mvc
Punkouter
quelle
quelle
Antworten:
Der einfachste Weg, darüber nachzudenken, besteht darin, dass der Server einen Status bedient. Angular kann das Sammeln der Aktualisierungen für diesen Status verwalten und an ein Web / API auf dem Server senden. Wenn Sie mehr einseitige Apps verwenden möchten, ist der serverseitige Code nur der Anfangszustand Ihrer App.
Die Web-API ist ein hervorragender Ausgangspunkt für das Abrufen Ihrer Daten in Ihre App. Sie werden die Standardrouter nach und nach aktualisieren, um die Designanforderungen Ihrer Umgebung zu erfüllen, und wenn Sie möchten, müssen Sie sich streng ausruhen.
Es gibt einige Bibliotheken, die standardmäßig in ASP4 enthalten sind und die auch in den MVC4-Vorlagen enthalten sind. Es gibt wirklich viele Dinge auf der Seite, die nicht benötigt werden, sowie im Projekt enthalten sind und auf die von ihren Standardseiten nicht einmal verwiesen wird. Sie sollten sicher sein, alles außer jQuery zu entfernen, und ich gehe sogar so weit, jQueryUI zu entfernen. Viele der Standardeinstellungen haben eine gute Bedeutung, aber sobald Sie Ihr Domänenwissen eingegeben haben, werden Sie Bibliotheken verwenden, die Ihren spezifischen Anforderungen entsprechen.
Auch mit einer strengen Trennung werden Sie feststellen, dass mvc auf der Serverseite immer noch ein sehr sauberes Backing für eine einzelne Seiten-App ist. Effektives Routing bei der Übermittlung Ihrer Seite und Ihrer API-Aufrufe ist ein erstklassiges Beispiel. Eine weitere nützliche Funktion sind Steuerungen, die Ansichten zurückgeben, die die Masterseite nicht oder nur teilweise verwenden. Angular verfügt über eine "Ansicht", die mit einer Vorlage gefüllt werden kann, die eine statische Datei oder ein Teil einer Ihrer Routen sein kann.
Ich habe Ihren Kommentar heute gelesen und eine Demo-Lösung zusammengestellt, um zu zeigen, was ich ursprünglich erwähnt habe. Die Lösung hat auch einige der ursprünglichen "Flusen" entfernt, obwohl Sie beim Hinzufügen von Angular und Bootstrap die Kernbibliotheken und jede Ableitung dort mit erhalten. Das ist der Kompromiss zwischen der Verwendung von nuGet.
Probieren Sie es aus: https://github.com/QueueHammer/AngularWithPartialViewViews
Beim Lernen von Angular fand ich das Angular-Seed-Programm ziemlich hilfreich. Besonders nachdem ich die Demos auf ihrer Seite ausprobiert hatte. Das Beispielprojekt ist nur so unterschiedlich, dass es Ihnen beim Lernen hilft. Danach habe ich mir Angular-Require-Seed angesehen, aber das ist ein anderer Beitrag. Angular Schritt für Schritt http://docs.angularjs.org/tutorial Angular Seed: https://github.com/angular/angular-seed
quelle
Diese VS-Vorlagen sind gut geeignet, um die anfängliche Einrichtung und Lernkurve am Anfang zu verkürzen. Sie müssen sie jedoch an Ihre tatsächlichen Projektanforderungen anpassen.
Zum Beispiel auf dieser Website http://www.reviewstoshare.com , mein Freund
AngularJS
zusammen mitASP.NET MVC
. Beachten Sie, dass diese Site bereits mit ASP.MVC + Jquery erstellt wurde, um bei Bedarf eine Seiteninteraktion durchzuführen.Auf der anderen Seite gibt es immer noch etwas "Ajaxy" an der Seite wie Kommentare, Abstimmungen, Markierungen usw. Nicht allzu verschieden von Stackoverflow selbst. Vor AngularJS war es ein Durcheinander von Jquery-Plugins und -Funktionen innerhalb von
$(document).ready()
Callback, ganz zu schweigen davon, dass der JS-Code nicht viel testbar war.Alles in allem macht eine gute Mischung aus beidem Ihre Website glatt und funktionell.
Einige gute Hinweise zum Anschauen:
quelle