2013-05-08 17 views
20

Szukam informacji od innych użytkowników na temat zalet serwera MVC po stronie serwera. Dzięki sile wielu bibliotek javascript. Jaki dobry cel ma serwer po stronie serwera MVC?klient-MVC kontra serwer-MVC

Możesz łatwo używać MVC po stronie klienta z szablonami i interfejsem API REST, aby uzyskać bardziej responsywną aplikację z mniejszym nakładem na przeładowanie całej strony w przypadku niewielkich zmian.

+1

Jesteś koncentrując się na małych, pojedynczych strona app, prawda? – DOK

+0

@DOK SPA: Tak. Rozmiary mądre, myślę, małe i duże – Justin

+3

tak ważne pytanie z tak małą trakcją ... –

Odpowiedz

5

Server MVC korzyści:

  1. Starsza.
  2. Powszechnie przyjęte.
  3. Większość kodu znajduje się na serwerze, więc powinno być bezpieczniej.

Jednak zdecydowanie powraca się do komputerów typu klient/serwer, ale zamiast grubych klientów napisanych w języku C lub innym, ale teraz mamy bardzo przyjemną platformę: przeglądarkę.

Mam proste zasady o tym, kiedy używam MVC po stronie serwera i po stronie klienta MVC:

  1. przypadkowych użytkowników z kilku interakcji: Serwer + Ajax.
  2. Aplikacja LOB (rachunkowość, ERP, CRM itp.): Klient.

BTW Używam Java Server Faces dla # 1 i ExtJS z kopią zapasową dla usług JAX-RS dla # 2.

Pozdrawiam.

+0

Stary post, ale zastanawiam się, dlaczego miałbyś używać serwera + ajax dla zwykłych użytkowników z niewielkimi interakcjami? A po stronie klienta MVC dla aplikacji LOB? Czy nie byłoby bardziej bezpieczne i skalowalne używanie po stronie serwera MVC dla aplikacji LOB i MVC po stronie klienta dla zwykłych użytkowników? Przepraszam z góry, jeśli coś przeoczyłem. – redspidermkv

6

Cóż, nadal potrzebujesz pierwszej strony, która mogłaby być obsługiwana przez serwer MVC po stronie serwera.

Poza tym, klient-MVC + REST może działać, ale myślę, że w dużych aplikacjach wciąż masz różne sekcje i musisz powiązać te sekcje razem. Byłoby to możliwe, robiąc to po stronie klienta, ale myślę, że łatwiej to zrobić po stronie serwera.

Na razie widzę oba współistniejące z radością. Nadal może zrobić jak najwięcej na stronie klienta i poprzez odpoczynek, ale jeśli coś nie jest możliwe po stronie klienta, nadal korzystać z zalet serwera bocznych MVC

+0

MVC wydaje się być dużo przesady na stronie głównej służyć – Justin

+2

Wszystko zależy od złożoności aplikacji. Jeśli strona początkowa jest dość złożona i jest wiele sekcji (tyle początkowych stron), to opłaca się. Ale znowu, nie ma tu twardej reguły, wszystko zależy od aplikacji, którą budujesz. – Kenneth

11

Sposób, w jaki to widzę, po stronie serwera MVC pozostaje istotny, jeśli uznasz V jako stronę MVC po stronie klienta owiniętą w czarne pudełko. Chodzi przede wszystkim o współpracę i skalowalność. Serwer MVC po stronie serwera nadal zasila interfejsy API REST (na przykład) z wyobrażeniem, że technicznie zlecasz technologię wyświetlania osobnemu systemowi działającemu w przeglądarce.

Ponieważ przeglądarka jest coraz częściej postrzegana jako platforma programistyczna, można eksportować ogromne ilości danych z "platformy backend" do klienta (przeglądarki), a następnie traktować dane jako lokalną "bazę danych" w przeglądarce, co pozwala na szybką reakcję czas.

Łącząc te 2 ramy MVC pozwala na:

  1. Rzadki ruch pomiędzy serwerem a klientem zmniejszając opóźnienia
  2. Zwiększenie zdolności reagowania swoich aplikacji internetowych przez lokalizowaniu dostęp do bardziej istotnych danych ustawić
  3. rozłożenie obciążenia od pojedynczego kontrolera po stronie serwera do setek przeglądarek

Architektura tutaj działa bardzo podobnie do CDN - treść sieci dostawcze! Naprawdę chodzi o lokalizację danych i przybliżenie ich do centrów przetwarzania.

Powiedziawszy to, możesz nadal korzystać z jednego na drugim, jeśli rozumiesz potrzeby architektoniczne swojego produktu. Właściwe narzędzie do właściwej pracy.

3

Porównanie tylko MVC z jednego punktu końcowego względem drugiego nie jest zbyt konstruktywne. MVC to struktura organizowania kodu. Jest to rodzina wzorców projektowych, która pomaga oddzielić kod i sprawić, że będzie on łatwiejszy w utrzymaniu. Zawsze tego chcemy.

Wszyscy zgodzą się, że niezależnie od tego, czy budujesz na serwerze, czy na kliencie, musisz mieć dobrą architekturę i rozdzielić wątpliwości. Tam nie ma konkursu.

Prawdziwe i ważniejsze pytanie: po stronie klienta a po stronie serwera? Gdzie chcesz generować widoki HTML na serwerze lub kliencie? To jest inne pytanie, które bardziej zależy na szybkości reakcji strony. Otrzymano również wiele razy odpowiedzi w wielu miejscach. Wyszukiwarka: https://stackoverflow.com/search?q=client+rendering+vs+server+rendering

+1

+1 O ile nie serwujesz tylko plików statycznych, masz nadzieję, że masz architekturę MVC zarówno na kliencie, jak i na serwerze. M (MVC) C, że tak powiem. – deceze

+0

Tak! Będę szukał okazji do użycia "M (MVC) C" w komentarzu;) – givanse