Các phần trong bài Training này:
- Giới thiệu về .netTiers
- Các tính năng hiện tại của .netTiers
- Kiến trúc của của .netTiers
Tên bài viết: .NETTIERS FOUNDATION
Cấp độ bài viết: Chưa đánh giá.
1 Giới thiệu về .netTiers
.netTiers là một bộ các mẫu (template) dùng trong việc "sinh" ra source code Microsoft.NET theo mô hình n-tiers từ database. .netTiers là một sản phẩm FREE và open source theo bản quyền GPL.Ðể sử dụng bộ template này developer cần phải có CodeSmith. Kiến trúc ứng dụng sinh ra từ .netTiers dễ sử dụng với các pattern quen thuộc và huớng theo các dề nghị của Microsoft (Microsoft's patterns & practices). Thật vậy, bộ template này duợc xây dựng trên nền của Microsoft Enterprise Library Application Blocks. Template này giúp loại bỏ thời gian để hiện thực các source code tương tự lặp đi lặp lại và giúp developer có được 1 framework đủ mạnh để bắt tay tập trung giải quyết các vấn đề logic của ứng dụng. Thí dụ: tập trung vào lớp presentation, business rule, workflow... thay vì phải làm các công việc nôm na là insert, update, delete nhàm chán và thật sự mất thời gian. Xem .netTiers như là một block trong application, nghĩa là chúng ta sẽ có thể tận dụng các tính năng mới trong tương lai của .netTiers cho ứng dụng của mình.
Template xây dựng hiệu quả 1 tập các đối tượng object-relational domain cho database có sẵn dựa trên mô hình thiết kế hướng Model (MDD: Model Driven Design). MDD là một khái niệm mà ở đó, một mô hình được thiết kế trước được sử dụng để tạo ra ứng dụng của chúng ta. Nếu chúng ta biết Rational Rose, chúng ta sẽ biết đến MDD, nó được tạo ra và sử dụng bởi nhiều UML modeler nổi tiếng. Trách nhiệm của .netTiers là tạo ra một framework đủ mạnh từ database và ứng dụng sức mạnh của .NET (đặc biệt là .NET 2.0) để ứng dụng có chất lượng cao nhất với thời gian hiện thực là ít nhất.
2 Các tính năng hiện tại của .netTiers
- Khả năng khởi tạo 1 solution đầy đủ với các project riêng biệt và các tier của framework cho ứng dụng. Chúng ta có thể mở và làm việc ngay lập tức solution nói trên sau khi khởi tạo.
- Tạo ra 1 bộ các stored procedures hướng về domain của chúng ta. Tuy nhiên, chúng ta vẫn có khả năng sử dụng các lệnh inline như các câu sql truyền tham số thay vì dùng bộ stored procedures này.
- Tự động tạo ra các đối tượng entity và các đối tượng có quan hệ với chúng như là 1 domain dựa trên các table của database.
- Hỗ trợ Entity Validation Rule Engine.
- Các class phát sinh sẽ bao gồm cả class cụ thể và partial của C# 2.0. Chúng ta sẽ phát triển code mà không đụng chạm đến các class được sinh ra.
- Sử dụng custom generic List<T> cho các collection. Các collection này hỗ trợ tất cả các interface ComponentModel của .net. Ngoài ra còn hỗ trợ Bindable, Sortable và Filterable.
- Khả năng tạo ra website project hoàn chỉnh.
- Khả năng tạo ra các web control dùng cho các form quản trị (admin). Nếu yêu cầu của chúng ta đơn giản, admin console mà .netTiers sinh ra hầu như đã đáp ứng các nhu cầu căn bản của 1 form admin; chúng ta chỉ cần phải modify cho phù hợp yêu cầu của mình mà thôi.
- Tạo ra 1 bộ đầy đủ các DataSource control có kiểu (type) xác định và có hỗ trợ "design time", các DataSource này tương tự ObjectDataSource của ASP.NET 2.0.
- Khả năng phát sinh webservice API, hỗ trợ tốt cho .net winforms hoặc các ứng dụng "smart client", cấu hình dễ dàng.
- Khả năng tạo 1 bộ unit test, chọn lựa giữa nUnit hoặc VS Team System.
- Source code được chú thích rõ ràng (dễ tạo document) và dựa theo cách đề nghị đặt tên của Microsoft.
- Bất cứ source code nào được đặt trong 1 thư mục đặc biệt của project (mặc định là App_Code) sẽ tự động được sử dụng trong project được khởi tạo.
- Data API bao gồm hỗ trợ truy vấn cho primary key, foreign key, index, manytomany (các relationship), All, Paged select with filter và Find. Đương nhiên bao gồm các nhu cầu căn bản insert, update, delete.
- Ngoài ra chúng ta cũng có thể tạo riêng các stored procedures cho entity của mình và .netTiers sẽ tự động khởi tạo 1 wrapper và những thứ cần thiết cho procedure đó. Điều này cho phép chúng ta có riêng logic của mình nhưng vẫn trong phạm vi của .netTiers API.
Trên đây là các chức năng căn bản, ngoài ra còn rất nhiều tính năng khác.
3 Kiến trúc của .netTiers
.netTiers hướng theo đề nghị về kiến trúc n-tiers của Microsoft, tham khảo tài liệu từ nguồn MS patterns & Practices: Designing Data Tier Components and Passing Data Through Tiers
CodeSmith là 1 bộ khởi tạo source code từ các template được dịnh nghia (dùng C# hoặc VB.NET) và có thể dùng dể tạo ra source code thuộc bất cứ ngôn ngữ nào hoặc tổng quát hơn là bất cứ nội dung text nào mà chúng ta cần tạo! Việc tạo ra code từ template có rất nhiều ưu diểm, chính yếu là: tiết kiệm rất đáng kể thời gian coding, tránh nhàm chán cho developer (dối với các task lặp di lặp lại) và hạn chế các bug không đáng có (hoặc lặp di lặp lại) khi không dùng template (vì code được sinh ra sẽ không có các bug do lỗi developer gây ra trừ khi template có bug!). Tóm lại, Code Generation là một huớng đi rất phổ biến hiện nay giúp developer tập trung hiện thực logic chính của ứng dụng mà không phải suy nghĩ về các vấn dề còn lại (kết nối database server, data access layer, ...).