Mô tả

MVVM (stands for Model-View-ViewModel) is a well-known architectural pattern in the world of WPF. Most enterprise level WPF applications are MVVM-based.

Learn deeply the concepts lying behind the MVVM pattern in order to understand what MVVM is in essence and how to pragmatically apply it to a WPF application. This is a great MVVM tutorial for beginners (beginners in MVVM, don't forget to look at prerequisites)!

Teaching Approach

No fluff, no ranting, no beating the air. I respect your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth. Don't forget that this course has English subtitles, so if you don't understand my accent, feel free to turn them on.

Take this course and you will be satisfied.

Build a strong foundation in applying MVVM with this course

In the case you’re just familiar with the WPF framework, learning this course will give you a level-up since you’ll be capable of developing professional WPF applications. Applying MVVM intelligently is a “must have” skill for WPF developers.

If you are an experienced WPF developer, you might be interested in how MVVM frameworks may work under the hood. Throughout the course, we will be building a small MVVM framework similar to Caliburn.Micro.  

Content and Overview

This course is primarily aimed at intermediate developers. Experts may also find interesting MVVM tricks provided in this course. If you are a beginner, be sure you’re ready to take this course, since it requires from you a solid C#-background and acquaintance with WPF.

This course provides solid theoretical base reinforced by tons of practical material. This course is very practical (except the very first introductory module).

“MVVM in WPF” is a very wide topic and it’s hardly possible to cover all the related challenges arising while applying MVVM. That’s why this course includes the most important topics understanding of which is a key for successful development. We will sacrifice some topics which may be interesting for students, but which are hardly connected with MVVM directly. What I’m talking about is, for example, the problem of setting up a full-fledged data access layer. Such topics are omitted.

The most beneficial aspect of this course is that it gives you the deep understanding of the MVVM pattern. For example, you’ll see how to pass parameters to ViewModels through constructors, without using a static message bus, or passing parameters by explicitly setting properties of a ViewModel.

In short, the course covers the following topics:

  • MVVM background: what is MVVM, why to use it, when to use MVVM etc.

  • Connecting Views and ViewModels: View-First and ViewModel-First approaches

  • Design-Time data support

  • Configuring and using an IoC-container (by the example of Castle.Windsor

  • Communication channel between Views and ViewModels: commands, attached and blend behaviors, static message bus (EventAggregator)

  • Navigation: hierarchical UI composition, how to open dialogs,  including modal dialogs, navigating to parameterized ViewModels (pass  parameters into their constructors)

  • Models and validation   

  • MVVM toolkits: Caliburn.Micro more closely

  • Unit-Testing of ViewModels

In the end, we will recap what you have learned and you will try to understand where you have to go further with the intention to master your skills. Here we will have a discussion of different paths you can go on.

------------------------------------------------------------

Keywords related to the course:

  • MVVM in WPF

  • MVVM tutorial

  • MVVM pattern

  • Model-View-ViewModel MVVM tutorial

  • Caliburn.Micro

  • View-First

  • ViewModel-First

Bạn sẽ học được gì

Yêu cầu

Nội dung khoá học

11 sections

Introduction to MVVM

11 lectures
How to Ask Questions
00:23
Join .NET Community of Students
00:02
Introduction
03:57
Applications Maintaining
02:26
Why MVVM?
03:41
MVVM in a Nutshell
07:25
Services in MVVM
01:57
Educational Application Overview
03:51
Problems of Monolithic Design
02:43
Downsides of MVVM
01:58
Conclusion
01:25

Connecting Views and ViewModels

17 lectures
Outline
00:55
Naming Conventions
01:47
Preparing the Solution
04:15
View-First VS ViewModel-First
00:47
View-First Intro
02:29
Straightforward View-First Implementation
03:43
View-First via ViewModel-Locator. AutoWiring.
03:13
Dependency Injection and Inversion of Control
00:12
Bootstrapper and IoC. Intro
03:12
Bootstrapper and IoC. Demo
04:09
Design-Time Data. Intro
01:49
Design-Time Data. Demo: Separate ViewModels and Mixing In.
04:14
Design-Time Data. Demo: Avoiding Duplication.
02:27
View-First via ViewModel-Locator. Locator as a Container.
01:53
ViewModel-First. Intro
01:38
ViewModel-First. Demo
05:09
Conclusion
01:05

Communicating Views and ViewModels

10 lectures
Outline
00:41
Commands in WPF and MVVM
01:46
RelayCommand. Intro
01:03
RelayCommand. Demo
06:10
Behaviors. Intro
02:10
Attached Behaviors
03:03
Blend Behaviors
02:02
MessageBus. Intro
00:48
MessageBus. Demo
03:51
Conclusion
01:00

Navigation and Other Services

11 lectures
Outline
00:49
Locating MVVM Components
01:39
UI-Composition
01:02
Navigation without Parameters
03:55
Navigation with Parameters
03:11
Homework: Navigation without MessageBus
00:48
Dialogs. Intro
00:33
Dialogs API Demo
04:02
Applying Dialogs API
04:24
Making INotifyPropertyChanged Less Painful
01:33
Conclusion
00:53

Models and Validation

8 lectures
Outline
00:38
Models Wrapping
01:30
Stateful ViewModel VS Stateless ViewModel
01:43
Validation. Intro
01:45
Validation. Demo 1.
02:06
Validation. Demo 2.
04:04
Homework: Apply Validation for managing the state of UI
00:05
Conclusion
00:58

MVVM Frameworks

6 lectures
Outline
00:56
MVVM Frameworks
01:34
Prism and MVVM-Light
02:07
Caliburn.Micro. Intro
02:49
Caliburn.Micro. Demo
03:44
Conclusion
00:49

Wrap Up

3 lectures
Final Words
01:40
Test 1
13 questions
Test 2
9 questions

Appendix A. Unit Testing.

1 lectures
Unit Tests for ViewModels
04:41

Appendix B: Implementing a Real-World Application

11 lectures
Outline
01:10
"True or False" Game
01:48
Constructing MainWindow.xaml
12:01
Implementing Logic of MainWindow
11:37
Constructing GameWindow.xaml
04:10
Implementing Logic of GameWindow
03:38
Problems of Monolithic Design
00:09
Preparing MVVM-based Application
04:38
Bootstrapping with Caliburn.Micro and Castle.Windsor
06:27
Bringing Models and Services
02:54
Implementing the Remaining Part
06:19

Appendix C1: Dependency Inversion Principle.

11 lectures
Outline
01:35
DIP Definition
03:30
Dependencies
04:49
Volatile and Stable Dependencies
02:53
Definitions of IoC and DI
03:18
DIP Violation Demo
02:47
Refactoring to a Better Design Applying DI
08:31
DI Techniques
07:09
Architectural Implications
05:24
Common Smells of DIP Violation
02:37
Conclusion
02:03

Appendix C2: Introduction to DI-Containers (IoC-Containers)

6 lectures
Outline
01:07
Pure DI and IoC-Containers
05:01
Building a Simple IoC-Container
03:53
Service Locator Design Pattern
02:54
Conclusion
01:17
BONUS LECTURE
01:18

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.