1. Trang chủ
  2. » Luận Văn - Báo Cáo

Seminar cuối kỳ Đề tài mô hình 3 lớp

29 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Mô hình 3 lớp
Tác giả Lưu Lợi Bửu Chính, Nguyễn Trung Đức, Nguyễn Ngọc Đức, Lê Quan
Trường học Trường Đại học Công nghệ Thông tin, Đại học Quốc gia TP. HCM
Chuyên ngành Công nghệ thông tin
Thể loại Seminar cuối kỳ
Năm xuất bản 2022
Thành phố TP. HCM
Định dạng
Số trang 29
Dung lượng 5,38 MB

Nội dung

-Mô hình 3 lớp hay còn được gol là mô hình Three Layer3- Layer, mô hình này ra đời nhằm phân chia các thành phan trong hệ thống, các thành phần cùng chức năng sẽ được nhóm lại với nhau v

Trang 1

DAI HOC QUOC GIA TP HCM

TRUONG DAI HOC CONG NGHE THONG TIN

Trang 2

BANG PHAN CONG THUC HIEN

Demo Chỉnh sửa nội dung Góp ý Demo Góp ý Dem

Trang 3

M6 hinh 3 lớp là gì

._ Cách hoạt động

.- Ưu điềm và nhược điềm

Phan biét 3-tier va 3-layer

Cac thanh phần của mô hình 3 lớp - - - - « 5-«-secse s2 2.1 _ Presentation Layer c cào cà cà, 2.2 Busimess Logic Layer cà cà cà 2.3 Data Access LAyCT cu cuc cà nn nh be nàn bàn khe Hàn

So sánh mô hình 3 lớp và MVC

Demo

Trang 4

1 Mô hình 3 lớp là gì ?

-Mô hình 3 lớp hay còn được gol là mô hình Three Layer(3- Layer), mô hình này ra đời nhằm phân chia các thành phan trong hệ thống, các thành phần cùng chức năng sẽ được nhóm lại với nhau và phân chia công việc cho từng nhóm đề dữ liệu không bị chồng chéo

và nhất quán

-Mô hình này phát huy hiệu quá nhất khi bạn xây dựng một hệ thông lớn, việc quản lý code và xử lý dữ liệu lỗi dễ dàng hơn

Presentation Layer

Business Logic Layer

Data Access Layer

— Business Logic Layer (BLL) : Layer nay phân ra 2 thành nhiệm vụ :

Trang 5

¢ Day la noi dap img cac yéu cau thao tac dit liệu của GUI layer, xử lý chính nguồn dữ liệu từ Presentation Layer trước khi truyền xuống Data Access Layer

và lưu xuống hệ quản trị CSDL

® - Đây còn là nơi kiểm tra các ràng buộc, tính toàn vẹn và hợp lệ dữ liệu, thực hiện tính toán và xử lý các yêu cầu nghiệp vụ trước khi trả két qua vé Presentation Layer

— Data Access Layer (DAL) : Lop nay co chute nang giao tiếp với hệ quản trị CSDL như thực hiện các công việc liên quan đến lưu trữ và truy vấn dữ liệu ( tìm kiếm, thêm, xóa, sửa, )

Trang 6

2.1 Presentation Layer (GUD:

Có hai thành phần chính sau đây với những tác vụ cu thể :

® UI Components : gồm các thành phần tạo nên giao diện của ứng dụng (GUI)

Chúng chịu trách nhiệm thu nhận và hiển thị dữ liệu cho người dùng

® ULIProcess Components : là thành phần chịu trách nhiệm quản lý các quá trình chuyên đôi giữa các UL

2.2, Bussiness Layer (BLL) :

Lớp này gồm 4 thanh phan:

° Service Interface : là thành phần giao diện lập trình mà lớp này cung cấp cho lớp Presentation str dung

° Bussiness Workflows : chịu trách nhiệm xác định và điều phối các quy trình nghiệp vụ gồm nhiều bước và kéo dài Những quy trình này phải được sắp xếp

và thực hiện theo một thứ tự chính xác

° Bussiness Components : chịu trách nhiệm kiểm tra các quy tắc nghiệp vụ, ràng buộc logic và thực hiện các công việc Các thành phần này cũng thực hiện các dịch vụ mà Service Interface cung cấp và Business Workflows sẽ sử dụng nó

Trang 7

° Bussiness Entities : thuong duoc su dung nhu Data Transfer Objects ( DTO ) Bạn có thê sử dụng đề truyền dữ liệu giữa các lớp (Presentation và Data Layer) Chúng thường là cầu trúc dữ liệu ( DataSets, XML ) hay các lớp

đối tượng đã được tùy chỉnh

2.3 Data Layer (DAL) :

DAL có chức năng chính là ghi lại các dữ liệu quan trọng Vì thế mô hình có 2 phần là:

® Data Access Logic Components : chiu trach nhiệm chính lưu trữ và truy xuất dữ

liệu từ các nguồn dir higu (Data Sources) nhu XML, file system, Hon ntra con

tao thuận lợi cho việc dễ cầu hình và bảo trì

® Service Agents : giup bạn gọi và tương tác với các dịch vụ từ bên ngoài một cách dễ dàng và đơn giản

Kinh nghiệm khi xây dựng mô hình 3 lớp là bạn cần thành lập một solution riêng cho project Trong do co 3 project khac nhau dé tạo 3 lớp Thực hiện đặt ten Project can có các tiên tô theo mầu Tên lớp Tên tệp (Ví dụ: GUI_ Quản lý)

Tuy nhiên, để đảm bảo sự thống nhất bạn nên đặt tên theo nguyên tắc Dưới đây là một số cách đặt tên cho các thành phân của 3 lớp, Ví dụ:

© Một là, đặt lần lượt tên GUI - BUS - DAL

® - Hai là, sử dụng tên có chứa tiên tô GUI - BLL - DAL - DTO

® - Ba là, áp dụng tên có chứa GUI - BLL - DAL

3 Cách hoạt động

Trang 8

Business Logic Layer

- Người sử dụng tác động lên GUI yêu cầu hiện thị thông tin lên man hinh Tai day GUI

sẽ kiểm tra yêu cầu của người dùng nhập có hợp lệ hay không, nếu không hợp lệ sẽ thông báo cho người dùng

- Ngược lại yêu cầu sẽ được gởi trực tiếp đến BLL hoặc thông qua lớp object DTO hỗ trợ luân chuyên , tại đây BLL sẽ xử lý nghiệp vụ về yêu cầu của người dùng, nêu yêu cầu không hợp lệ hoặc tự xử lý yêu câu không cần phải truy vấn thì BLL sẽ gởi thông tin về GUI va GUI sé hién thi két qua cho người dùng

- Trong trường hợp BLL cần thao tác trên dữ liệu từ CSDL thi BLL sẽ gởi yêu cầu đến trực tiệp đến DAL hoặc thông qua DTO,, nhờ DAL giao tiếp với hé quan tri CSDL lây hoặc thêm, xóa, sửa dữ liệu

- DAL sẽ giao tiếp hệ quản trị CSDL với các truy vẫn (sử dụng công nghệ ADO, LINQ to SQL, NHibernate, Entity Framework)

Tại đây tiếp tục thực hiện tiến trình thứ 2 được biểu diễn bằng các mũi tên màu xanh:

Trang 9

- Sau khi DAL thực hiện giao tiếp, hệ quan tri CSDL sé tra kết quả truy vấn về DAL, DAL sẽ gởi thông tin về dữ liệu vừa lấy trực tiếp sang BLL hoặc thông qua DTO xử lý tiếp nghiệp vụ với yêu cầu đã gởi từ trước, sau khi xử lý xong nghiệp vụ, BLL sẽ gởi thông tin đến GUI , GUI sẽ hiển thị thông báo và kết quá yêu cầu lên màn hình VD: Mô tả hoạt động của mô hình 3-layer với ứng dụng liệt kê danh sách điểm sinh viên:

Từ màn hình form quản lý sinh viên gồm có l combobox chọn lớp, | gridview dé hién thi

danh sách sinh viên và L button đề thực hiện lệnh liệt kê danh sách

- Người dùng chọn combobox lớp trên GUI và ấn button liệt kê

- GUI kiểm tra yêu cầu chọn combobox hợp lệ và gởi mã lớp (**) vừa chọn sang BUS xử

ly yêu cầu hiên thị danh sách điệm sinh viên

- Tại BUS vì yêu cầu từ GUI khả đơn giản nên BUS sẽ không xử lý gì mà sẽ gởi mã lớp sang DAL lay danh sách điểm

- Tại DAL sau khi đã nhận được yêu cầu lấy danh sách điểm từ mã ae DAL sé tuong tac voi hé quan tri CSDL qua cac Iénh mo tap tin, kết nối, truy vấn, đề lấy được danh sách điểm với mã số yêu cầu, DAL tiếp tục gởi danh sách (**) này sang BUS dé xt ly

- Tại BUS sau khi nhận được danh sách điểm từ DAL gởi sang, BUS thực hiện nghiệp vụ của mình bằng cách tính điểm trung bình, kết luận đậu/rớt của từng sinh viên (tất cả xử lý

về mặt nghiệp vụ), sau đó gởi danh sách điểm đã xử lý (**) sang GUI đề hiền thị

- 1 lần nữa GUI có thẻ kiểm tra tính hợp lệ của dữ liệu và hiển thị thông tin và thông báo

lên màn hình cho người dùng

Một số câu kinh nghiệm khi sử dụng:

- Các thao tác trên control như: kiểm tra nhập hợp lệ, ấn hiện các control, và các xử lý

thông tin trên control thi ta dat cac ham xu ly ngay trên GUI

- Cac thao tac trén cac dir gu co ban nhu: List, Array List, Object, DataTable, string, int, long, floai, ta xử lý ngay chính tâng nghiệp vụ BUS, vi ban chat khi thay đổi hệ quản trị hay các platform thì BUS không thay đôi

- Các thao tác với CSIDL như truy vấn, kết nối, đóng kết nối, ta xử ly trong DAL

- Khi cé nhu cau thay d6i hé quan tri CSDL, ta chi cần thay đối DAL phù hợp với hệ quản

tri mdi, gitr nguyén BUS, GUI va build lai project

- Khi có nhu cầu chuyên đổi qua lại giữa ứng dụng web forms hoặc win forms ta chỉ cần thay GUL, gitr nguyén DAL,BUS va build lai project

Trang 10

4 Ưu điểm và nhược điểm của mô hình 3 lớp

Đây là mô hình được các nhà lập trình tin hoc tin dùng bởi sở hữu nhiều ưu điểm như:

Việc phan chia thành từng lớp với các nhiệm vụ khác nhau sẽ mang lại hiệu quả quan ly tường minh Khi chúng đảm nhận các chức năng riêng biệt khác nhau sẽ giảm sự kết dính

Những người có kinh nghiệm lập trình thường áp dụng trong kiểm soát giao diện, xử lý, truy vấn, Hạn chế tối đa việc đề tất cả lại một chỗ nhằm quản lý và maintain project tôi

ưu hơn

Dễ dàng phân loại các hành động tại Business sẽ góp công lớn trong công tác bảo trì Khi được phân chia thành từng nhóm, lập trình viên có thể nhanh chóng thay đối khi cần bảo trì một thành phần của hệ thống

Với mô hình 3 lớp, thao tác thay đôi dữ liệu có thể được cô lập trong I lớp hoặc chỉ anh hưởng đến lớp gần nhất Điều đó đảm bảo không ảnh hưởng đến cả chương trình, tiết kiệm thời g1an công sức

Thao tác phân loại các hàm truy xuất tại Database hay phân loại hàm theo table, Chúng

sẽ trở nên dễ dàng vì chúng ta đã có chuân đề tuân theo

Nhờ có mô hình thì việc muốn thêm một chức năng nào đó sẽ dễ dàng hơn

Khi có sự thay đổi giữa hai môi trường từ Winform sang Webform Và bạn mong muốn tái

sử dụng thì chỉ việc thay đôi lớp GUI

Nếu mọi người đều tuân theo một quy chuẩn đã được định sẵn, thì khi bàn giao công việc trở né dé dang va tiét kiệm thời gian Các thành viên có thể tương tác thuận tiện

Mô hình quản lý 3 lớp sẽ hỗ trợ phân phối nhiệm vụ, khôi lượng công việc rõ ràng Đồng

thời, nó sẽ giúp các lập trình viên kiêm soát công tác

Với những ưu điểm tuyệt vời, mô hình cho phéo áp dụng được cho nhiều project lớn ở bên ngoài

Trang 11

se Diễm giống nhau:

o_ Cả hai đều là mô hình kiến trúc áp dụng trong lập trình được tách thành 3

o_ Khác biệt rõ nhất là cách xử lý yêu cầu (workflow) của 2 mô hình

o_ 3 Layer thường được sử dụng trong lập trình ứng dụng, trong khi đó MVC được ưu chuộng nhiều trong lập trình website vì tính linh hoạt và không bắt

buộc các DTO như 3-Layer

Trang 12

Information | | Present

Presentation layer Interacts with users

Data Access Layer

Access data from the database

Trang 13

=

Business logic i

Trang 14

có thể có nhiều layer

- Khi dùng từ layer, chúng ta nói tới việc phân chia ứng dụng thành các thành phan một cách logic theo chức năng hoặc theo vai trò, điều nay giup phan mềm của bạn có cấu trúc sáng sủa, dễ dùng lại, từ do giúp việc phát triển và bảo trì dé dàng hơn Các layer khác nhau khi được thực thị van co thé nam trong cung mot vung bộ nhớ của một process, và hiển nhiên việc giao tiếp giữa 2 layer có thê không phải là giao tiếp giữa 2 process, đồng nghĩa với việc chúng không liên quan tới mô hình client/server

- Trái lại, tier liên quan đến cách phân chia một cách vật lý các thành phần trên các máy tính khác nhau Điều làm nhiều người nhằm lẫn giữa layer và tier là chúng có cùng cách phan chia (presentation, business, data), tuy nhién trên thực tế chúng khác nhau Vì cách phân chia như trên nên | tier có thể chứa nhiều hơn | layer

7 Demo

Như các bạn đã nhìn tại sơ đồ ở trang 1 thì Mô hình 3 lớp hoạt động như sau:

GUI liên kết tới dc Business Layer và DTO

Business Layer liên kết tới được Data Access và DTO

Data Access chỉ liên kết tới DTO

Trang 15

Bây giờ chúng ta bắt đầu tạo, déi voi 3 Project DTO, Business va Data Access chung ta tao theo Class Library

Add New Project ? Xx

Ð Recent ,NET Fremework4 ~ Sort by: Defeult - Search installed Templates (CtrleE) /2~

4 Installed

F Windows Forms Application Visual C# Type: Visual C#

4 Visual C# A project for cresting a C# class library

4 Windows F1 WPF Application Visual C# (a1)

Universal

> Windows & a Console Application Visual C#

Classic Desktop

Web 5 Shared Project Visual C#

Cloud oy Class Library (Portable for iOS, Android and Windows) Visual C#

Trang 16

Solution Explorer Team Explorer

Và bây giờ chúng ta sẽ liên kết, làm project GUI trước nhé Đầu tiên ta chọn chuột fäi vào References => Add Reference

4 {cs} GUI_Quanly

> /# Properties

Add Reference

Add Service Reference

7 Add Connected Service

Trang 17

Reference Manager - GUI_Quanly ? x

> Assemblies Search Projects (Ctrl+E) P|]

Sohation = Gal cole SnaipastooisA2: TEEN

Làm tương tự đối với BUS va DAL theo bén trén

Thê là đã liên kêt xong cho mô hình 3 lớp

Trang 18

C# - Mô hình 3 lớp đơn giản — Xây dựng mô hình 3 lớp: Xây dựng DTO

Cơ sở dữ liệu:

CSDL sẽ xài table ThanhVien như sau:

CREATE TABLE THANHVIEN (

Tv_ID INT NOT NULL PRIMARY KEY IDENTITY,

TV_NAME NVARCHAR(30) NOT NULL,

TV_PHONE VARCHAR(11) NOT NULL,

TV_EMAIL VARCHAR(50) NOT NULL

Xay dung DTO

Minh sé tao file DTO_ThanhVienfics (Class file), vé co ban thi các cột của table ThanhVien của mình ra sao thì mình tạo 1 class y hệt vậy kèm get/set

private int _THANHVIEN_ID;

private string _ THANHVTEN_NAME;

private string _ THANHVTEN_PHONE;

private string _ THANHVTEN_EMAIL;

Trang 19

public string THANHVIEN_NAME

Trang 20

public DTO_ThanhVien(int id, string name, string phone, string

Điều quan trọng đầu tiên, chúng ta cần tạo class DBConnect.cs với nội dung như sau: using_SystemfiDatafiSqlClient;

Chúng ta sẽ tạo SqlConnecfion và khởi tạo luôn, sau này các class DAL, ta chỉ cần kế thwra class DBConnect là có thê sử dụng _conn không cân khởi tạo lại

Phải sửa lại connection string chuẩn

Ta sẽ tạo file DAL_ThanhVien.cs (Class file)

Ở đây minh sé lam san luén 4 methods la: Lay tất cả, Thêm, Xóa, Sửa

Trang 21

tvfiTHANHVTEN_NAME, tvfiTHANHVTEN_PHONE, tvfiTHANHVTEN_ EMAIL);

SqiCommand cmd = SqiCommand(SQL, _conn);

(cmdfiExecuteNonQuery() > 0) true;

(Exception e)

Trang 23

// Command (mac dinh command type = text nén chung

ta khỏi fải làm gì nhiều)fi

Trang 24

C# - Mô hình 3 lớp đơn giản —- Xây dựng mô hình 3 lớp: Xây dựng Business Bước này là bước xử lý business logie (Business layer)

Ở bước này, ta có thê lấy dữ liệu từ DAL, về, xử lý ABC XYZ gì đó rồi trả về lại

cho GUI sử dụng Hoặc khi update dữ liệu trên DB, GUI gửi data lên BUS và rồi ta xử

lý ABC XYZ gì đó cho data của chúng ta, rồi mới insert/update/delete chăng hạn,

Vi app minh build la app đơn giản, nên mình chỉ cần gọi lên DAL va tra về tương ứng cho GUI xải thui

Minh sẽ tạo BUS_ ThanhYVien.cs (Class ñle):

namespace BUS QuanLy

public class BUS ThanhVien

: DAL_ThanhVien dalThanhVien = new DAL _ThanhVien();

Ngày đăng: 01/11/2024, 16:30

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN