Объединить ViewModel (WPF / Silverlight) и строго типизированные ViewData (ASp.NET MVC)? - PullRequest
1 голос
/ 19 января 2010

Примечание. В следующем тексте я буду использовать термин «ViewModel» как для ViewModel в WPF / Silverlight, так и для строго типизированных ViewData в ASP.Net MVC.

Я хотел бы создать клиентов ASP.Net MVC и WPF / Silverlight для одного и того же проекта (другими словами, для одной и той же DataModel). Должен ли я создать общий проект ViewModel или отдельную ViewModel для каждой технологии клиента?

Я хотел бы полагать, что обычная ViewModel - это правильная вещь, но необходимость создания зависимых свойств или строк JSON делает его несовместимым.

Может быть, другое решение - поместить общую часть ViewModel в слой DataModel?

Буду признателен за любую помощь, которая поможет мне в правильном направлении, спасибо

1 Ответ

1 голос
/ 19 января 2010

Вам потребуются отдельные модели ViewModel из-за ограничения (наложенного Visual Studio), что проект Silverlight не может ссылаться на проект не Silverlight (хотя существует один или два задокументированных хака для решения этой проблемы).

Вы можете поделиться кодом между двумя проектами, имея физический класс в одном проекте, а затем добавив существующий элемент во второй проект (перейдите к исходному классу и выберите его, затем нажмите «Добавить как ссылку»). Небольшая подсказка: если вы думаете, что класс будет разделен таким образом, сохраняйте пространство имен как можно более нейтральным, это может спасти путаницу и / или рефакторинг в дальнейшем.

...