Tải bản đầy đủ (.pdf) (41 trang)

BÁO CÁO LẬP TRÌNH WINDOW

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.75 MB, 41 trang )

BÁO CÁO
LẬP TRÌNH WINDOW
Mô hình 3 lớp và ứng dụng.

TÓM TẮT

Khi người lập trình mới tiếp xúc với Windows Form và ADO.NET, việc lập trình
bắt đầu trở lên phức tạp khi dự án lớn dần. Bởi vậy để dễ quản lý các thành phần của hệ
thống, cũng như không bị ảnh hưởng bởi các thay đổi, người ta hay nhóm các thành phần
có cùng chức năng lại với nhau và phân chia trách nhiệm cho từng nhóm để công việc
không bị chồng chéo và ảnh hưởng lẫn nhau. Một trong những mô hình lập trình như
vậy đó là Mô hình 3 lớp (Three Layers).
Mô hình 3 lớp được cấu thành từ: Presentation Layers, Business Layers, và Data
Layers. Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ (services) mà mỗi lớp
cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà
chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi.
Báo cáo này không tham vọng trình bày lại chi tiết mô hình thiết kế ứng dụng 3 lớp
mà chỉ tóm tắt ngắn gọn lại những điểm chính của nó, thông tin được tham khảo từ nhiều
nguồn khác nhau. Phần tiếp theo, báo cáo sẽ thiết kế một ứng dụng Quản lý sinh viên
dựa trên mô hình 3 lớp và một số chức năng nâng cao như Help, Report (Crystal report).
Cuối cùng, là một số hướng phát triển tiếp theo của ứng dụng.


MỤC LỤC

TÓM TẮT

I.

II.


Giới thiệu mô hình 3 lớp......................................................................................
1.1. Presentation Layer ........................................................................................
1.2. Business Logic Layer ...................................................................................
1.3.Data Access Layer .........................................................................................
Xây dựng chương trình Quản lý Sinh Viên .........................................................
2.1. Thiết kế cơ sở dữ liệu ...................................................................................
2.2. Xây dựng chương trình theo mô hình 3 lớp .................................................
2.2.1. GUI ..............................................................................................
2.2.2. DAO.............................................................................................
2.2.3. DTO .............................................................................................
2.2.4. Global ..........................................................................................
2.2.5. BUS .............................................................................................
2.3. Một số tín năng nâng cao ..............................................................................
2.3.1. Help .............................................................................................
2.3.2. Report ..........................................................................................

1
2
5
8
9
9
10
10
19
22
24
26
28
28

30

III. Một số hướng phát triển ứng dụng ............................................................................ 39


I. Giới thiệu mô hình 3 lớp.
Mô hình 3 lớp được cấu thành từ: Presentation Layers, Business Layers, và Data Layers.
Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ (services) mà mỗi lớp cung cấp để tạo
nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà chỉ cần biết lớp kia
cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi.

Hình 1. Mô hình 3 lớp

Page 1


Hình 2. Các thành phần chi tiết của mô hình 3 lớp.
1. Presentation Layer (GUI – Graphic User Interface)
Lớp này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển
thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ
sử dụng các dịch vụ do lớp Business Logic cung cấp. Trong .NET thì bạn có thể
dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.
Trong lớp này có 2 thành phần chính là User Interface Components và User
Interface Process Components.

Page 2


Hình 3. Presentation Component Layer


Hình 4. User interface design
UI Components: là những phần tử chịu trách nhiệm thu thập và hiển thị thông tin
cho người dùng cuối. Trong ASP.NET thì những thành phần này có thể là các TextBox, các
Button, DataGrid…

Page 3


Hình 5. User Process Component design
UI Process Components: là thành phần chịu trách nhiệm quản lý các qui trình
chuyển đổi giữa các UI Components. Ví dụ chịu trách nhiệm quản lý các màn hình nhập dữ
liệu trong một loạt các thao tác định trước như các bước trong một Wizard…

Page 4


Hình 6. User interface and user process components
Lưu ý :
Lớp này không nên sử dụng trực tiếp các dịch vụ của lớp Data Access mà nên sử
dụng thông qua các dịch vụ của lớp Business Logic vì khi sử dụng trực tiếp như vậy, có thể
bỏ qua các ràng buộc, các logic nghiệp vụ mà ứng dụng cần phải có. Và hơn nữa nếu sử
dụng như vậy thì sẽ phá vỡ cấu trúc của mô hình 3 lớp !

2. Business Logic Layer (BUS)
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do
lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp này cũng
có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 để thực hiện công việc của mình.
Trong lớp này có các thành phần chính là Business Components, Business
Entities và Service Interface.


Page 5


Hình 7. Business Component Layer
Service Interface: là giao diện lập trình mà lớp này cung cấp cho
lớpPresentation sử dụng. Lớp Presentation chỉ cần biết các dịch vụ thông qua giao diện
này mà không cần phải quan tâm đến bên trong lớp này được hiện thực như thế nào.
Business Entities: là những thực thể mô tả những đối tượng thông tin mà hệ thống
xử lý. Các Business Entities này cũng được dùng để trao đổi thông tin giữa
lớp Presentation và lớp Data Layers.
Business Components: là những thành phần chính thực hiện các dịch vụ
mà Service Interface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc logic (constraints),
các qui tắc nghiệp vụ (Business Rules), sử dụng các dịch vụ bên ngoài khác để thực hiện
các yêu cầu của ứng dụng.

Page 6


Hình 8. Business components

Hình 9. An orchestrated business process

Page 7


3. Data Layer (DAO –Data Access Object hoặc DAL- Data Access Layer)
Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng
dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL
Server, Oracle,… để thực hiện nhiệm vụ của mình. Trong lớp này có các thành phần chính
là Data Access Logic, Data Sources, Servive Agents).


Hình 10. Data Access Component Layers
Data Access Logic Components (DAL) là thành phần chính chịu trách nhiệm lưu
trữ vào và truy xuất dữ liệu từ các nguồn dữ liệu – Data Sources như RDMBS, XML, File
systems…. Trong .NET Các DAL này thường được hiện thực bằng cách sử dụng thư viện
ADO.NET để giao tiếp với các hệ cơ sở dữ liệu hoặc sử dụng các O/R Mapping Frameworks
để thực hiện việc ánh xạ các đối tượng trong bộ nhớ thành dữ liệu lưu trữ trong CSDL.
Chúng ta sẽ tìm hiểu các thư viện O/R Mapping này trong một bài viết khác.

Page 8


Hình 11. Data access logic components



Service Agents: là những thành phần trợ giúp việc truy xuất các dịch vụ bên ngoài
một cách dễ dàng và đơn giản như truy xuất các dịch vụ nội tại.
Data Transfer Object (DTO)
Giữa các layer luôn luôn có sự trao đổi dữ liệu (data) với nhau, việc trao đổi dữ liệu
thông qua DTO như hình phía dưới đây.

II. Chương trình Quản lý Sinh viên
Chương trình Quản lý Sinh viên là một chương trình nhỏ mô phỏng trực quan một
số thao tác quản lý cơ bản của một phần mềm quản lý bao gồm các chức năng:
- Hiển thị thông tin:
o Hiển thị toàn bộ thông tin.
o Hiển thị thông tin theo yêu cầu (lọc theo điều kiện).
- Thêm các thông tin mới như Điểm, Sinh Viên, Môn học.
- Cập nhật dữ liệu.

- Tạo báo cáo (Crystal report).
- Hỗ trợ người dùng (Help).
Chương trình sử dụng ngôn ngữ VB.Net, Microsoft SQL Server 2008 Express x64
1. Thiết kế cơ sở dữ liệu QLSV
Chương trình sử dụng cơ sở dữ liệu QLSV với các bảng:
Page 9


 MONHOC(MSMonHoc, TenMonHoc, SOTINCHI, TINHCHAT)
 SV(MaSV, HOTEN, NGAYSINH, LOP),
 DIEM(MaSV, MSMonHoc, DIEMTHI).
Cấu trúc cơ sở dữ liệu như hình dưới.

Hình 12. QLSV database
2. Xây dựng chương trình theo mô hình 3 lớp.
2.1. Presentation Layer (GUI)
- Lớp Presentation được thiết kế với các form như hình dưới

Page 10


-

Hình 13. Presentation form.
Thư mục Add bao gồm các form cung cấp các GUI phục vụ việc thêm
các đối tượng vào cơ sở dữ liệu, cụ thể:
o frmAddMark: Thêm điểm mới.

Hình 14. Add new mark.
Page 11



o frmAddStudent: Thêm sinh viên mới.

Hình 15. Add new student.
o frmAddSubject: Thêm môn học mới.

Hình 16. Add new subject

Page 12


-

Thư mục Search bao gồm các form cung cấp GUI phục vụ công việc tìm
kiếm dữ liệu, cụ thể:
o frmAdvanceSearchStudent: Tìm kiếm sinh viên.

Hình 17. Tìm kiếm sinh viên.
o frmAdvanceSearchMark: Tìm kiếm điểm

Hình 18. Tìm kiếm điểm.
Page 13


-

Thư mục Update bao gồm các form cung cấp GUI phục vụ quá trình update
dữ liệu, cụ thể:
o frmUpdateMark: Cập nhật điểm.


Hình 19. Cập nhật điểm.
o frmUpdateStudent: Cập nhật thông tin sinh viên.

Hình 20. Cập nhật thông tin sinh viên.
Page 14


o frmUpdateSubject: Cập nhật môn học.

Hình 21. Cập nhật môn học.
-

Các form còn lại cung cấp GUI phục vụ một số công việc khác, cụ thể như
sau:
o frmAbout: Giới thiệu chương trình.

Page 15


Hình 22. Form About.
o frmMainFrame: Frame chính của chương trình, là một MdiContainer.

Hình 23. Main form.

Page 16


o frmSplash: Cung cấp 1 splash vào chương trình.


Hình 24. Splash form.
o frmViewAll: Xem toàn bộ thông tin của cơ sở dữ liệu.

Page 17


Hình 25. ViewAll form.
o frmViewMark: Xem thông tin bảng điểm.

Hình 26. ViewMark form.
o frmViewStudent: Xem thông tin sinh viên.

Page 18


Hình 27. ViewStudent form.
o frmViewSubject: Xem thông tin môn học.

Hình 28. ViewSubject form.
-

Lưu ý:
o Các form view chỉ hiển thị thông tin dữ liệu có liên kết với nhau, điều
này có nghĩa là các form này chỉ hiển thị thông tin các sinh viên có
điểm (dữ liệu điểm), các môn học có sinh viên học tập….

2.2. DAO
- Data Access Object cung cấp các phương thức giúp việc giao tiếp trực
tiếp với DataBase.
- Trong layer này chỉ có một class Connection chứa các phương thức

phục vụ quá trình giao tiếp với Database như hình dưới đây.

Page 19


Hình 29. Các phương thức của lớp Connection.
-

Các phương thức có chức năng cụ thể như sau:
o New: Tạo ra một instance mới của class.

Khi tạo ra một instance mới của class Connection, thuộc tính
stringConnection sẽ được gán một giá trị mới lấy từ file app.config
thông quá keyword stringConnection. File app.config có tác dụng nâng
cao tính khả chuyển của ứng dụng, điều này có nghĩa là khi thay đổi
client, người dùng chỉ cần cấu hình lại các thông số phù hợp với cơ sở
dữ liệu trong file này mà không cần source code và decompile lại ứng
dụng. Nội dung file app.config như sau:

o Connect: Tạo ra một kết nối đến CSDL thông qua một instance
của lớp SqlConnection và các tham số của stringConnection.

Page 20


o Disconnect: Đóng kết nối với CSDL

o ExecuteNonQuery: Phương thức này thực hiện các thao tác
với CSDL phục vụ các thao tác Thêm (insert), Sửa (Update,
Xóa (Update). Sử dụng một Connection kết nối đến CSDL, sau

đó sử dụng một instance của lớp SqlCommand với tham số là
một câu lệnh truy vấn SQL (SQL Query) và một instance của
lớp SqlConnection. Cuối cùng, phương thức sử dụng phương
thức ExecuteNonQuery được định nghĩa sẵn trong lớp
SqlCommand để thực hiện câu lệnh truy vấn SQL và đóng kết
nối qua hàm Disconnect. Phương thức này trả về số bản ghi bị
tác động (Record effects).

Page 21


o ExecuteQuery: Tương tự như phương thức ExecuteNonQuery
tuy nhiên phương thức này trả về một DataSet phục vụ các câu
lệnh truy vấn SQL (chủ yếu là select dữ liệu).

o Ngoài ra, class còn sử dụng một số phương thức Setter, Getter
phục vụ quá trình truy xuất dữ liệu hiệu quả hơn.
2.3. DTO
- Data Transfer Object cung cấp các đối tượng quản lý của bài toán cùng
các phương thức Setter, Getter của chúng.
-

Hình 30. Các class của lớp (layer) DTO.
-

Cụ thể, các đối tượng có các thuộc tính sau:
o InfoMark: Chứa thông tin và các phương thức Setter, Getter
của đối tượng Điểm.

Page 22



Hình 31. Code lớp InfoMark.
o InfoStudent: Chứa thông tin và các phương thức Setter, Getter
của đối tượng Sinh viên.

Hình 32. Code lớp InfoStudent.
Page 23


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×