Какой шаблон разработки .NET 2.0 (MVP, MVC и т. Д.) Лучше всего подходит для повторного использования при переходе на WPF и MVVM? - PullRequest
4 голосов
/ 09 июля 2009

Мы рассматриваем такие шаблоны, как MVP, которые могут помочь нам отделить пользовательский интерфейс от логики и данных. Инициатива поздняя в игре, но это попытка начать устанавливать правила, необходимые для написания более тестируемого кода (в настоящее время мы пишем шарики для волос, спагетти, клейкую ленту, шурупы для дерева и т.д.)

Рассматривая подходы к использованию приложения WinForms 2.0, мы также помним WPF и пользовательский интерфейс следующего поколения нашего продукта. Мы пытаемся создать что-то, что можно легко использовать в мире WPF, отключив наш пользовательский интерфейс / представление WinForms и включив наш новый пользовательский интерфейс / просмотр WPF.

Подходит ли какой-либо конкретный шаблон для разработки 2.0 естественным образом в шаблон WPF MVVM? Какой шаблон мы должны придерживаться сегодня, который позволит нам перейти в WPF без необходимости либо взламывать WPF на нашей существующей логике представления, либо значительно переработать / переместить (снова) нашу логику представления в соответствии с WPF?

1 Ответ

3 голосов
/ 09 июля 2009

Шаблон MVP даст вам такое логическое разделение, но в основном я считаю, что сила MVP заключается в написании тестируемого кода.

Я бы порекомендовал прочесть книгу дяди Боба (Роберт С. Мартин) под названием «Гибкие принципы, шаблоны и практики».

Также я считаю, что вам не обязательно использовать шаблон, подобный MVP, для логического отделения вашей бизнес-логики от уровня пользовательского интерфейса. При правильной структуре вся ваша бизнес-логика будет находиться на бизнес-уровне, который полностью отключен от уровня пользовательского интерфейса. После этого вы можете использовать несколько интерфейсов, таких как WinForms, WebForms или WebService или даже WPF, для одного и того же бизнес-уровня без необходимости переписывать какую-либо бизнес-логику, валидацию и т.д.

В этом случае я бы порекомендовал прочитать книгу Роки Лхотки "Эксперт C # Business Objects". Эта книга легко читается, и он объясняет, как разделить логические слои. Также его цель состоит в том, чтобы свести код пользовательского интерфейса к минимуму.

...