Слои и ярусы являются взаимозаменяемыми. В контексте n-уровня вы бы назвали его уровнем представления, а в контексте многоуровневого приложения вы бы назвали его уровнем представления. Но на самом деле это одно и то же.
Лакмусовая проверка n-уровневого приложения и слабой связи была бы возможна, если бы вы могли взять каждый из уровней и построить их как отдельные проекты и развернуть их на разных машинах.
Ключевым отличием для n-уровневых приложений является разделение проблем (SoC) и слабая связь. Действительно отделенным приложением может быть приложение, в котором есть уровень, который содержит только чистый HTML. Затем другой, который содержит чистый Javascript и использует AJAX для обновления DOM и связи с веб-сервисом. Веб-сервис содержит собственный набор уровней.
Веб-сервис имеет механизм маршрутизации, который направляет запросы на разные контроллеры. Контроллеры дезинфицируют и интерпретируют запрос, проверяют аутентификацию, а что нет и вызывают соответствующие модели. модели, в свою очередь, должны возвращать объекты POCO или DTO и возвращать их в Javascript, который внедряет их в DOM. Javascript может изменять объекты и отправлять их обратно в базу данных. Entity Framework 4.0 имеет хорошую поддержку именно для таких n-уровневых сценариев , хотя в отделе SoC она немного отстает (например, строго типизирует представления), но практична для других целей.
MVC Futures Я полагаю, что имеется поддержка некоторых контейнеров Inversion of Control (IoC) из коробки, и в настоящее время, если вам нужна слабая связь и действительно n-уровневые сценарии, вам, вероятно, потребуется использовать контейнер IoC по вашему выбору.