Совместное использование моделей между MVVM и MVC? - PullRequest
4 голосов
/ 08 декабря 2011

В настоящее время я работаю над проектом, который имеет довольно стандартную развязанную структуру, например:

Хранилища -> Услуги -> Модели просмотра -> Представления

Слои Repository и Service используют объекты POCO. Модели представлений создаются на основе этих объектов и вызывающих сервисных методов, а затем передаются представлениям.

У меня есть два внешних проекта, одно веб-приложение, использующее MVC3, и одно настольное приложение, использующее WPF. Модели представлений содержатся в отдельной библиотеке классов, поскольку большинство из них одинаковы для обоих приложений. (Есть несколько исключений, но они связаны с использованием определенных виртуальных машин для каждого проекта)

В настоящее время я нахожусь на стадии подготовки фундамента и работы со стороны MVC. Сейчас я смотрю на WPF и думаю об использовании легкого инструментария MVVM.

Мой вопрос: учитывая, что модели представлений совместно используются приложениями MVC и WPF, подходит ли легкий набор инструментов MVVM (или любой другой набор инструментов)? Есть ли какая-то причина, по которой легкий инструментарий MVVM не следует использовать с MVC3?

Я долго гуглил и ничего конкретного не нашел. Заранее спасибо за ваши мысли.

1 Ответ

5 голосов
/ 08 декабря 2011

ИМХО ответ таков, что вы не сможете успешно делить ViewModels между MVVM и MVC.Несмотря на то, что они называются одинаково, они очень адаптированы к конкретной реализации.Например, вам нужно реализовать команды, полагаться на двухстороннее связывание и т. Д., Когда вы пишете виртуальные машины для WPF, ничего из этого не имеет отношения к MVC.MVVM Light помогает вам достигнуть MVVM с WPF / SL, опять же, вообще не относящимся к MVC.

Я нахожусь в таком же сценарии, как и вы, за исключением того, что мой веб-проект - стандартные веб-формы, а не MVC.Я делюсь своими ссылками на проекты .Business, .Model между моими проектами .Web и .Desktop, но каждый, очевидно, делает свое дело с результатами бизнес-уровня (сервисы, если вы их используете).Я очень новичок в WPF, если я ошибаюсь в своих оценках, я надеюсь, что кто-то меня поправит.

...