Является ли ASP.NET MVC настоящим MVC-образцом? - PullRequest
2 голосов
/ 30 июля 2010

Последние пару дней я работал над небольшим веб-приложением. Я решил использовать ASP.NET MVC. Я принял это решение главным образом потому, что считаю, что это лучший способ реально контролировать веб-интерфейс и отображать действительные HTML-страницы. Тем не менее, я знаю, что MVC может быть гораздо больше.

Несмотря на то, что мое приложение довольно маленькое, я концентрируюсь на архитектуре своего приложения. Для меня важно иметь несколько уровней, два из которых должны быть переключаемыми в любое время: пользовательский интерфейс (Web / Desktop / Webservices) и логика доступа к данным (для поддержки нескольких баз данных). Я думал, что в шаблоне Model View Controller это будет возможно.

В этом случае возможно ли будет заменить мой веб-интерфейс на Win32 или WPF? Это возможно или я что-то не так понял? Я не мог найти способ сделать это.

Единственный способ сделать это - создать MVC-Layer, BusinessLogic-Layer, BusinessObject-Layer и DataAccess-Layer. В этом случае все общие вещи, которые можно повторно использовать в приложении WPF, например, я помещаю в бизнес-уровень, все специфичные для MVC вещи, которые я помещаю в MVC-слой, и большая часть того, что делает мой контроллер, - это вызов методов BL и построение ViewModel. и вернуть его на вид. Я не уверен, что это правильная интерпретация, и был бы благодарен за предложения о лучших методах.

Ответы [ 2 ]

4 голосов
/ 30 июля 2010

Да, он использует реальный шаблон MVC, по крайней мере в смысле, указанном в Шаблонах архитектуры корпоративных приложений Мартина Фаулера (возможно, самое близкое к каноническому определению - см. Его статью ' GUI Architectures 'для расширенного обсуждения).

В основе MVC лежит четкое разделение задач для приложений, управляемых пользовательским интерфейсом.

MVC не претендует на то, чтобы упростить переключение между интерфейсами без сохранения состояния (например, веб-приложениями) и приложениями для толстых клиентов (например, WPF или WinForms). У этих платформ есть свои сильные и слабые стороны: попытка использовать один контроллер для удовлетворения обеих приведет к реализации наименьшего общего знаменателя на уровне ниже подпрограммы.

0 голосов
/ 30 июля 2010

Я не совсем понимаю ваш вопрос.Если вы хотите представления, которые не в HTML, посмотрите на другие механизмы просмотра ASP.NET MVC.Если вы хотите, чтобы что-то предоставляло вам представление WinForms, вам придется кодировать бизнес-логику таким же образом, но затем получить все эти классы / данные из приложения WinForms в том же решении, и когда пользователь захочет перейти к«страница», они должны будут загрузить приложение WinForms и запустить его.Вы можете попробовать сделать его похожим на веб-материал, но это не гарантировано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...