1. Trang chủ
  2. » Công Nghệ Thông Tin

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

41 566 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 41
Dung lượng 2,75 MB

Nội dung

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 cu

Trang 1

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

Trang 2

MỤC LỤC

TÓM TẮT

I Giới thiệu mô hình 3 lớp 1

1.1 Presentation Layer 2

1.2 Business Logic Layer 5

1.3.Data Access Layer 8

II Xây dựng chương trình Quản lý Sinh Viên 9

2.1 Thiết kế cơ sở dữ liệu 9

2.2 Xây dựng chương trình theo mô hình 3 lớp 10

2.2.1 GUI 10

2.2.2 DAO 19

2.2.3 DTO 22

2.2.4 Global 24

2.2.5 BUS 26

2.3 Một số tín năng nâng cao 28

2.3.1 Help 28

2.3.2 Report 30

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

Trang 3

Page 1

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

Trang 4

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

Trang 5

Page 3

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…

Trang 6

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…

Trang 7

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

Trang 8

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

Trang 9

Page 7 Hình 8 Business components

Hình 9 An orchestrated business process

Trang 10

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

Trang 11

Page 9

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:

Trang 12

 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

Trang 13

Page 11

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

Trang 14

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

Trang 15

Page 13

- 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

Trang 16

- 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

Trang 17

Page 15

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

Trang 18

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

Trang 21

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

Trang 22

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

Trang 23

Page 21

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)

Trang 24

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

Trang 25

Page 23

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

Trang 26

o InfoSubject: Chứa thông tin và các phương thức Setter, Getter

của đối tượng Môn học

Hình 33 Code lớp InfoSubject

2.4 Global

- Thư mục này không nằm trong mô hình 3 lớp, tuy nhiên chương trình

có sử dụng với mục đích tạo các biến, các hàm toàn cục (Global variables, Global Functions) phục vụ quá trình trao đổi dữ liệu giữa các

form nhanh chóng hơn

-

Hình 34 Global folder

- GlobalFunctions: Cung cấp các hàm dùng chung cho tất cả các form

Trang 27

Page 25

o Close: Đóng các form theo các chế độ như Dispose hoặc Visible

= False

o OpenView: Mở các view form trong những trường hợp instance

của form đó đã bị dispose

Trang 28

o RefreshData: Cập nhật lại dữ liệu khi có sự thay đổi dữ liệu trên

CSLD

2.5 BUS

- Lớp này cung cấp các phương thức phụ vụ quá trình thao tác với các

đối tượng Điểm, Sinh Viên, Môn Học

Trang 29

Page 27

Hình 35 BUS folder

- Với từng đối tượng sẽ có các phương thức với nhiệm vụ khác nhau phục

vụ việc trao đổi dữ liệu với CSDL và người dùng

- Lớp MarkBus: Cung cấp các phương thức phục vụ các thao tác liên quan đến đối tượng Điểm

Hình 36 Các phương thức của lớp MarkBus

- Lớp StudentBus: Cung cấp các phương thức phục vụ các thao tác liên quan đến đối tượng Sinh Viên

Trang 30

Hình 37 Các phương thức của lớp StudentBus

- Lớp SubjectBus: Cung cấp các phương thức phục vụ các thao tác liên quan đến đối tượng Môn học

Hình 38 Các phương thức của lớp SubjectBus

3 Một số tính năng nâng cao

3.1 Help

- Help là một tính năng nâng cao giúp người sử dụng dễ dàng nắm bắt cấu trúc chương trình, phần mềm cũng như nhanh chóng làm quen và tiếp cận, sử dụng hiệu quả phần mềm

Trang 31

Page 29

- Hiện nay có khá nhiều phần mềm hỗ trợ tạo file help Trong báo cáo này sử dụng HTML Help WorkShop của Microsoft để tạo file *.chm chứa nội dung của file help

- Download HTML Help WorkShop tại địa chỉ:

Trang 32

- Kết quả cuối cùng ta nhận được như hình dưới

Hình 40 Help demo

3.2 Report

- Báo cáo là phần không thể thiếu trong mọi công tác quản lý nhằm thống

kê, kiểm soát, điều chỉnh các tình huống cụ thể nào đó, hiện nay có rất nhiều phần mềm hỗ trợ tạo báo cáo với Vb.net Chương trình này sử dụng Crystal Report để tạo báo cáo với phiên bản 13.08

- Download Crystal Report tại địa chỉ: 7824

http://scn.sap.com/docs/DOC Lựa chọn phiên bản phù hợp, download và tiến hành cài đặt

- Việc cài đặt CR (Crystal Report) khác đơn giản, ta chỉ cần next và đợi

- Cấu hình project để có thể sử dụng CR bằng cách:

o Trong cửa sổ Solution Explorer double click vào My Project

Trang 33

Page 31

o Chuyển sang tab compile –>Advanced Compile Options –> Trong combobox Target framework (all configurations) chọn Net Framework 4 như hình dưới đây

o Sau khi click Ok, chọn Yes sau đó tiến hành các bước tiếp theo khi trong Toolbox đã có như hình dưới

- Tạo báo cáo với CR

o Tạo 1 form có tên frmReport.vb (tùy chọn đặt tên)

o Kéo (drag) 1 object CrystalReportViewer vào form đã tạo.Object này đặt tên là viewer

Trang 34

o Để viewer này có thể display các Crystal Document ta cần tạo

ra 1 CrystalReportDocument bằng cách chuột phải chọn Add –

> New Item –> Reporting –> Crystal Reports và đặt tên là reportDoc.rpt

Trang 35

Page 33

o Tiếp theo, ta tiến hành thiết kế (design) report này Có rất nhiều các tạo và thiết kế report khác nhau, ở đây chọn Blank report để thiết kế tự do theo ý mình Ngoài ra có thể chọn theo các cách còn lại

o Ta có thể tự do thiết kế (design) report bằng cách chèn các image, Text, Line, Box Object Ngoài ra còn có các hàm dựng sẵn như ngày giờ, số bản ghi… Desiner có thể tự tìm hiểu bằng các chuột phải vào dùng design –> Insert –> Special Field

Trang 36

o Phần quan trọng mà báo cáo này muốn giới thiệu ở đây là làm thế nào các để có thể tạo ra 1 report động với dữ liệu lấy từ các câu truy vấn SQL ( chi tiết sẽ trình bày ở phần dưới)

- Tạo DataSource cho Report

o Ta tạo ra 1 DataSet nhằm lưu dữ liệu truy vấn (query) từ SQL SV, dữ liệu này sẽ được cung cấp cho báo cáo

(reportDoc.rpt)

o Chuột phải vào project chọn Add –> New Item –> Tab Data –>

DataSet –> Name: reportDataSet.xsd

Trang 37

Page 35

o Ta tạo ra 1 DataTable, đặt tên table và field giống như trong SQL Server (bảng cung cấp dữ liệu cho CR, với những report dùng dữ liệu nhiều bảng, đặt tên các field theo các field sẽ được select từ câu truy vấn SQL)

Ở đây, sẽ lấy bảng SV

o Tiếp theo, ta làm như hình phía dưới đây

Trang 38

o Trong cửa sổ Field Explorer, ta làm như hình dưới (kéo thả các field vào Section 3(details))

o

o Cuối cùng bấm Save để lưu lại toàn bộ các file Chuyển sang bước tiếp theo

- Fill Data

Trang 39

Page 37

o Chuyển sang chế độ code (F7) trong form đã thiết kế ở trên

o Do đây là demo nên ta sẽ viết code luôn trong phương thức (method) load của form này Mục đích là hiển thị toàn bộ dữ liệu của table SV kên báo cáo này

o Trước hết, ta cần hiểu các report này hoạt động như hình dưới

o Để report hoạt động cần tạo ra 1 instance của reportDataset sau

đó đổ dữ liệu vào dataset này, tiếp theo cần tạo ra 1 instance của reportDoc và lấy nguồn dữ liệu từ dataset phía trên Cuối cùng gắn reportDoc này vào viewer

o Để dễ dàng hơn, ta có thể xem minh họa bằng code phía dưới

o Để thay đổi điều kiện hiển thi dữ liệu cho báo cáo, chỉ cần thay đổi cấu trúc câu lệnh SQL với điều kiện nào đó Tất nhiên số return field phải tương ứng với số field trong dataset

o Cuối cùng, nhấm F5 để chạy chương trình và sẽ nhận được lỗi như hình dưới

Ngày đăng: 15/10/2016, 00:36

TỪ KHÓA LIÊN QUAN

w