Подтвердить что ты не робот

MVVM мертв в Windows 8 Store Apps?

Я начал изучать приложения для Windows 8 Store.

Я помню из Silverlight и WPF-программирования ранее, что люди адаптировали концепцию MVVM, и теперь я не уверен, следует ли мне использовать то, что я узнал тогда или нет.

Я добавил ссылку на GalaSoft.MvvmLight и создал ViewModel и добавил его в свой xaml, как это было предложено:

DataContext="{Binding Source={StaticResource Locator}, Path=Welcome}"

Похоже, что Microsoft включила в LayoutAwarePage некоторую реализацию ModelView:

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
    // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"]
    //  DefaultViewModel["WelcomeTiles"] = WelcomeTiles;
}

к которому можно получить доступ, если установлен следующий datacontext.

<DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" />

Итак, теперь я не уверен, что я должен создать ModelViews, как я их помню, используя MVVMLight или просто добавить данные в файлы с кодом в DefaultViewModel.

Что люди переживают с обоими? Я только что начал, и моя следующая цель - добавить обработчики для того, когда элемент щелкнул в GridView - какой из указанных выше путей позволит сделать это простым способом?

4b9b3361

Ответ 1

Нет, MVVM никогда не умрет!

Model-View-ViewModel - это шаблон проектирования, поэтому он не зависит от конкретной структуры или реализации. Тем не менее, это шаблон дизайна пользовательского интерфейса, который наиболее удобен для использования с инфраструктурами пользовательского интерфейса, которые поддерживают привязку данных.

Приложения Windows 8 Metro включают XAML и структуру привязки, которая очень похожа на Silverlight и WPF. По этой причине MVVM - отличный выбор для управления вашим кодом.

Код, который вы обнаружили в LayoutAwarePage, описан в этом сообщении в блоге. Это попытка упростить разработку приложений для Windows 8 Metro, предоставляя различные заглушки. Эта страница содержит DefaultViewModel, который является наблюдаемым словарем.

Лично я бы не использовал его!

Ответ 2

Нет MVVM не мертв и до сих пор жив!

ColinE defintion MVVM возобновляет его довольно хорошо. Действительно, MVVM представляет собой в основном шаблон проектирования и не зависит от конкретной структуры.

Использование MVVM не является догмой..., хотя большинство тех, кто много работал с программированием приложений XAML [WPF, Silverlight, WP 7 и WinRT...], согласятся с тем, что MVVM действительно облегчает четкое разделение внимания SOC, между развитием GUI и логикой конца.

Я лично использовал пакет Laurent Bugnion MVVMLight от Nuget в сочетании с WinRT, хотя вы можете использовать любой другой пакет MVVM или вариант, с которым вы чувствуете себя непринужденно.

Если вам нужны дополнительные примеры ссылок, я бы предложил вам взглянуть на следующие запись вебинара на "MVVM в Windows 8 Store" от Gill Cleeren

http://www.silverlightshow.net/video/MVVM-in-Win8-Webinar.aspx

Ответ 3

MVVM не мертв в приложениях Windows 8 Metro.

Мы не использовали MvvmLight в нашем приложении, но основные компоненты, которые вам нужны, такие как привязка к свойствам ViewModel, с использованием ICommands в ViewModel и INotifyPropertyChanged, доступны с очень незначительными изменениями (если есть).

Недавно Microsoft опубликовала хороший образец. Он явно не говорит MVVM, но у него есть то, что вам нужно для начала работы. И Джош Смит статья, конечно, по-прежнему полезен.

Ответ 4

Я рекомендую http://stylemvvm.codeplex.com, написанный с нуля для поддержки проектов Metro (С#, С++/CX, HTML/JS). Он включает в себя полную IOC, реализацию для ICommand и приложенных действий команд, сервисов для плит, значков, тостов и прелестей. Он также включает в себя класс Mediator, который является диспетчером. Плюс несколько шаблонов визуальных студий, которые помогут вам начать работу.

Примечание: я мог бы быть предвзятым, так как я написал его:)