Mô
hình 3 tầng (3-tiers architecture) là gì, mô hình 3 lớp (3-layers
architecture) là gì, sự khác biệt giữa 3-layer và 3-tiers, nó có ý nghĩa
như thế nào và tại sao ta phải dùng mô hình 3-layers để viết theo mô
hình này trong ứng dụng quản lý - See more at:
http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
Mô hình 3
tầng (3-tiers architecture) là gì?,Mô hình 3 lớp (3-layers architecture) là gì?,
Sự khác biệt giữa 3-layer và 3-tiers?
Nó có ý nghĩa như thế nào? và
Tại sao ta phải dùng mô hình 3-layers để viết theo mô hình này trong ứng dụng quản lý?
-
Khi ứng dụng đòi hỏi có sự tách biệt 3 phần: giao diện, xử lý nghiệp
vụ, giao tiếp với hệ quản trị CSDL để người viết có thể dễ dàng quản lý
ứng dụng của mình khi có bug xảy ra với 1 số thành phần xử lý nghiệp vụ
không mong muốn. Ngoài ra với mô hình này nó còn tạo ra 1 không gian làm
việc rất tốt để người thiết kế giao diện, lẫn người lập trình có thể
làm việc chung với nhau 1 cách dễ dàng.
- Khả năng tái tạo cao: Khi ứng dụng bất chợt yêu cầu thay đổi hệ quản trị CSDL hoặc chuyển ứng dụng từ window application sang web application, việc xây dựng lại ứng dụng từ đầu rất tốn nhiều thời gian và chi phí. Vì vậy với mô hình này ra đời sẽ giải quyết vấn đề này.
- See more at: http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
- Khả năng tái tạo cao: Khi ứng dụng bất chợt yêu cầu thay đổi hệ quản trị CSDL hoặc chuyển ứng dụng từ window application sang web application, việc xây dựng lại ứng dụng từ đầu rất tốn nhiều thời gian và chi phí. Vì vậy với mô hình này ra đời sẽ giải quyết vấn đề này.
- See more at: http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
++ Một số lợi ích
- Khi ứng
dụng đòi hỏi có sự tách biệt 3 phần: giao diện, xử lý nghiệp vụ, giao tiếp với
hệ quản trị CSDL để người viết có thể dễ dàng quản lý ứng dụng của mình khi có
bug xảy ra với 1 số thành phần xử lý nghiệp vụ không mong muốn. Ngoài ra với mô
hình này nó còn tạo ra 1 không gian làm việc rất tốt để người thiết kế giao
diện, lẫn người lập trình có thể làm việc chung với nhau 1 cách dễ dàng.
- Khả năng
tái tạo cao: Khi ứng dụng bất chợt yêu cầu thay đổi hệ quản trị CSDL hoặc
chuyển ứng dụng từ window application sang web application, việc xây dựng lại
ứng dụng từ đầu rất tốn nhiều thời gian và chi phí. Vì vậy với mô hình này ra
đời sẽ giải quyết vấn đề này.
1. Mô hình 3 tầng (3-tiers) là gì?
Theo
wikipedia:
Trích dẫn: “3-tiers là một kiến trúc kiểu
client/server mà trong đó giao diện người dùng (UI-user interface), các quy tắc
xử lý (BR-business rule hay BL-business logic), và việc lưu trữ dữ liệu được
phát triển như những module độc lập, và hầu hết là được duy trì trên các nền
tảng độc lập, và mô hình 3 tầng (3-tiers) được coi là một kiến trúc phần mềm và
là một mẫu thiết kế.” (dịch lại từ wikipedia tiếng Anh).
3-Tiers có
tính vật lý (physical): là mô hình client-server (mỗi tier có thể đặt chung 1
nơi hoặc nhiều nơi, kết nối với nhau qua Web services, WCF, Remoting...).
Như
hình vẽ ta thấy 3 tầng rõ rệt 3 tầng:
+ Presentation
tier bao gồm các thành phần phần xử lý giao diện Graphic User Interface (GUI)
+ Business tier gồm các thành phần Business Logic Layer (BLL), Data Access Layer (DAL) và Data Tranfer Object (DTO): xem thêm phần 3-layers
+ Data tier lưu trữ dữ liệu, là các hệ quản trị CSDL như MS SQL Server, Oracle, SQLite, MS Access, XML files, text files,...
+ Business tier gồm các thành phần Business Logic Layer (BLL), Data Access Layer (DAL) và Data Tranfer Object (DTO): xem thêm phần 3-layers
+ Data tier lưu trữ dữ liệu, là các hệ quản trị CSDL như MS SQL Server, Oracle, SQLite, MS Access, XML files, text files,...
Tuy nhiên
bạn cần chú ý những ưu và nhược điểm sau đây để áp dụng nó một cách đúng đắn.
Ưu điểm:
- Dễ dàng mở
rộng, thay đổi quy mô của hệ thống: Khi cần tải lớn, người quản trị có thể dễ
dàng thêm các máy chủ vào nhóm, hoặc lấy bớt ra trong trường hợp ngược lại.
Nhược điểm:
- Việc
truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền giữa các tiến trình
khác nhau (IPC), dữ liệu cần phải được đóng gói -> truyền đi -> mở gói
trước khi có thể dùng được.
- Việc phát
triển ứng dụng phức tạp hơn.
2. Mô hình 3 lớp (3-layers) là gì?
Để 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).
Presentation Layers
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. Trong .NET thì bạn có thể dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.
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 service của lớp Business Logic vì khi bạn sử dụng trực tiếp như vậy, bạn 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ì đâu cần đến 3 lớp phải không bạn?
Business Logic Layer
Đây là layer xử lý chính các dữ liệu trước khi được đưa lên hiển thị trên màn hình hoặc xử lý các dữ liệu trước khi chuyển xuống Data Access Layer để lưu dữ liệu xuống cơ sở dữ liệu.
Đây là nơi đê kiểm tra ràng buộc, các yêu cầu nghiệp vụ, tính toán, xử lý các yêu cầu và lựa chọn kết quả trả về cho Presentation Layers.
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 như đọc, lưu, cập nhật cơ sở dữ liệu.
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. Trong .NET thì bạn có thể dùng Windows Forms, ASP.NET hay Mobile Forms để hiện thực lớp này.
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 service của lớp Business Logic vì khi bạn sử dụng trực tiếp như vậy, bạn 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ì đâu cần đến 3 lớp phải không bạn?
Business Logic Layer
Đây là layer xử lý chính các dữ liệu trước khi được đưa lên hiển thị trên màn hình hoặc xử lý các dữ liệu trước khi chuyển xuống Data Access Layer để lưu dữ liệu xuống cơ sở dữ liệu.
Đây là nơi đê kiểm tra ràng buộc, các yêu cầu nghiệp vụ, tính toán, xử lý các yêu cầu và lựa chọn kết quả trả về cho Presentation Layers.
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 như đọc, lưu, cập nhật cơ sở dữ liệu.
Cách vận hành của mô hình
Đối với 3-Layer, yêu cầu được xử lý tuần tự qua các layer như hình.
- Đầu tiên User giao tiếp với Presentation Layers (GUI) để gửi đi thông tin và yêu cầu. Tại layer này, các thông tin sẽ được kiểm tra, nếu OK chúng sẽ được chuyển xuống Business Logic Layer (BLL).
- Tại BLL, các thông tin sẽ được nhào nặn, tính toán theo đúng yêu cầu đã gửi, nếu không cần đến Database thì BLL sẽ gửi trả kết quả về GUI, ngược lại nó sẽ đẩy dữ liệu (thông tin đã xử lý) xuống Data Access Layer (DAL).
- DAL sẽ thao tác với Database và trả kết quả về cho BLL, BLL kiểm tra và gửi nó lên GUI để hiển thị cho người dùng.
- Một khi gặp lỗi (các trường hợp không đúng dữ liệu) thì đang ở layer nào thì quăng lên trên layer cao hơn nó 1 bậc cho tới GUI thì sẽ quăng ra cho người dùng biết
- Các dữ liệu được trung chuyển giữa các Layer thông qua một đối tượng gọi là Data Transfer Object (DTO), đơn giản đây chỉ là các Class đại diện cho các đối tượng được lưu trữ trong Database.
Tổ chức mô hình 3 - Layer
Có rất nhiều cách đặt tên cho các thành phần của 3 lớp như:
Cách 1: GUI, BUS, DAL
Cách 2: GUI, BLL, DAO, DTO
Cách 3: Presentation, BLL, DAL
Đối với 3-Layer, yêu cầu được xử lý tuần tự qua các layer như hình.
- Đầu tiên User giao tiếp với Presentation Layers (GUI) để gửi đi thông tin và yêu cầu. Tại layer này, các thông tin sẽ được kiểm tra, nếu OK chúng sẽ được chuyển xuống Business Logic Layer (BLL).
- Tại BLL, các thông tin sẽ được nhào nặn, tính toán theo đúng yêu cầu đã gửi, nếu không cần đến Database thì BLL sẽ gửi trả kết quả về GUI, ngược lại nó sẽ đẩy dữ liệu (thông tin đã xử lý) xuống Data Access Layer (DAL).
- DAL sẽ thao tác với Database và trả kết quả về cho BLL, BLL kiểm tra và gửi nó lên GUI để hiển thị cho người dùng.
- Một khi gặp lỗi (các trường hợp không đúng dữ liệu) thì đang ở layer nào thì quăng lên trên layer cao hơn nó 1 bậc cho tới GUI thì sẽ quăng ra cho người dùng biết
- Các dữ liệu được trung chuyển giữa các Layer thông qua một đối tượng gọi là Data Transfer Object (DTO), đơn giản đây chỉ là các Class đại diện cho các đối tượng được lưu trữ trong Database.
Tổ chức mô hình 3 - Layer
Có rất nhiều cách đặt tên cho các thành phần của 3 lớp như:
Cách 1: GUI, BUS, DAL
Cách 2: GUI, BLL, DAO, DTO
Cách 3: Presentation, BLL, DAL
2. Mô hình 3 lớp (3-layers) là gì (viết khác)?
Không như
3-Tiers có tính vật lý, 3-Layers có tính logic (mỗi layer có 1 công việc) và là
1 thành phần của 3-Tiers. Gồm 3 lớp chính:
+ Graphic User Interface (GUI): Thành phần giao diện, là các form của chương trình tương tác với người sử dụng.
+ Business Logic Layer (BLL): Xử lý các nghiệp vụ của chương trình như tính toán, xử lý hợp lệ và toàn vẹn về mặt dữ liệu.
+ Data Access Layer (DAL): Tầng giao tiếp với các hệ quản trị CSDL
+ Graphic User Interface (GUI): Thành phần giao diện, là các form của chương trình tương tác với người sử dụng.
+ Business Logic Layer (BLL): Xử lý các nghiệp vụ của chương trình như tính toán, xử lý hợp lệ và toàn vẹn về mặt dữ liệu.
+ Data Access Layer (DAL): Tầng giao tiếp với các hệ quản trị CSDL
Trong 1 số
trường hợp vì lượng thông tin gởi nhiều ta có thể dùng Data Tranfer Object
(DTO) để chuyển đối tượng hoặc danh sách đối tượng giữa các tầng với nhau cho
tiện dụng.
Theo như
hình vẽ: Mô tả sự hoạt
động của mô hình 3-layer gồm 2 tiến trình sau:
Các đường
mũi tên màu cam biểu diễn cho 1 tiến trình giao tiếp từ GUI đến Data Acess Layer:
- (1) Người
sử dụng tác động lên GUI yêu cầu hiển thị thông tin lên màn hình. Tại đây 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 (2) hoặc thông qua lớp object DTO hỗ trợ
luân chuyển (2.1 & 2.2), 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 (3) và GUI sẽ hiển thị kết quả cho người
dùng.
- Trong
trường hợp BLL cần thao tác trên dữ liệu từ CSDL thì BLL sẽ gởi yêu cầu đến
trực tiếp đến DAL (4) hoặc thông qua DTO (4.1 & 4.2), nhờ DAL giao tiếp với
hệ quản trị CSDL (5) lấy hoặc thêm, xóa, sửa dữ liệu.
- DAL sẽ
giao tiếp hệ quản trị CSDL (5) 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:
- Sau khi
DAL thực hiện giao tiếp, hệ quản trị CSDL sẽ trả kết quả truy vấn về DAL (7),
DAL sẽ gởi thông tin về dữ liệu vừa lấy trực tiếp sang BLL (8) hoặc thông qua
DTO (8.1 & 8.2) 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 (10), GUI sẽ hiển thị thông
báo và kết quả yêu cầu lên màn hình.
Ví dụ:
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ó 1 combobox chọn lớp, 1 gridview để hiển thị danh
sách sinh viên và 1 button để thực hiện lệnh liệt kê danh sách.
(1) Người dùng chọn combobox lớp trên GUI và ấn button liệt kê
(2) 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ử lý yêu cầu hiển thị danh sách điểm sinh viên
(4) 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 lấy danh sách điểm.
(5) Tại DAL sau khi đã nhận được yêu cầu lấy danh sách điểm từ mã lớp, DAL sẽ tương tác với hệ quản trị CSDL (6) qua các lệnh mở tập tin, kết nối, truy vấn,… để lấy được danh sách điểm (7) với mã số yêu cầu, DAL tiếp tục gởi danh sách (**) này sang BUS để xử lý (7)
(8) 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ị (9)
(9) 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 (10)
(1) Người dùng chọn combobox lớp trên GUI và ấn button liệt kê
(2) 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ử lý yêu cầu hiển thị danh sách điểm sinh viên
(4) 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 lấy danh sách điểm.
(5) Tại DAL sau khi đã nhận được yêu cầu lấy danh sách điểm từ mã lớp, DAL sẽ tương tác với hệ quản trị CSDL (6) qua các lệnh mở tập tin, kết nối, truy vấn,… để lấy được danh sách điểm (7) với mã số yêu cầu, DAL tiếp tục gởi danh sách (**) này sang BUS để xử lý (7)
(8) 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ị (9)
(9) 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 (10)
(**) Trong 1
số trường hợp vì lượng thông tin gởi nhiều, ví dụ như 1 sinh viên gồm nhiều
thuộc tính như họ tên, tuổi, ngày sinh,… ta có thể dùng DTO để chuyển đối tượng
hoặc danh sách đối tượng giữa các tầng với nhau cho tiện dụng.
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: - See more at:
http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
1. Mô hình 3 tầng (3-tiers) là gì?
Theo wikipedia:
+ Presentation tier bao gồm các thành phần phần xử lý giao diện Graphic User Interface (GUI)
+ Business tier gồm các thành phần Business Logic Layer (BLL), Data Access Layer (DAL) và Data Tranfer Object (DTO): xem thêm phần 3-layers
+ Data tier lưu trữ dữ liệu, là các hệ quản trị CSDL như MS SQL Server, Oracle, SQLite, MS Access, XML files, text files,...
Tuy nhiên bạn cần chú ý những ưu và nhược điểm sau đây để áp dụng nó một cách đúng đắn.
Ưu điểm:
- Dễ dàng mở rộng, thay đổi quy mô của hệ thống: Khi cần tải lớn, người quản trị có thể dễ dàng thêm các máy chủ vào nhóm, hoặc lấy bớt ra trong trường hợp ngược lại.
Nhược điểm:
- Việc truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền giữa các tiến trình khác nhau (IPC), dữ liệu cần phải được đóng gói -> truyền đi -> mở gói trước khi có thể dùng được.
- Việc phát triển ứng dụng phức tạp hơn.
2. Mô hình 3 lớp (3-layers) là gì?
Không như 3-Tiers có tính vật lý, 3-Layers có tính logic (mỗi layer có 1 công việc) và là 1 thành phần của 3-Tiers. Gồm 3 lớp chính:
+ Graphic User Interface (GUI): Thành phần giao diện, là các form của chương trình tương tác với người sử dụng.
+ Business Logic Layer (BLL): Xử lý các nghiệp vụ của chương trình như tính toán, xử lý hợp lệ và toàn vẹn về mặt dữ liệu.
+ Data Access Layer (DAL): Tầng giao tiếp với các hệ quản trị CSDL
Trong 1 số trường hợp vì lượng thông tin gởi nhiều ta có thể dùng Data Tranfer Object (DTO) để chuyển đối tượng hoặc danh sách đối tượng giữa các tầng với nhau cho tiện dụng.
- See more at: http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
Theo wikipedia:
Trích dẫn: “3-tiers là một kiến trúc kiểu client/server mà trong đó giao diện người dùng (UI-user interface), các quy tắc xử lý (BR-business rule hay BL-business logic), và việc lưu trữ dữ liệu được phát triển như những module độc lập, và hầu hết là được duy trì trên các nền tảng độc lập, và mô hình 3 tầng (3-tiers) được coi là một kiến trúc phần mềm và là một mẫu thiết kế.” (dịch lại từ wikipedia tiếng Anh).3-Tiers có tính vật lý (physical): là mô hình client-server (mỗi tier có thể đặt chung 1 nơi hoặc nhiều nơi, kết nối với nhau qua Web services, WCF, Remoting...). Như hình vẽ ta thấy 3 tầng rõ rệt 3 tầng:
+ Presentation tier bao gồm các thành phần phần xử lý giao diện Graphic User Interface (GUI)
+ Business tier gồm các thành phần Business Logic Layer (BLL), Data Access Layer (DAL) và Data Tranfer Object (DTO): xem thêm phần 3-layers
+ Data tier lưu trữ dữ liệu, là các hệ quản trị CSDL như MS SQL Server, Oracle, SQLite, MS Access, XML files, text files,...
Tuy nhiên bạn cần chú ý những ưu và nhược điểm sau đây để áp dụng nó một cách đúng đắn.
Ưu điểm:
- Dễ dàng mở rộng, thay đổi quy mô của hệ thống: Khi cần tải lớn, người quản trị có thể dễ dàng thêm các máy chủ vào nhóm, hoặc lấy bớt ra trong trường hợp ngược lại.
Nhược điểm:
- Việc truyền dữ liệu giữa các tầng sẽ chậm hơn vì phải truyền giữa các tiến trình khác nhau (IPC), dữ liệu cần phải được đóng gói -> truyền đi -> mở gói trước khi có thể dùng được.
- Việc phát triển ứng dụng phức tạp hơn.
2. Mô hình 3 lớp (3-layers) là gì?
Không như 3-Tiers có tính vật lý, 3-Layers có tính logic (mỗi layer có 1 công việc) và là 1 thành phần của 3-Tiers. Gồm 3 lớp chính:
+ Graphic User Interface (GUI): Thành phần giao diện, là các form của chương trình tương tác với người sử dụng.
+ Business Logic Layer (BLL): Xử lý các nghiệp vụ của chương trình như tính toán, xử lý hợp lệ và toàn vẹn về mặt dữ liệu.
+ Data Access Layer (DAL): Tầng giao tiếp với các hệ quản trị CSDL
Trong 1 số trường hợp vì lượng thông tin gởi nhiều ta có thể dùng Data Tranfer Object (DTO) để chuyển đối tượng hoặc danh sách đối tượng giữa các tầng với nhau cho tiện dụng.
- See more at: http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
3. Cách tổ
chức mô hình trên ứng dụng .NET:
- Với mỗi
tầng (DAL,BLL) ta tạo 1 project mới kiểu Class Library, sau khi buil ra các dll
như: BUS.dll, DAL.dll . Khi đó:
+ Tầng GUI là project chính chương trình, vì đặc điểm GUI chỉ thấy BLL nên ta sẽ add references BLL.dll từ tab project vào GUI
+ Tầng BUS chỉ thấy được DAL, ta tiếp tục add references DAL.dll vào BUS
+ Tầng DAL giao tiếp được với database nên ta chỉ sử dụng các namespace data provider để tương tác với hệ quản trị CSDL
+ Tầng GUI là project chính chương trình, vì đặc điểm GUI chỉ thấy BLL nên ta sẽ add references BLL.dll từ tab project vào GUI
+ Tầng BUS chỉ thấy được DAL, ta tiếp tục add references DAL.dll vào BUS
+ Tầng DAL giao tiếp được với database nên ta chỉ sử dụng các namespace data provider để tương tác với hệ quản trị CSDL
4. 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 thì ta đặt các hàm xử lý ngay trên GUI
- Các thao tác trên các dữ liệu cơ bản như: List, Array List, Object, DataTable, string, int, long, float,… ta xử lý ngay chính tầng nghiệp vụ BUS, vì bản chất khi thay đổi hệ quản trị hay các platform thì BUS không thay đổi
- Các thao tác với CSDL như truy vấn, kết nối, đóng kết nối,… ta xử lý trong DAL
- Khi có nhu cầu thay đổi hệ quản trị CSDL, ta chỉ cần thay đổi DAL phù hợp với hệ quản trị mới, giữ nguyên BUS, GUI và build lại 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 GUI, giữ nguyên DAL,BUS và build lại project.
- Các thao tác trên các dữ liệu cơ bản như: List, Array List, Object, DataTable, string, int, long, float,… ta xử lý ngay chính tầng nghiệp vụ BUS, vì bản chất khi thay đổi hệ quản trị hay các platform thì BUS không thay đổi
- Các thao tác với CSDL như truy vấn, kết nối, đóng kết nối,… ta xử lý trong DAL
- Khi có nhu cầu thay đổi hệ quản trị CSDL, ta chỉ cần thay đổi DAL phù hợp với hệ quản trị mới, giữ nguyên BUS, GUI và build lại 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 GUI, giữ nguyên DAL,BUS và build lại project.
5. Sự khác
biệt giữa 3-tiers và 3-layer:
3-tiers có
nghĩa là 3 tầng, 3-layer có nghĩa là 3 lớp. Về mặt ý nghĩa tầng sẽ lớn hơn lớp,
mỗi tầng sẽ có nhiều lớp.
Trích 1 bài
viết:
Trích dẫn:The terms tier and layer are
frequently used interchangeably, but actually there is a difference between
them: Tiers indicate a physical separation of components, which may mean
different assemblies such as DLL, EXE etc on the same server or multiple
servers; but layers refers to a logical separation of components, such as
having distinct namespaces and classes for the Database Access Layer (DAL),
Business Logic Layer (BLL) and User Interface Layer (UIL). Therefore, tier is
about physical separation and units of deployment, and layers are about logical
separation and units of design.
- 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 phần một
cách logic theo chức năng hoặc theo vai trò, điều này giúp phần mềm của bạn có
cấu trúc sáng sủa, dễ dùng lại, từ đó 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 thi vẫn có thể nằm trong cùng một vùng
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 phân 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 1 tier có thể chứa nhiều hơn 1
layer.
Mô
hình 3 tầng (3-tiers architecture) là gì, mô hình 3 lớp (3-layers
architecture) là gì, sự khác biệt giữa 3-layer và 3-tiers, nó có ý nghĩa
như thế nào và tại sao ta phải dùng mô hình 3-layers để viết theo mô
hình này trong ứng dụng quản lý - See more at:
http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
Mô
hình 3 tầng (3-tiers architecture) là gì, mô hình 3 lớp (3-layers
architecture) là gì, sự khác biệt giữa 3-layer và 3-tiers, nó có ý nghĩa
như thế nào và tại sao ta phải dùng mô hình 3-layers để viết theo mô
hình này trong ứng dụng quản lý - See more at:
http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
Mô
hình 3 tầng (3-tiers architecture) là gì, mô hình 3 lớp (3-layers
architecture) là gì, sự khác biệt giữa 3-layer và 3-tiers, nó có ý nghĩa
như thế nào và tại sao ta phải dùng mô hình 3-layers để viết theo mô
hình này trong ứng dụng quản lý - See more at:
http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf
Mô
hình 3 tầng (3-tiers architecture) là gì, mô hình 3 lớp (3-layers
architecture) là gì, sự khác biệt giữa 3-layer và 3-tiers, nó có ý nghĩa
như thế nào và tại sao ta phải dùng mô hình 3-layers để viết theo mô
hình này trong ứng dụng quản lý - See more at:
http://expressmagazine.net/development/1495/mo-hinh-3-layers-3-tiers-trong-lap-trinh-quan-ly-net#sthash.Jwyfb99Q.dpuf