WPF / XAML против MVC Paradigm: недостатки в фундаментальном дизайне - PullRequest
2 голосов
/ 29 января 2011

В MVC модель может иметь несколько представлений, в WPF модель с выделенным кодом XAML ограничена одним одиночным XAML (представление), не является ли недостаток WPF / XAML с самого начала в отношении MVC?

Ответы [ 3 ]

7 голосов
/ 29 января 2011

Я рекомендую посмотреть на MVVM для использования с WPF.

Вы сравниваете MVC с Windows Forms с WPF с кодом, который сравнивает архитектурный шаблон с технологией (без использования шаблона). Это несправедливое сравнение.

Я написал серию MVVM, начиная с перспективы Windows Forms , которая может помочь в понимании этого. Вы обнаружите, что разделение View и ViewModel, возможное с WPF, намного чище и проще в реализации, чем Контроллер MVC. На самом деле, это позволяет создавать еще более несвязанные архитектуры с меньшими затратами на реализацию.

1 голос
/ 29 января 2011

Хороший вопрос!

В MVC вы утверждаете, что модель может иметь несколько представлений, что верно. Однако у каждого представления будет свой контроллер.

В MVVM модель может иметь несколько представлений, и в этом случае у каждого может быть своя модель представления.

Однако, с практической точки зрения, если ViewModel не имеет каких-либо концепций, которые являются весьма специфичными для определенного вида, вполне возможно повторно использовать модели видов. Фактически, я написал статью о кроссплатформенных приложениях XAML, в которой я повторно использовал код между тремя приложениями, одно для WP7, одно для Silverlight, другое WPF:

http://blogs.msdn.com/b/mikeormond/archive/2010/12/09/writing-cross-platform-xaml-applications.aspx

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

0 голосов
/ 27 февраля 2011

WPF / XAML - это технология, а MVC - это шаблон проектирования. Хорошо, когда технология не ограничивает вас конкретным шаблоном и позволяет разработчику выбирать, какой шаблон использовать.То же, что языки программирования позволяют использовать любой шаблон проектирования.

Вы можете использовать MVC, MVP, MVVM или YourMegaPattern с XAML \ WPF.Технология должна быть выше шаблонов, это рамки, которые обычно привязаны к определенному шаблону.

Например, вы можете использовать технологию ASP .NET и инфраструктуру MVC на ее основе.

...