Architektura N-warstwowa zwykle ma każdą warstwę oddzieloną siecią. IE warstwa prezentacji znajduje się na niektórych serwerach internetowych, następnie komunikuje się z serwerami aplikacji zaplecza przez sieć w celu uzyskania logiki biznesowej, a następnie komunikuje się z serwerem bazy danych, ponownie przez sieć, i być może serwer aplikacji wywołuje również niektóre usługi zdalne ( powiedzieć Authorize.net do przetwarzania płatności).
MVC to programistyczny wzorzec projektowy, w którym różne części kodu są odpowiedzialne za reprezentowanie modelu, widoku i kontrolera w niektórych aplikacjach. Te dwie rzeczy są ze sobą powiązane, ponieważ na przykład warstwa Model może mieć wewnętrzną implementację, która wywołuje bazę danych do przechowywania i pobierania danych. Kontroler może znajdować się na serwerze internetowym i zdalnie wywoływać serwery aplikacji w celu pobrania danych. MVC wyodrębnia szczegóły implementacji architektury aplikacji.
Warstwa N odnosi się tylko do fizycznej struktury implementacji. Te dwa są czasami mylone, ponieważ projekt MVC jest często implementowany przy użyciu architektury N-warstwowej.
Gdyby projekt trójwarstwowy wyglądał tak:
wzór MVC wyglądałby następująco:
Co oznacza:
PS klient byłby Zobacz i Bliski Controller
źródło
Oto, co można powiedzieć o architekturze n-warstwowej
źródło
Jedyne podobieństwo polega na tym, że te dwa wzory mają trzy pola na swoich diagramach. Zasadniczo mają one zupełnie inne zastosowanie. W rzeczywistości zwykle nie jest to wybór między wzorcem, który ma być użyty, ale oba wzory mogą być używane razem w harmonijny sposób. Oto dobre porównanie tych dwóch: http://allthingscs.blogspot.com/2011/03/mvc-vs-3-tier-pattern.html
źródło
Podstawową zasadą w architekturze trójwarstwowej jest to, że warstwa klienta nigdy nie komunikuje się bezpośrednio z warstwą danych; w modelu trójwarstwowym cała komunikacja musi przechodzić przez warstwę oprogramowania pośredniego.
To architektura liniowa. Dotyczy to kwestii przekazywania informacji między użytkownikiem a bazą danych. Gdzie MVC jest architekturą trójkątną: widok wysyła aktualizacje do kontrolera, kontroler aktualizuje model, a widok jest aktualizowany bezpośrednio z modelu. Dotyczy to kwestii, w jaki sposób interfejs użytkownika zarządza komponentami na ekranie.
źródło
@Cherry Middleware działa bardziej jak program obsługi żądań lub readresator we wzorcu MVC.
Chciałbym trochę wyjaśnić o MVC, Według mnie kontroler widoku modelu działa w ten sposób.
To wszystko o MVC, które znam.
źródło
Daj sobie spokój. I nie ograniczaj się do pewnych wzorców podczas rozwiązywania problemów w świecie rzeczywistym. Pamiętaj tylko o kilku ogólnych zasadach, z których jedną jest ROZDZIELANIE WĄTPLIWOŚCI .
źródło
Poza tym, że jest liniowy, inną główną różnicą, która nie została tutaj wystarczająco podkreślona, jest to, że w modelu N-warstwowym N niekoniecznie jest 3-warstwowe! Najczęściej jest wdrażany jako trzy warstwy (prezentacja, aplikacja, dane), przy czym warstwa środkowa ma dwie warstwy podrzędne (logika biznesowa i dostęp do danych). Ponadto model w MVC może zawierać zarówno dane, jak i logikę biznesową do manipulacji danymi, podczas gdy te byłyby w osobnych warstwach w n-warstwach.
źródło
Architekturę N-warstwową najlepiej definiować za pomocą diagramu wdrażania.
Architekturę MVC najlepiej definiować za pomocą diagramu sekwencji.
Te 2 nie są takie same i nie są ze sobą powiązane i można łączyć ze sobą obie architektury. Wiele firm podjęło kroki w celu stworzenia architektury N Tier'd nie tylko w celu wdrożenia i skalowalności, ale także w celu ponownego wykorzystania kodu.
Na przykład obiekty jednostki biznesowej mogą wymagać użycia przez aplikację klasyczną, usługę internetową udostępnioną klientowi, aplikację internetową lub aplikację mobilną. Samo użycie podejścia MVC w ogóle nie pomoże w ponownym użyciu niczego.
źródło
Wniosek: N-warstwowa to architektura, MVC to wzorzec projektowy. To ta sama metafora stosowana w dwóch różnych dziedzinach.
źródło
Jerry: Oto prosty przykład tego, jak te dwa elementy są powiązane:
Poziom 1 - składa się z modeli, które komunikują się z warstwą 2 za pośrednictwem jakiejś usługi sieciowej lub podobnej, kontrolerów obsługujących walidację danych wejściowych, obliczenia i inne rzeczy istotne dla widoków. I oczywiście zawiera same widoki - którymi może być GUI w aplikacji komputerowej lub interfejs sieciowy w aplikacji internetowej.
Poziom 2 - Zawiera jakąś usługę lub inny sposób odbierania wiadomości z Poziomu 1. Nie / nie powinien wiedzieć o Poziomie 1, więc może odpowiadać tylko na telefony z góry - nigdy nie pytaj o coś samodzielnie. Zawiera również całą logikę biznesową.
Warstwa 3 - zawiera model domeny, reprezentację obiektów bazy danych i całą logikę do komunikacji i aktualizowania wpisów w bazie danych.
źródło
W modelu trójwarstwowym cała komunikacja musi przechodzić przez warstwę środkową. Koncepcyjnie architektura trójwarstwowa jest liniowa. Jednak architektura MVC [model-widok-kontroler] jest trójkątna: widok wysyła aktualizacje do kontrolera, kontroler aktualizuje model, a widok jest aktualizowany bezpośrednio z modelu.
źródło