Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
386,7 KB
Nội dung
TỔNG QUAN VỀ MƠ HÌNH LỚP Người soạn: ThS Lê Trí Thành Đơn vị: Bộ mơn Hệ thống thơng tin- Khoa Công nghệ thông tin Tier (Tầng) Layer (Lớp) Three Tiers Three Layers Tier (Tầng) Layer (Lớp) - Tier (Tầng) cho thấy tách biệt vật lý với nhau, tầng nằm nơi hay nơi khác Trên thực tế, ứng dụng lớn Database nằm Server, API hay Web Service nằm Server khác ứng dụng chạy Client - Layer (Lớp) thể tính logic thành phần Tier, chúng thường nằm chung nơi namespace khác Mơ hình tầng (Three Tiers) + Presentation tier bao gồm thành phần phần xử lý giao diện Graphic User Interface (GUI) + Business tier gồm thành phần Business Logic Layer (BLL), Data Access Layer (DAL) Data Tranfer Object (DTO) + Data tier: lưu trữ liệu, hệ quản trị CSDL MS SQL Server, Oracle, SQLite, MS Access, XML files, text files, Mơ hình lớp (Three Layers) + Presentation Layer (GUI): Thành phần giao diện, form chương trình tương tác với người sử dụng + Business Logic Layer (BLL): Xử lý nghiệp vụ chương trình tính tốn, xử lý hợp lệ toàn vẹn mặt liệu + Data Access Layer (DAL): Tầng giao tiếp với hệ quản trị CSDL Presentation Layers (GUI) Presentation Layers: Lớp làm nhiệm vụ giao tiếp với người dùng cuối để thu thập liệu hiển thị kết quả/dữ liệu thông qua thành phần giao diện người sử dụng - Trong.NET ta dùng Windows Forms, ASP.NET hay Mobile Forms để thực lớp - Lớp không sử dụng trực tiếp dịch vụ lớp Data Access mà nên sử dụng thông qua service lớp Business Logic Presentation Layers (GUI) Lớp có thành phần User Interface Components User Interface Process Components - UI Components: phần tử chịu trách nhiệm thu thập hiển thị thông tin cho người dùng cuối Trong ASP.NET thành phần TextBox, Button, DataGrid… - UI Process Components: thành phần chịu trách nhiệm quản lý qui trình chuyển đổi UI Components Ví dụ chịu trách nhiệm quản lý hình nhập liệu loạt thao tác định trước bước Wizard… Business Logic Layer (BLL/ BUS) Business Logic Layer: Đây lớp xử lý liệu trước đưa lên hiển thị hình xử lý liệu trước chuyển xuống Data Access Layer để lưu vào sở liệu - Lớp có chức kiểm tra ràng buộc, u cầu nghiệp vụ, tính tốn, xử lý yêu cầu lựa chọn kết trả cho Presentation Layers Business Logic Layer (BLL/ BUS) Lớp có thành phần Business Components, Business Entities Service Interface - Service Interface: giao diện lập trình mà lớp cung cấp cho lớp Presentation sử dụng Lớp Presentation cần biết dịch vụ thông qua giao diện mà không cần phải quan tâm đến bên lớp thực - Business Entities: thực thể mô tả đối tượng thông tin mà hệ thống xử lý Các Business Entities dùng để trao đổi thông tin lớp Presentation lớp Data Layers - Business Components: thành phần thực dịch vụ mà Service Interface cung cấp, chịu trách nhiệm kiểm tra ràng buộc logic (constraints), qui tắc nghiệp vụ (Business Rules), sử dụng dịch vụ bên khác để thực yêu cầu ứng dụng Data Access Layer (DAL/ DAO) Data Access Layer: Lớp thực nghiệp vụ liên quan đến lưu trữ truy xuất liệu ứng dụng đọc, lưu, cập nhật sở liệu Data Access Layer (DAL/ DAO) Lớp có thành phần Data Access Logic, Data Sources, Servive Agents) - Data Access Logic Components (DAL) thành phần chịu trách nhiệm lưu trữ vào truy xuất liệu từ nguồn liệu – Data Sources RDMBS, XML, File systems… Trong NET Các DAL thường thực cách sử dụng thư viện ADO.NET để giao tiếp với hệ sở liệu sử dụng O/R Mapping Frameworks để thực việc ánh xạ đối tượng nhớ thành liệu lưu trữ CSDL - Service Agents: thành phần trợ giúp việc truy xuất dịch vụ bên cách dễ dàng đơn giản truy xuất dịch vụ nội Mơ hình lớp đầy đủ Hoạt động mơ hình Đối với 3-Layer, yêu cầu xử lý qua layer: 1) 2) 3) 4) 5) User giao tiếp với Presentation Layers (GUI) để gửi thông tin yêu cầu Tại layer này, thông tin kiểm tra, chấp nhận chúng chuyển xuống Business Logic Layer (BLL) Tại BLL, thông tin tính tốn theo u cầu gửi, khơng cần đến Database BLL gửi trả kết GUI, ngược lại đẩy liệu (thông tin xử lý) xuống Data Access Layer (DAL) DAL thao tác với Database trả kết cho BLL, BLL kiểm tra gửi lên GUI để hiển thị cho người dùng Một gặp lỗi (các trường hợp khơng liệu) layer thơng báo lên layer cao bậc GUI thông báo cho người dùng biết Các liệu trung chuyển Layer thông qua đối tượng gọi Data Transfer Object (DTO), đơn giản Class đại diện cho đối tượng lưu trữ Database Ví dụ: Hoạt động mơ hình đăng nhập Tổ chức mơ hình Có nhiều cách tổ chức cho thành phần lớp, thơng thường có cách sau: - Cách 1: GUI, BUS, DAL - Cách 2: GUI, BLL, DAO, DTO - Cách 3: Presentation, BLL, DAL Tổ chức mô hình lập trình Với lớp (DAL,BLL) ta tạo project kiểu Class Library, sau buil dll như: BUS.dll, DAL.dll Khi đó: - Tầng GUI project chương trình, đặc điểm GUI thấy BLL nên ta add references BLL.dll từ tab project vào GUI - Tầng BUS thấy DAL, ta tiếp tục add references DAL.dll vào BUS - Tầng DAL giao tiếp với database nên ta sử dụng namespace data provider để tương tác với hệ quản trị CSDL Tổ chức mơ hình lập trình Tổ chức mơ hình lập trình Đối tượng SQLCLIENT + SqlConnection(): kết nối đến CSDL + Open/ Close thuốc lớp SqlConnection để đóng/ mở kết nối Lưu ý thời điểm có kết nối đến CSDL + Cấu trúc chuỗi kết nối sử dụng người dùng SQL: Data Source=;Initial Catalog=;uid=;pwd= + Cấu trúc chuỗi kết nối sử dụng người dùng Windows: Data Source=;Initial Catalog=; Đối tượng SQLCLIENT VD: Hàm kiểm tra kết nối đến CSDL CnStr =“Data Source=.;Initial Catalog=ViDu;uid=sa;pwd=123” Public Cn As SqlClient.SqlConnection Public Function KetNoi(ByVal CnStr As String) As Boolean Try Cn = New SqlClient.SqlConnection(CnStr) Cn.Open() KetNoi = True Cn.Close() Catch ex As Exception KetNoi = False End Try End Function Đối tượng SQLCLIENT + SqlDataAdapter (, ): tham chiếu đến đối tượng CSDL thông qua câu lệnh SQL + Fill: hàm thuộc lớp SqlDataAdapter để gán giá trị kiểu Bảng liệu cho biến Ví dụ: Lấy liệu dạng bảng qua câu lệnh SQL Public Function LayDuLieu(ByVal str As String) As DataTable Try Dim tbl As New DataTable Dim cad As SqlClient.SqlDataAdapter Cn.Open() cad = New SqlClient.SqlDataAdapter(str, Cn) cad.Fill(tbl) LayDuLieu = tbl Cn.Close() Catch ex As Exception Cn.Close() End Try End Function Đối tượng SQLCLIENT + SqlCommand(, ): tham chiếu đến trình thực thi câu lệnh SQL CSDL thông qua câu lệnh SQL + ExecuteNonQuery: hàm thuộc lớp SqlCommand để thực thi câu lệnh trả số dòng liệu tác động lên + ExecuteReader: hàm thuộc lớp SqlCommand để thực thi câu lệnh trả đối tượng quản lý liệu đọc VD: Thực thi câu lệnh SQL Public Function ThucHiencauLenhSQL(ByVal str As String) As Boolean Try Cn.Open() Dim cmd As New SqlClient.SqlCommand(str, Cn) cmd.ExecuteNonQuery() ThucHiencauLenhSQL = True Cn.Close() Catch ex As Exception Cn.Close() ThucHiencauLenhSQL = False End Try Kết nối đến CSDL từ ứng dụng Bắt đầu Kiểm tra kết nối đến CSDL Có kết nối Đúng Chạy chương trình Sai Yêu cầu kết nối lại Kết thúc Một số lưu ý + Viết thư viện thao tác CSDL dành cho việc kết nối CSDL, thực thi câu lệnh SQL thao tác khác liên quan đến liệu + Viết form cấu hình riêng gọi chi không kết nối cần thiết + Nên sử dụng biến SqlConnection dùng chung cho toàn chương trình, cần thao tác mở ra, sau thao tác xong đóng lại để tránh việc trì kết nối thường xuyên đến CSQL khởi tạo, kết nối liên tục thao tác liệu + Viết thư viện kiểm tra đắn liệu riêng: kiểm tra số nguyên, số thực, chuẩn tên gọi, chuỗi, ... lập trình mà lớp cung cấp cho lớp Presentation sử dụng Lớp Presentation cần biết dịch vụ thông qua giao diện mà không cần phải quan tâm đến bên lớp thực - Business Entities: thực thể mô tả đối tượng... ASP.NET hay Mobile Forms để thực lớp - Lớp không sử dụng trực tiếp dịch vụ lớp Data Access mà nên sử dụng thông qua service lớp Business Logic Presentation Layers (GUI) Lớp có thành phần User Interface... vụ bên cách dễ dàng đơn giản truy xuất dịch vụ nội Mơ hình lớp đầy đủ Hoạt động mơ hình Đối với 3- Layer, u cầu xử lý qua layer: 1) 2) 3) 4) 5) User giao tiếp với Presentation Layers (GUI) để