Вопрос

Приветствую вас,

Заранее приношу извинения за то, что я недостаточно тщательно исследовал этот вопрос, чтобы самому ответить на него, но я полагаю, что это заняло бы у меня некоторое время, и я предпочел бы узнать это сейчас, прежде чем тратить больше времени на его изучение.Я ничего не смог найти в своем первоначальном исследовании..

Зачем использовать ASP.Net MVC, если вы уже используете многоуровневую архитектуру (уровень данных, логический уровень, уровень представления)?За исключением того факта, что контроллер обладает большей мощностью, чем логический уровень.

Прав ли я, думая, что могу использовать NHibernate и все мои классы доступа к данным, сущности и сопоставления в модельной части MVC?

При использовании контроллеров, лучше ли разделить большую часть логики в отдельный класс, чтобы я мог вызывать его с нескольких контроллеров?Или я могу вызывать их из самих контроллеров, учитывая тот факт, что я бы не хотел, чтобы все они были Действиями, просто обычными методами.

Спасибо

Это было полезно?

Решение

MVC предназначен не для замены N-Tier, это способ организации уровня представления.

Я бы не сказал, что контроллер более мощный, чем логический уровень.Вместо этого контроллер (как часть уровня представления) все равно должен вызывать логический уровень.

Контроллеры должны только подготавливать данные для представлений и обрабатывать действия из представлений.Вы все равно должны использовать свой BLL.

Другие советы

Да, объекты NHibernate могут (и они должны быть) передаваться в представления.

Из-за этого у тебя будут какие-нибудь неприятности.Вы должны использовать сглаженные, безопасные для null DTO, также известные как.просмотр моделей.

Дэмиен, возможно, ты захочешь прочитать эти 2 поста:

Толстый Контролер

Архитектурный взгляд на фреймворк ASP.NET MVC

N-уровень - это архитектуальный паттерн, чтобы обеспечить повторное использование, разделение проблем и масштабируемость ключевых областей вашего приложения.Уровни, не связанные с пользовательским интерфейсом (бизнес, Данные, Фасад и т.д.), должны быть модульно протестированы и не зависеть от пользовательского интерфейса.

Уровень пользовательского интерфейса является лишь одним из этих слоев, будь то Silverlight, ASP.NET MVC, веб-формы и т.д.

MVC, как и MVP, является шаблон проектирования это обеспечивает лучшую тестируемость уровня пользовательского интерфейса.ASP.Net MVC - это готовый фреймворк, который поддерживает и применяет этот шаблон.Шаблон был широко использован задолго до появления этого фреймворка.

Но это просто выбор уровня пользовательского интерфейса, в контроллерах не должно быть взаимодействия с базами данных, сервисами и т.д., они контролируют состояние представления с помощью модели, не должны контролировать бизнес-логику, повторное использование, транзакции и т.д.

Чтобы ответить на ваш вопрос о том, зачем использовать, если вы уже переходите на многоуровневый, это то, что это делает URL-адреса более организованными и удобными для поисковой системы.Кроме того, это более стандартный шаблон, чем другие шаблоны, которые обычно присутствуют в ASP.Net.Это делает его более удобным для разработчиков для тех, кто уже использует MVC на других платформах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top