2010-07-10

WPF and Silverlight Framework - Dùng Prism để xây dựng ứng dụng WPF/Silverlight


Sử dụng Prism để xây dựng ứng dụng WPF/Silverlight

Khi mấy cái projects sẽ làm đụng đến WPF thì mình lại phải đi tìm hiểu trước 1 đám framework mới hy vọng chọn 1 cái khả dĩ dùng được rồi document lại, note lại những thứ cần chú ý rồi viết hướng dẫn ... Tất nhiên là try khác với use vì vậy để sử dụng được hay không cũng try cái đã. Nếu personal thì chắc cũng chẳng cần framework, mình chỉ viết vài cái toy thì túc tắc cái gì không giải quyết được lại Googling. Có thể list ra nhiều framework nhưng có vẻ nổi nhất là Caliburn và Prism hay ít nổi hơn là WAF. Đã định try thật kỹ cái Prism từ 2 năm trước :D nhưng rồi cũng xem sơ sơ. Giờ đã xem được 1 đoạn dài nên ngồi viết lại chút xíu thay đổi không khí. Đến khi xong thằng này thì sẽ coi tiếp Caliburn xem. Nhớ lại cái đám CAB/SCSF giờ cũng quăn 1 đống, hic xung quanh phát triển nhanh quá theo ko kịp.

Giới thiệu
Nối tiếp CAB/SCSF Patterns & Practices phát triển một guidance mới với mục tiêu hỗ trợ việc xây dựng ứng dụng với WPF, phiên bản đầu tiên gọi là Prism 1.0 hay Composite Application Guidance for WPF version 1.0 vào tháng 6 năm 2008. Sau đó Prism được bổ sung Silverlight gọi là Prism 2.1 hay Composite Application Guidance for WPF and Silverlight version 2.1 dành cho Silverlight 3 được ra mắt vào tháng 10 2009. Version tiếp theo là Prism 2.2 dành cho Silverlight 4 vào tháng 5 năm 2010 là một minor update của Prism 2.1 (các project chuyển qua Visual Studio 2010, target vào Silverlight 4 và update Silverlight Toolkit).

Hiện tại Prism có version 4.0 drop 3 dành cho Silverlight 4 vào ngày 1 tháng 7 năm 2010 (bài viết này là ngày 10/7/2010) với Microsoft Visual Studio 2010, Microsoft .NET Framework 4.0, Microsoft Silverlight 4, Microsoft Silverlight 4 Tools for Visual Studio 2010.

Composite Application Guidance là gì?
Là một bộ các guidance tức các chỉ dẫn bao gồm các tham khảo, ví dụ cài đặt (reference implementation), reusable library code được gọi là Composite Application Library, tài liệu, QuickStarts và hand-on labs. Đối tượng hướng tới là các software architects và developers thực hiện xây dựng các enterprise-level applications sử dụng WPF hay Silverlight.

Những loại ứng dụng này thông thường bao gồm nhiều màn hình screens, nhiều tính năng, khả năng tương tác với user linh hoạt, hiển thị dữ liệu trực quan ... Một phần quan trọng là các ứng dụng này có đặc điểm "built to last" và "built for change". Có nghĩa là các ứng dụng được mong đợi là có vòng đời tính bằng nhiều năm và có khả năng thay đổi theo những yêu cầu mới mà các yêu cầu này chưa biết trước (new and unforeseen requirements). Vì vậy ứng dụng ban đầu có thể nhỏ và được tạo thành từ những thành phần liên độc lập, kết yếu với nhau (composed of multiple independent and loosely-coupled pieces).

Các phần có trong Guidance
Guidance bao gồm các thành phần sau:
  • Composite Application Library và Unity binaries hay source code
  • StockTrader Reference Implementation là một ứng dụng mẫu dựa trên yêu cầu thực tế (real-world scenario). Đây là một tham khảo tốt để tìm hiểu những vấn đề được xác định và giải quyết như thế nào khi xây dựng composite applications.
  • 4 QuickStarts: UIComposition QS, EventAggregation QS, Modularity QS và Commanding QS là những ứng dụng nhỏ focus vào một mục tiêu cụ thể như UI composition, modularity, commanding, event aggregation ...
  • Composite Application Guidance Hands-On Lab
  • API Documentation
  • Composite Application Guidance Documentation


Stock Trader RI

Documentation
Có thể dùng diagram dưới đây để xem các thành phần trong Composite Application Guidance Documentation.
Composite Application Guidance

Trong trường hợp đã làm quen với CAB, Prism có một tài liệu riêng cho CAB developer Composite Application Guidance for CAB Developers

Home site
Home site của Prism tại địa chỉ http://compositewpf.codeplex.com/.

System requirements
Các yêu cầu phụ thuộc vào 2 vấn đề chính cần chú ý là phiên bản của Visual Studio và Silverlight.
Nếu dùng Visual Studio 2010 hay Silverlight 4 thì version của Prism tương ứng là Prism 2.2 (for Silverlight 4) - May 2010 hay Prism 4.0 Drop 3.
Nếu dùng Visual Studio 2008 thì chúng ta dùng Prism 2.1. Các yêu cầu cụ thể như sau:
·         Microsoft Visual Studio 2008 SP1
·         Microsoft .NET Framework 3.5 SP1 (.NET Framework 3.5 bao gồm WPF)
·         Microsoft Silverlight (nếu tạo ứng dụng Silverlight)
·         Microsoft Silverlight 3 Tools for Visual Studio 2008 SP1 (nếu tạo ứng dụng Silverlight)

Tham khảo
Article Patterns For Building Composite Applications With WPF - MSDN Magazine September/2008 
Prism resources at Channel9 MSDN