2013-07-25 15 views
7

Zainspirowany filmem Johna Papy w Pluralsight, zacząłem uczyć się SPA. Wygląda całkiem interesująco. Zanim jednak w pełni przejdę, chciałbym wyjaśnić niektóre z moich pytań.Dlaczego SPA (Single Page App)?

  1. Z tego, czego się dowiedziałem, SPA to chudy serwer, gruba aplikacja kliencka. Myślę, że powinno to działać dobrze w przypadku małych aplikacji, takich jak to, co zademonstrował John Para. Czy to skaluje? Jak duży może być? Ktoś ma z tym doświadczenie?

  2. W SPA wydaje się, że kodujesz całą logikę biznesową w JavaScript. Czy to w ogóle dobry pomysł? Jak ukrywasz "sekret" biznesu?

Z moim tle głównie w C#/WPF/.NET, przechodząc do JavaScript wydaje się być bardzo trudne (dobrze, nauczyłem się trochę JavaScript ponad 10 lat temu - Nienawidziłam go i nigdy nie dotknęła go ponownie) . Z moją ograniczoną wiedzą napotkałem kilka problemów. Debugowanie JavaScriptu wydaje mi się koszmarem. Wysoko chwalony komponent Breezejs wydaje się być na wczesnym etapie (np. Nie obsługuje UOW, nie obsługuje CascadeDelete, nie obsługuje enums). Zastanawiam się, czy to dobry moment, by wskoczyć?

+1

Dlaczego mówisz, że nie obsługuje jednostki pracy? Mam kilka przykładów, które go wspierają. –

+0

o wiele wydajniej jest mieć 1008 procesorów pracujących na obsłudze 1000 klientów, niż ma to 8 procesorów wspierających ten sam tłum ... – dandavis

+0

@kadumel, jak to działa? Oglądałem pierwsze wideo Johna, które wykorzystuje UOW, ale nie Breeze. Następnie w innym filmie używa Breeze, ale nie UOW. Przeszukałem go i znalazłem tę stronę http://stackoverflow.com/questions/15113804/breeze-with-a-unit-of-work-repository-pattern. – newman

Odpowiedz

8

bezpośrednio do pytania:

  1. Ponieważ logika serwer jest cienka można użyć pewnego rodzaju usług w chmurze i skalować całkiem dobre. Większość logiki będą obsługiwane przez przeglądarki użytkowników.
  2. Należy zachować ostrożność, jeśli zależy od klienta. Protokół HTTP można łatwo manipulować. Nie zapominaj, że zawsze powinieneś robić logikę walidacji po stronie klienta i serwera! Również "ukryta" walidacja i inna "tajna" logika powinny znajdować się tylko na serwerze.

Debugowanie JavaScript nie jest wcale takie złe. Możesz korzystać z wbudowanych narzędzi (Inspect element w Chrome i FireBug w Firefox, itp.) Istnieje również wiele przydatnych narzędzi stron trzecich, które pomogą Ci w debugowaniu.

Jeśli rozpoczynasz nowy projekt na własny użytek, radzę ci wypróbować podejście SPA. Jeśli piszesz kod produkcyjny, powinieneś zostać ekspertem w tej dziedzinie, a następnie spróbować skorzystać z tych technologii.

0

czekałem na niego przez kilka miesięcy. Moim wnioskiem jest użycie Knockout z light path.js lub sammy.js dla twojego adresu URL. Używam json ze standardowym Visual Studio MVC (który może zwrócić Json) jako backend. Nadal nie zakończyłem projektu, ale jak dotąd tak dobrze. Jest błyskawicznie szybki, elitarny i lekki. Trzymaj się z dala od frameworków. Zobacz standardowe biblioteki: jak są napisane; W ten sposób można nauczyć się wielu skryptów JavaScript. Na koniec debuguj za pomocą narzędzi programistycznych Chrome lub eksploratora. Powodzenia

1

Wierzę, że SPA to lepsze ramy dla Intensywnych Aplikacji Biznesowych, a także prostsze przepływy pracy z aplikacjami, takie jak Facebook. Pracowałem z aplikacjami Multi Page Applications dla aplikacji bankowych ze złożonymi przepływami pracy i trudno jest poradzić sobie z każdą rzeczą i nadal utrzymywać wydajność aplikacji.

Ale myślę, że Knockout Alone nie będzie w stanie poradzić sobie z dużymi aplikacjami, jak z połączonymi w naturze. Polecam coś takiego, jak Backbone Marionete lub Angular na to przedsięwzięcie.

Buduję ramy dla rozwoju SPA na dużą skalę dla społeczności open source, więc uważam, że jest to właściwy kierunek.

Zainteresowane strony mogą przejść na moją stronę demonstracyjną pod adresem http: \ saqibshakil.github.io. Przedstawiłem tam niektóre z moich prac.

Powiązane problemy