MVVM более необходим / важен для Silverlight / WPF, чем MVP для Webforms? - PullRequest
1 голос
/ 14 апреля 2011

Я надеюсь, что название отражает то, что я действительно спрашиваю.Мне кажется, что когда люди предпринимают разработку на основе XAML, использовать ли MVVM - это даже не вопрос, а скорее понятный факт.Исходя из опыта Winforms и Webforms, я обнаружил, что мы почти никогда не использовали MVP (например).Хорошо понималось, что основными причинами перехода на путь MVP (кроме того, чтобы быть пуристом) является более высокий уровень модульного тестирования и возможность обмениваться «логикой представления» с различными пользовательскими интерфейсами.Что касается последующего, это никогда не было требованием в моих проектах.Если что-то у нас могло быть несколько пользовательских элементов управления для этой цели.

Что касается модульного тестирования, я никогда не считал необходимым тестировать мой code behind, потому что он ничего не делал, кроме обработки событий пользовательского интерфейса и выступать в качестве прокси(создать экземпляр и связать) с моим бизнес-уровнем.Я могу понять, что если люди обойдут бизнес-уровень и создадут экземпляры своего любимого уровня доступа к данным непосредственно в коде, то применим бизнес-логику прямо там, где MVP принесет огромную пользу.В моем случае я всегда ставлю DAL на BLL, так где же здесь настоящий «выигрыш» в отношении юнит-тестирования?

Суть в том, что MVP никогда не использовался автоматически.Сейчас я смотрю на возможность использования Sliverlight (впервые) в проекте, и я чувствую, что совершу грех, если не буду использовать MVVM.

Я знаю, что есть убойиз мелочей, которые специфичны для MVVM, возможно, которые раньше не рассматривались, когда я принимал решение «MVP или нет MVP».Я читал о поддержке Blend (у меня даже нет Blend), может быть, о некоторых других важных аспектах?Суть в том, что MVVM действительно намного важнее для Silverlight, чем MVP, например, для Webforms?Или мы находимся в эпоху Возрождения, посвященную разработке .NET, когда шаблоны и лучшие практики занимают центральное место (вроде Java).

Ответы [ 3 ]

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

Мы перешли от WinbNet форм Vb.Net к C # и WPF / Silverlight под MVVM. Это определенно изменение темпа от нашего кодирования adhock. Мне нравится иметь возможность создавать несколько видов для работы с одной моделью представления. Позволяет легко настраивать экраны для наших клиентов, которые хотят этого, без большого количества программных изменений.

Я нашел эти сообщения в переполнении стека, которые могут ответить на ваши вопросы:

Преимущества MVVM перед MVC

Почему MVVM и каковы его основные преимущества?

Уникальные преимущества MVVM

У них есть несколько хороших ответов, сравнивающих MVP с MVVM.

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

**** Дополнительно **

Если вы имели в виду Expression Blend, я использовал blend, когда впервые изучил xaml. Теперь, когда я знаю, что я делаю, я редко использую это, если мне не нужно делать что-то сложное с анимацией или еще чем-то. Я использую Visual Studio для его кодирования, так как, по моему опыту, Blend все еще громоздок. Не поймите меня неправильно, это отличная программа и великолепно делает анимацию, но на самом деле она предназначена для дизайнеров, а не для программистов.

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

Я думаю, что главная причина, почему MVVM так популярен из-за мощного DataBinding.

Например, для веб-форм вам потребуется создать свои собственные интерфейсы, инфраструктуру и т. Д. ... для реализации MVP, тогда как в Silverlight / WPF привязка данных есть просто так, независимо от того, используете ли вы ее или нет,зависит от тебя.

По моему мнению, MVVM просто добавляет слой тестируемой логики представления (ViewModel), а не шаблон MVP, где ваша бизнес-логика действительно может быть в самом презентаторе.

ВПодводя итоги, если он уже есть, его легко использовать, используйте его ... это как если бы у вас была машина, но вы все равно можете пройти 10 миль до ближайшего рынка или вы можете водить машину (большинство будет рекомендовать вам ехать).

Это мои 2 цента.

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

Из моего ограниченного опыта работы с WPF и MVVM мое мнение таково:

MVVM - это шаблон, но не конечный из всех WPF.Особенно в случае с МВВМ "пуристами".Есть время и места для обработчиков событий и кода, даже в WPF.Преимущество разработки xaml и MVVM заключается в отделении логики от дизайна, но иногда логика вовлекает ваш проект гораздо более непосредственно, чем позволяет MVVM.

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