Среда MVP или MVVM для разработки как WPF, так и .NET CF 3.5 - PullRequest
2 голосов
/ 04 апреля 2011

Я создаю набросок наброска архитектуры для автономной клиент-серверной платформы, который включает несколько разных типов клиентов.Мне нужно поддерживать: веб-клиенты, настольные рабочие станции и мобильные устройства (WM 6.x сейчас и Android позже).

Я ищу инфраструктуру на основе MVP или MVVM, которая позволила бы мне повторно использовать как можно большую частькод и архитектура, насколько это возможно между клиентами, в то время как:

  • с использованием WPF для разработки настольных систем
  • с использованием .NET CF 3.5 для разработки под Windows Mobile

Эта структураочевидно, не требуется поддержка Android, однако я рассматриваю Mono для Android для разработки клиента Android (для упрощения обслуживания всей платформы), поэтому переносимость была бы дополнительным преимуществом.

Пока я исключаю:

  • Prism (не поддерживает мобильные устройства на базе WM - только Windows Phone 7)
  • MVC # (не поддерживает WPF)

Буду признателен за любые советы, которые помогут в дальнейшем исследовании предмета.

Ответы [ 4 ]

2 голосов
/ 05 апреля 2011

Эти фреймворки MVVM работают с Windows Phone 7:

  1. Caliburn Micro
  2. MVVM Light (не рекламирует его, но я был на демо, где он использовался на WP7)
  3. ReactiveUI (использует Reactive Extensions для .NET)

Мой личный фаворитэто ReactiveUI, но если вы никогда не использовали Reactive Extensions, то сначала это может быть «сжигание мозгов».

Что касается композиции пользовательского интерфейса (вы упомянули Prism), вариантов не так много, в основном из-заограничения на отражение на телефоне.Я видел статью, в которой кто-то заставил MEF работать по телефону, и MEF - это, вероятно, все, что нужно большинству людей в этой ситуации.Вы можете проверить эту статью здесь .

Надеюсь, это поможет.

1 голос
/ 08 мая 2015

Я провел то же исследование и пришел к следующему выводу (который я еще не реализовал):

  • Нет никаких MVVM-структур с открытым исходным кодом, поддерживающих .NETCF ,Вы можете найти только MVC или MVP, но не MVVM.

Предложение: получите исходный код инфраструктуры Open Source MVVM, поддерживающей Full / Desktop .NET, и посмотритеесли вы можете адаптировать его (чтобы он перекомпилировался) для .NETCF.Я нашел следующие две, которые также поддерживают другие платформы, которые вы упомянули:

Кроме этого, я не вижу другого способа сделать это.

HTH,

1 голос
/ 04 апреля 2011

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

0 голосов
/ 07 апреля 2011

MVVM не имеет особого смысла в Windows Mobile + .NETCF, поскольку у вас нет INotifyPropertyChanged, а реализация Model-View-Presenter в WPF или любая поддерживаемая среда INotifiyPropertyChanged не будет столь же эффективной, как Model-View-ViewModel

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

Прочтите эту очень хорошую статью Даниэля Мота, описывающую, как распределить ресурсы между компактной и полной фреймворками: http://msdn.microsoft.com/msdnmag/issues/07/07/ShareCode/default.aspx

...