Рекомендации для нового проекта C # WPF MVC - PullRequest
0 голосов
/ 31 августа 2010

Я занимаюсь разработкой системы с использованием WPF 4. Я притворяюсь, что использую MVC в разработке.

Я никогда раньше не использовал MVC, поэтому меня немного смущают концепции.Некоторое время назад я более или менее разрабатываю некоторое программное обеспечение Delphi по этой схеме:

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

В этом новом проекте я претендую на разработку этого тонкого клиента (часть View MVC) с использованием WPF,но другие части я не уверен, что мне нужно делать.Например: 1. Часть «Модель» будет моим Серверным приложением, но «Контроллер» будет работать на клиенте или серверном компьютере?
2. Как мне установить связь между сервером и клиентом в этом случае?Розетки?remoting?
3. Что вы рекомендуете?Есть какой-нибудь «Базовый образец» такого рода проекта, который можно скачать и изучить?

Я благодарю вас за что-нибудь здесь:)

Ответы [ 2 ]

4 голосов
/ 31 августа 2010

MVVM (Model View View Model) - образец дизайна, подобный MVC, который очень хорошо подходит для разработки WPF и Silverlight, отчасти из-за его сосредоточенности на связывании, при котором Xaml является высоко функциональным.Что касается клиент-серверного взаимодействия, то в наши дни рекомендуется использовать службы WCF.

Существует множество вводных статей о клиенте MVVM, приложениях, основанных на коммуникации WCF.Вот один пример, который я извлек из себя:

http://calcium.codeplex.com/

Кроме того, для WPF доступно множество сред MVVM.Пара:

MVVM Light (просто и легко начать с):

http://www.galasoft.ch/mvvm/getstarted/

Caliburn (очень функциональный и многофункциональный):

http://caliburn.codeplex.com/

1 голос
/ 31 августа 2010

+ 1 до jeffn, поскольку шаблон MVC в WPF называется MVVM. Это вариант шаблона, который очень хорошо сочетается с инфраструктурой привязки WPF.

Ваше "клиентское" приложение будет содержать модели, представления и модели представления (модели, представления и контроллеры). Вы бы не пытались разделить шаблон по границе сервер / клиент. Это не практично и ничего не спасает. Если между клиентом и сервером существует совместное использование кода, это будут модели.

Вот сценарий:

  1. Пользователь нажимает кнопку, запрашивающую список пользователей. Кнопка связана со свойством типа ICommand в ViewModel. Нажатие кнопки запускает метод Execute ICommand, который ViewModel интерпретирует как запрос для пользователей.

  2. ViewModel подключается к серверу через службу WCF. Сервер собирает всех пользователей в экземпляры типа User и отправляет их обратно по сети.

  3. Затем ViewModel берет эти десериализованные пользовательские экземпляры и помещает их в ObservableCollection. Эта коллекция привязана к ListControl в пользовательском интерфейсе.

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