Здесь я пытаюсь ответить в очень простых наивных терминах по некоторым вопросам WPF, с которыми сталкиваются разработчики beginners/winforms, и с чем-то, с чем я столкнулся, когда начал работать с WPF. В Интернете есть много статей и руководств, которые дают достаточно знаний, но трудно найти ответы на очень простые вопросы. Я пытаюсь обратиться к нему здесь.
Что такое WPF?
Windows Presentation Foundation по мере расширения; это система «Презентация» для создания оконных приложений. Если вы разработчик winforms, то основное отличие, которое вы найдете в WPF, - это то, как выглядит дизайнер. В отличие от winforms, код дизайнера не является кодом C#, а кодом XAML.
Почему WPF?
Ну, основная причина, по которой WPF является предпочтительным по сравнению с winforms, заключается в том, что WPF обеспечивает богатый интерфейс. Помимо этого есть много других преимуществ, которые предоставляет WPF, он доступен более четко во многих учебниках в Интернете. Это векторный движок рендеринга. Если вы просто сравниваете пользовательский интерфейс приложения winform и приложения WPF, то разница в отношении внешнего вида будет спокойной.
Что такое MVVM?
MVVM - это шаблон, который адаптирован при разработке приложений. Он расширяется как «Model View View Model», в основном при структурировании проекта у нас есть папка модели, в которой будут размещены все файлы модели (.cs), в папке модели представления все файлы viewmodel (.cs) будут и в папке просмотра будут помещены все файлы вида (.xaml). Если MVVM используется, то не будет никакого кода, означающего, что файл .xaml.cs не будет иметь никакого кода, кроме автоматически созданного метода.
Модель: Модель имеет часть бизнес-логики, которая поддерживает модель представления с данными, которые в конечном итоге будут представлены в представлении.
ViewModel: У каждого вида будет модель. Viewmodel будет реализовывать интерфейс INotifyPropertyChanged и будет иметь все свойства, привязанные к соответствующему виду. Модель просмотра не загружена ни одной бизнес-логикой, и ответственность лежит на модели.
View: Просмотреть не что иное, как файл xaml, где находится окно. XAML - это язык разметки. В WPF, в отличие от winforms, каждый элемент управления будет привязан к свойству зависимостей либо предопределенному, либо определяемому пользователем.
Почему MVVM?
Всякий раз, когда приложение разрабатывается в WPF, MVVM поставляется с ним. Одним из самых больших преимуществ использования MVVM является то, что он позволяет проводить независимое тестирование UI-модуля, поскольку во время модульного тестирования нет кода. Объекты, связанные с UI, не требуются, и, следовательно, возможно покрытие 100% кода. В модульном тесте команды «команды» (поиск команд в wpf) могут быть переданы пользователем для проверки конкретной пользовательской системы.
Обязательно ли использовать MVVM при работе с WPF?
Я бы сказал, что нет, это не обязательно для MVVM при работе с WPF, но это зависит от требования. Нужно взглянуть на преимущество MVVM, а затем решить, идти ли с ним или нет. MVVM добавляет сложности во время начальных дней разработки, но в конечном итоге он имеет свои преимущества. Если полное приложение находится в winforms, и только небольшой модуль, а небольшая функция разрабатывается в WPF, тогда нет необходимости следовать MVVM, можно с радостью получить код и получить богатый опыт пользовательского интерфейса. Опять повторюсь, это полностью зависит от типа требования.
Могу ли я иметь несколько моделей просмотра для одного вида/нескольких видов для одной модели представления?
Это вопрос, для которого у меня нет четкого четкого ответа в любых сообществах .net. Прежде всего, поскольку мы видели, что основной целью перехода с MVVM является достижение 100% -ного охвата кода, это делает очевидным, что мы будем тестировать каждую модель представления независимо и, следовательно, тестируем полную форму. Имея это в виду, лучше пойти на один взгляд на один подход к представлению. Мы всегда можем связываться между режимами просмотра, если есть необходимость, используя MVVM Light messenger или любые другие средства, которые его облегчают.
В чем разница между моделью и моделью?
Это один вопрос, который новички всегда имели, так как они не находят большой разницы между ними. Вот разница: - Модель - это не что иное, как класс, в котором есть данные-методы для изменения данных, которые будут использоваться в viewmodel и в конечном итоге привязаны к представлению. ViewModel имеет свойства, которые будут привязаны к представлению. В методах get или set можно вызвать метод в модели для получения данных. Опять же эта модель предназначена для этой конкретной модели представления. Теперь вы можете решить, действительно ли вам нужен класс модели, если нет тяжелой бизнес-логики, тогда вы можете избежать класса модели и поместить его в viewmodel, но уборщица будет использовать класс модели.
В MVVM можно ли пропустить модель представления или класс модели для представления?
Опять же, это зависит от требований, о которых упоминалось ранее, если нет тяжелой бизнес-логики, тогда вы можете избежать класса модели и поместить его в режим просмотра, но более чистым подходом было бы использование класса модели.
Grawk = grok + awk - отличное новое слово – MrTelly