none
Зачем нужны папки "Design" и "Skins" в WPF MVVM приложении, созданном с помощью MVVM Light Toolkit V 4.0? RRS feed

  • Вопрос

  • В использовании паттерна MVVM я зелёный новичок. Вчера установил MVVM Light Toolkit V 4.0 на Visual Studio 2010 и попробовал создать порект MVVMLight (WPF4). Всё создалось нормально, но объясните, пожалуйста, мне - чайнику следующее. В созданном проекте есть следующие папки: "Design", "Model", "Skins" и "ViewModel. Для чего нужны папки "Model" и "ViewModel" - это ёжику понятно. Но вот для чего нужны папки "Design" и "Skins"? В папке "Design" содержит файл DesignDataService.cs следующего содержания:

    using System;
    using MvvmLight1.Model;
    
    namespace MvvmLight1.Design
    {
        public class DesignDataService : IDataService
        {
            public void GetData(Action<DataItem, Exception> callback)
            {
                // Use this to create design time data
    
                var item = new DataItem("Welcome to MVVM Light [design]");
                callback(item, null);
            }
        }
    }

    Папка "Skins" содержит файл MainSkin.xaml следующего содержания:

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    </ResourceDictionary>

    Вчера поинтересовался об этом на StackOverflow. Там, насчёт папки "Design" дали вот эту ссыдку 

    Материал в ней не совсем для начинающего. Кроме того, там описывается построение приложения в ExpressionBlend, а я использую только Visual Studio. Ну ладно - прочитал я эту статейку и все, что я из неё мог уяснить, так это то, что в папке "Design" содержатся определённые пользовательские типы данных (классы...), используемые только при разработке приложения. А когда приложение отдаётся заказчику, то эта папка уже не нужна. Вопросы следующие:

    1) Нужны ли эти папки при разработке в VisualStudio 2010 WPF-приложения по шаблону MVVM?

    2) Если нужны, то объясните, пожалуйста, по русски - как ими пользоваться? Что именно туда можно класть и когда?

    3) Почему не создаётся отдельная папка для "View"?

    Буду очень благодарен за представленные сведенья.

Ответы

  • Не работал вплотную с MVVM, но на вопросы 1 и 2 ответ дам.

    Предварительно отвечу на вопрос - "А когда приложение отдаётся заказчику, то эта папка уже не нужна". Нет. Отдаете вы exe и если нужно подключенные к проекту dll и все.

    1-2. Вероятно файлы в этих папках упрощают работу дизайнера в ExpressionBlend. То есть если вы им не пользуетесь, то вроде они вам и не нужны, но с другой стороны паттерны для того и нужны, что в них все делается по некому шаблону. Пака с файлом есть, кушать не просит, не нужна ну и не трогайте.

    А вообще на кодеплексе есть раздел "Документация", где описано что и как делать с MVVM Light Toolkit


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    Отвечающий

Все ответы

  • Не работал вплотную с MVVM, но на вопросы 1 и 2 ответ дам.

    Предварительно отвечу на вопрос - "А когда приложение отдаётся заказчику, то эта папка уже не нужна". Нет. Отдаете вы exe и если нужно подключенные к проекту dll и все.

    1-2. Вероятно файлы в этих папках упрощают работу дизайнера в ExpressionBlend. То есть если вы им не пользуетесь, то вроде они вам и не нужны, но с другой стороны паттерны для того и нужны, что в них все делается по некому шаблону. Пака с файлом есть, кушать не просит, не нужна ну и не трогайте.

    А вообще на кодеплексе есть раздел "Документация", где описано что и как делать с MVVM Light Toolkit


    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

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