Như ở bài trước tôi đã giới thiệu về caliburn.mocro, bài tiếp theo này tôi sẽ hướng dẫn các bạn về cách tạo một project WPF hợp chuẩn mô hình MVVM(*) dùng Caliburn framework. Bài này cho ta cái nhìn cơ bản về cấu trúc một Project WPF-Caliburn...
I> Hiểu MVVM Là Gì
Để tổ chức một project theo mô hình MVVM nói chung và Caliburn nói riêng chúng ta cần hiểu rõ MVVM là gì và cơ chế Mapping(View - ViewModel) mà Framework hiện tại hỗ trợ. Hai hình sau minh họa khã rõ mô hình MVVM
Class diagram
II> Quy Ước Tổ Chức Một Project Của Caliburn
Theo quy ước của Caliburn, phần View-ViewModel-Model phải được đặt tên theo một quy ước để có thể tận dụng tối hiệu năng của framework - mà dễ thấy nhất đó là một View sẽ được tự động kết dính với một ViewModel( bạn sẽ có cơ hội cảm nhận về điều này sau) nếu bạn tuân các thủ quy ước sau.
View Model | View | |
---|---|---|
Convention | <EntityName>ViewModel | <EntityName>View |
Example 1 | ShellViewModel | ShellView |
Example 2 | TabViewModel | TabView |
Vì View trong thực tế được thể hiện như một Page nên chúng ta hoàn toàn có thể đặt tên như bảng dưới đây
View Model | View | |
---|---|---|
Convention | <EntityName>PageViewModel | <EntityName>Page |
Example 1 | MainPageViewModel | MainPage |
Example 2 | OrderPageViewModel | OrderPage |
Nếu chúng ta có một Namespace khá dài cho các ViewModel hoặc View, chúng ta phải tuân thủ cách đặt tên sau
View Model | View | |
---|---|---|
Convention | <RootNS>.<ViewModelTypeName> | <RootNS>.<ViewTypeName> |
Example 1 | MyProject.ShellViewModel | MyProject.ShellView |
Example 2 | MyProject.MainPageViewModel | MyProject.MainPage |
Hoặc
View Model | View | |
---|---|---|
Convention | <RootNS>.ViewModels.<ChildNS>.<ViewModelTypeName> | <RootNS>.Views.<ChildNS>.<ViewTypeName> |
Example 1 | MyProject.ViewModels.ShellViewModel | MyProject.Views.ShellView |
Example 2 | MyProject.ViewModels.Utilities.SettingsViewModel | MyPoject.Views.Utitlities.SettingsView |
Dưới đây là một ví dụ về cách tổ chức một project Caliburn.Micro
Hay
Tất cả những quy ước trên là bạn phải thực hiện chính xác nếu muốn tận dụng nhiều tính năng hay, song bạn hoàn toàn có thể thay đổi theo ý cá nhân vì đây là framework mã nguồn mở.
-----------------------------------------------------------------
- Tìm Hiểu Về Caliburn.Micro Framework Phần I
- Tìm Hiểu Về Caliburn.Micro Framework Phần II
Chúc các bạn thành công!
PHẠM TUÂN
Đăng nhập để nhận bài
ConversionConversion EmoticonEmoticon