WPF vs Caliburn- Tìm Hiểu Về Caliburn.Micro Framework Phần I


Caliburn.Micro Framework được những người phát triển nó nói một cách khiêm tốn là một Framework nhỏ bé nhưng cộng đồng Dev lại thấy rằng nó vô cùng mạnh mẽ. Framework  này được thiết kế cho việc phát triển các ứng dụng xây dựng trên tất cả các nền tảng XAML(WPF, Silverlight, Windows Phone, Windows 8...). Hỗ trợ mạnh cho mô hình MV *,  cho phép xây dựng các giải pháp của bạn một cách nhanh chóng, và bền vững.





I> Tính năng nỗi bật


Binding đơn giản từ View xuống ViewModel với x:Name, giảm thời gian thiết kế


*.XAML

[code language="xml"]
<ListBox x:Name="Products" />
[/code]

*.CS

[code language="csharp"]
// View sẽ được tự động binding đến property bênh dưới
public BindableCollection<ProductViewModel> Products
{
get; private set;
}

public ProductViewModel SelectedProduct
{
get { return _selectedProduct; }
set
{
_selectedProduct = value;
NotifyOfPropertyChange(() => SelectedProduct);
}
}
[/code]

Tự động Binding một Method với hành xử của View kèm các đối số tự động maping theo x:Name


*.XAML

[code language="xml"]
<StackPanel>
<TextBox x:Name="Username" />
<PasswordBox x:Name="Password" />
<Button x:Name="Login" Content="Log in" />
</StackPanel>
[/code]

*.CS

[code language="csharp"]
// Hàm trả giá trị cho biết có thể thực hiện Login command hay không
public bool CanLogin(string username, string password)
{
return !String.IsNullOrEmpty(username) && !String.IsNullOrEmpty(password);
}

// Hàm dưới được thực hiện với sự kiện Click của Button theo kiểu Command
// Các param sẽ được lấy giá trị từ View với name tương ứng paramName
public string Login(string username, string password)
{
// Do somethings...
}
[/code]

Ngoài ra Caliburn còn nhiều tính năng khác mạnh mẽ và thuận tiện hơn khi làm việc với mô hình MV*. Trong mô hình MVVM có sử dụng Caliburn chúng ta sẽ tuân thủ một số cấu trúc cho một project WPF-MVVM như sau( [*] ý chỉ là bất kỳ một ký tự hợp lệ nào nhập từ bàn phím)




  • Các thành phần View(tức code XAML thể hiện một Window  hoặc UserControl hoặc Page...) được đặc chung vào thư mục cha là "*View" hoặc "*Views"

  • Các thành phần ViewModel(tức phần logic *.cs cho View tương ứng) được đặc trong cùng một thư mục cha là "*ViewMode" hoặc "*ViewModels"


II> Bắt đầu cùng Caliburn



Để khởi đầu một dự án với Caliburn.Micro trước tiên chúng ta cần tải thư viện này về theo hai cách thông dụng




  1. Dùng Nuget với command = "PM> Install-Package Caliburn.Micro", dán code này vào Tool->...->Package Manager Console

  2. Download trược tiếp từ codeplex với link


Thứ quan trọng nhất và là xương sống của Caliburn.Midro cũng như các MVVMFramework khác là BootstrapperIoC ngoài ra chúng ta có thể đọc thêm tại trang chủ Caliburn về các thành phần quan trọng trong framework này. Tôi sẽ sớm có nhiều bài viết về chủ đề liên quan cho người mới bắt đầu tìm hiểu về WPF-MVVM có dùng Caliburn.


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

  1. Tìm Hiểu Về Caliburn.Micro Framework Phần I

  2. Tìm Hiểu Về Caliburn.Micro Framework Phần II


Chúc các bạn vui vẻ,


Tuân Phạm


Chúc các bạn thành công!
PHẠM TUÂN