Использование MVVM Light Toolkit для создания смешиваемых приложений - PullRequest
2 голосов
/ 24 мая 2010

Некоторое время назад я опубликовал вопрос относительно переключения между графическим интерфейсом, созданным на основе Blend, и интерфейсом, созданным на основе Visual Studio. Я получил его, чтобы работать нормально, добавив мой проект Blend в мой проект VS2008, а затем изменив Startup Application и перекомпилировав. Это привело бы к двум приложениям, которые имели совершенно разные графические интерфейсы, но использовали один и тот же код ViewModel и Model. Я был очень доволен этим.

Теперь, когда я узнал о MVVM Light Toolkit от Laurent Bugnion, я действительно хотел бы использовать его усилия, чтобы сделать этот процесс поддержки нескольких GUI для одного и того же внутреннего кода возможным. Вопрос в том, облегчает ли инструментарий это, или я застрял, делая это по-своему?

Я смотрел его видео с MIX10 и прочитал некоторые статьи об этом в Интернете. Тем не менее, я еще не видел кое-что, что указывает на то, что есть чистый способ позволить пользователю динамически переключать GUI на лету, загружая другую DLL. Существуют шаблоны MVVM для VS2008 и Blend 3, но я должен создать оба типа проектов для своего приложения и затем ссылаться на конкретные файлы из своего решения VS2008?

UPDATE Я перечитал некоторую информацию на сайте Лорана и, похоже, забыл, что весь смысл шаблона состоял в том, чтобы разрешить открытие того же в VS2008 и Blend. Так или иначе, с этой новой точки зрения похоже, что шаблоны на самом деле предназначены для использования единого графического интерфейса, скорее всего, полностью разработанного в Blend (с удобством отладки через VS2008), а затем смогут использовать две разные модели ViewModel - один время разработки и одно время выполнения.

Так что мне кажется, что ответ на мой вопрос заключается в том, что я хочу использовать комбинацию моего предыдущего решения вместе с MVVM Light Toolkit. Первый позволит мне создать несколько отдельных графических интерфейсов для моего основного кода, а второй облегчит разработку модных графических интерфейсов в Blend с использованием ViewModel времени разработки. Кто-нибудь может прокомментировать это?

Ответы [ 2 ]

2 голосов
/ 25 мая 2010

Я проверил ваш предыдущий вопрос и этот, и я никогда не слышал о том, чтобы переключать проекты на работу в Blend и в Studio, и в итоге я получил два разных интерфейса. Я думаю, что это не было целью MSFT, когда они создавали Blend. Вместо этого, возможность открывать одни и те же файлы проекта и кода в обеих IDE (и во всех обсуждениях, которые у меня были с различными командами в MSFT), намекает на то, что на самом деле целью было иметь только одно приложение, которое можно редактировать в обеих средах.

Я думаю, что в конечном итоге цель состоит в том, чтобы иметь множество инструментов, которые вы можете использовать для редактирования вашего пользовательского интерфейса - XAML, дизайнер Visual Studio, Blend. В зависимости от вашей роли в проекте (разработчик, дизайнер, интегратор) и от ваших возможностей использования инструментов вы можете выбрать один или другой.

Это не значит, что мы никогда не переключаем шаблоны! В зависимости от типа приложения (например, между настольным приложением SL4 или приложением WinPhone7) мы используем один и тот же код ViewModel (и ниже), но в целом добавляем другой интерфейс в файлы. Я продемонстрировал, как это сделать в этом видео: http://channel9.msdn.com/posts/kreekman/TechDays-2010-Understanding-the-Model-View-ViewModel-pattern/

Это то же самое выступление, которое я дал в MIX, но продолженное на 15 минут, где я показываю, как повторно использовать файлы ViewModel и модели, но использую совершенно другой интерфейс для WinPhone7.

Другое приложение переключает шаблоны, когда размер окна изменяется (очень часто используется в WPF, но также применяется к Silverlight), чтобы показать меньше деталей или другой макет для разных размеров экрана.

Я надеюсь, что этот ответ вас не смущает :) и на самом деле, я хотел бы услышать ваши комментарии по этому поводу, прежде чем мы продолжим обсуждение.

Cheers, Laurent

0 голосов
/ 24 мая 2010

Я думаю, MEFedMVVM будет хорошим кандидатом для этого.Это просто, и вы можете комбинировать его с другими фреймворками.

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