Pochodzę z używania ASP.NET MVC / Web API i teraz zaczynam używać Angulara, ale nie jestem pewien, jaki jest właściwy sposób ich mieszania.
Kiedy używam Angulara, czy koncepcje po stronie serwera MVC nadal zapewniają jakąkolwiek wartość? A może powinienem używać interfejsu API sieci Web wyłącznie do pozyskiwania danych dla kątowych połączeń HTTP?
Czy jest może bardziej uproszczony punkt początkowy, którego powinienem użyć, jeśli szablon VS dodaje wiele rzeczy, których nie potrzebuję?
Podoba mi się pomysł ścisłego podziału strony serwera = czyste dane, a strona klienta = czyste przetwarzanie HTML.
javascript
mvc
asp.net-mvc
punkouter
źródło
źródło
Odpowiedzi:
Najprościej jest o tym pomyśleć, że serwer obsługuje stan. Angular może zarządzać zbieraniem aktualizacji do tego stanu i wysyłaniem go do sieci / interfejsu API na serwerze. Jeśli chcesz korzystać z większej liczby aplikacji jednostronicowych, kod po stronie serwera będzie tylko początkowym stanem aplikacji.
Interfejs API sieci Web jest doskonałym miejscem do rozpoczęcia pobierania danych do aplikacji. W końcu zaktualizujesz domyślne trasy, aby spełnić wymagania projektowe środowiska, a jeśli chcesz, będziesz ściśle wypełniony.
Istnieje kilka bibliotek, które ASP4 domyślnie zawiera, a także te, które zostały zawarte w szablonach MVC4. Na stronie znajduje się naprawdę wiele rzeczy, które nie są potrzebne, a także projekty uwzględnione w projekcie i nigdy nie przywoływane przez ich domyślne strony. Powinieneś być bezpieczny, usuwając wszystko oprócz jQuery, a ja nawet posunąłem się nawet do wyjęcia jQueryUI. Wiele wartości domyślnych oznacza dobrze, ale kiedy zaczniesz uzupełniać wiedzę o swojej domenie, będziesz używać bibliotek lib, które spełniają twoje specyficzne potrzeby.
Nawet przy ścisłym podziale przekonasz się, że mvc po stronie serwera nadal stanowi bardzo czyste wsparcie dla aplikacji na jednej stronie. Skuteczny routing w dostarczaniu strony i połączeń API jest doskonałym przykładem. Kolejną przydatną funkcją są kontrolery, które zwracają widoki, które nie używają strony wzorcowej lub są tylko widokiem częściowym. Angular ma „widok”, który może wypełnić szablonem, który może być plikiem statycznym lub częściowym z jednej z twoich tras.
Przeczytałem wam dzisiaj komentarz i przygotowałem rozwiązanie demonstracyjne, aby pokazać to, o czym pierwotnie wspomniałem. W rozwiązaniu usunięto również część oryginalnego „puchu”, ale po dodaniu Angulara i Bootstrapa dostajesz biblioteki podstawowe i każdą pochodną. To jest kompromis korzystania z nuGet.
Sprawdź to: https://github.com/QueueHammer/AngularWithPartialViewViews
W nauce Angulara uznałem program Angular-Seed za dość pomocny. Zwłaszcza po wypróbowaniu wersji demo na ich stronie. Przykładowy projekt jest na tyle inny, że pomaga Ci się uczyć. Potem spojrzałem na Angular-Require-Seed, ale to kolejny post. Angular Krok po kroku http://docs.angularjs.org/tutorial Angular Seed: https://github.com/angular/angular-seed
źródło
Te szablony VS są dobre, aby skrócić początkową konfigurację i krzywą uczenia się na początku, jednak trzeba je dostosować do rzeczywistych potrzeb projektu.
Na przykład na tej stronie http://www.reviewstoshare.com mój przyjaciel używa
AngularJS
razem zASP.NET MVC
. Należy pamiętać, że ta strona została już zbudowana przy użyciu ASP.MVC + Jquery do interakcji na stronie w razie potrzeby.Z drugiej strony na stronie jest jeszcze trochę „Ajaxy”, takich jak komentarze, głosowanie, oflagowanie itp. Nie różni się zbytnio od samego Stackoverflow. Przed AngularJS był bałagan wtyczek Jquery i funkcji w
$(document).ready()
wywołaniu zwrotnym, nie wspominając już o tym, że kod JS nie był bardzo testowalny.Ogólnie rzecz biorąc, odpowiednie połączenie obu sprawia, że witryna jest gładka i funkcjonalna.
Kilka dobrych odniesień do wyglądu:
źródło