MVVM Pattern trên Silverlight và WPF
1. Tại sao phải cần MVVM - MVVM là gì
MVVM - Model View ViewModel : là một pattern trong lập trình nhắm tách công việc thiết kế và truy xuất dữ liệu từ Business Logic.
MVVM bao gồm:
- Hiển thị data lên View
- Có khả năng unit test
- Phân chia rõ ràng có cấu trúc của dữ liệu và View
- Giúp công việc thiết kế và lập trình viên làm việc độc lập nhưng dễ dàng kết hợp lại
M - Model :
- Các thuộc tính hiển thị ( properties)
- Các object để truyền trên network ( DomainObjects )
V - View:
- Các màn hình để hiển thị, các trang, các user control như page, grid trong silverlight
- Các template để hiển thị data
- Quản lý các thao tác của user:
- Bindings - Ràng buộc giữa các control và data ( textbox và properties của model)
- Events - Sự kiện
- Behaviors
- Themes và styles trong silverlight hoặc WPF
VM - ViewModel
- Đây là class trung gian của View và Model
- ViewModel chứa các model và hiển thị lên View
- View sẽ lấy data từ ViewModel thông qua
- Các thuộc tính (Properties)
- Commands
- Methods
- Gọi các services để lấy data từ server và hiển thị lên View
Mô hình tổng quát như sau:
View - ViewModel - Model
UserControl (xaml) , Page.xaml (chứa: RIA Services, Model) (Domain Objects)
Ví dụ:
LoginView sẽ call LoginViewModel khi user Login vào hoặc hiển thị màn hình login
LoginView - LoginViewModel - User
User <-> View <-> ViewModel <->
MVVM - Model View ViewModel : là một pattern trong lập trình nhắm tách công việc thiết kế và truy xuất dữ liệu từ Business Logic.
MVVM bao gồm:
- Hiển thị data lên View
- Có khả năng unit test
- Phân chia rõ ràng có cấu trúc của dữ liệu và View
- Giúp công việc thiết kế và lập trình viên làm việc độc lập nhưng dễ dàng kết hợp lại
M - Model :
- Các thuộc tính hiển thị ( properties)
- Các object để truyền trên network ( DomainObjects )
V - View:
- Các màn hình để hiển thị, các trang, các user control như page, grid trong silverlight
- Các template để hiển thị data
- Quản lý các thao tác của user:
- Bindings - Ràng buộc giữa các control và data ( textbox và properties của model)
- Events - Sự kiện
- Behaviors
- Themes và styles trong silverlight hoặc WPF
VM - ViewModel
- Đây là class trung gian của View và Model
- ViewModel chứa các model và hiển thị lên View
- View sẽ lấy data từ ViewModel thông qua
- Các thuộc tính (Properties)
- Commands
- Methods
- Gọi các services để lấy data từ server và hiển thị lên View
Mô hình tổng quát như sau:
View - ViewModel - Model
UserControl (xaml) , Page.xaml (chứa: RIA Services, Model) (Domain Objects)
Ví dụ:
LoginView sẽ call LoginViewModel khi user Login vào hoặc hiển thị màn hình login
LoginView - LoginViewModel - User
User <-> View <-> ViewModel <->