|
#1
|
||||
|
||||
Thiết kế lớp DAL và BLL
Mình mới bắt đầu tìm hiểu về xây dựng ứng dụng 3-tiers và gặp vấn đề này:
Với CSDL SQL Server ta nên xây dựng lớp DAL, BLL riêng hay dùng SQL sever project (Database project) hay là dùng luôn Typed dataset? Nhờ các bạn giúp đỡ! Xin cảm ơn trước!!! |
|
#2
|
||||
|
||||
Re: Thiết kế lớp DAL và BLL
DAL và BLL là cái gì vậy
__________________
Sống ở trên đời cần có một TẤM LÒNG để lúc đói còn có chỗ mà nhét THỨC ĂN |
|
#3
|
||||
|
||||
Re: Thiết kế lớp DAL và BLL
DAL là Data Access Layer, còn BLL là cái gì tui cũng không biết luôn.
P/s: thiết nghĩ khi đặt câu hỏi thì không nên đánh đố người trả lời như thế.
__________________
Keep moving forward!
... Retired ... |
|
#4
|
||||
|
||||
Re: Thiết kế lớp DAL và BLL
Theo Dr thì có thể là:
DAL == Database Abstraction Layer BLL == Business logic layer Về câu hỏi của bạn, Dr cũng chưa biết, chắc phải chờ mấy bác hiểu rõ về DB giúp đỡ.
__________________
Đi một ngày đàng học một sàng dại Sàng đi sàng lại để lấy một tí khôn Tìm kiếm hạnh phúc và thành công của mình dựa vào người khác thực sự là ngu ngốc. Phó mặc tương lai của mình cho số phận, chính là định mệnh của một kẻ lười nhác. (Tim Knox) ___________________________________________ |
|
#5
|
||||
|
||||
Re: Thiết kế lớp DAL và BLL
Mô hình ứng dụng 3-tier (3 tầng) do Microsoft khuyến cáo có dạng như sau:
- Tầng cao nhất: Presentation layer (tầng "trình diễn"): đây là tầng giao diện với người dùng (User interface). Tầng này thì phe ta quen cả rồi (Form, Controls,...). Cũng có một số vấn đề về phương pháp thiết kế nhưng nói chung là ta tự mò cũng không đến nỗi gì ![]() - Tầng giữa: Business Logic Layer (BLL) tầng này định nghĩa các lớp cho phép xử lý các qui trình nghiệp vụ chuyên môn của bài toán. Ví dụ: Lớp KhachHang, lớp SanPham, lớp NhaCungCap,... tầng này chủ yếu liên quan đến logic của bài toán nên được gọi là tầng logic. - Tầng thấp nhất: Data Access Layer (DAL) tầng này định nghĩa các lớp cho phép tuy cập trực tiếp vào cơ sở dữ liệu (đơn giản thì chỉ gồm nạp dữ liệu vào ứng dụng, cập nhật dữ liệu từ ứng dụng trở lại CSDL). Nguyên tắc chung cho việc thiết lế là: không chồng lấn giữa các lớp. Một số bạn ở các diễn đàn khác giải thích khác với ý này nên lvl cũng chưa chắc chắn lắm! Đây là theo lvl hiểu: Tầng trên sử dụng các "dịch vụ" do tầng dưới cung cấp nhưng không được ngược lại. Việc sử dụng này thực ra đơn giản là tầng trên tạo ra các đối tượng của các lớp ở tầng dưới (hoặc dùng các đối tượng toàn cục, hoặc dùng các phương thức tĩnh) và truyền tham số cho các method của các đối tượng đó! VD: Form Thông tin chi tiết khách hàng sẽ dùng các đối tượng thuộc lớp KhachHang, GiaoDich,... nhưng trong các lớp KhachHang, GiaoDich,... không dùng form! Các đối tượng KhachHang, GiaoDich,... (tầng BLL) này lại dùng các dịch vụ của tầng dưới nó là DAL để nạp dữ liệu, cập nhật dữ liệu từ/đến CSDL. Tất nhiên là các lớp ở DAL không dùng các dịch vụ (tạo ra đối tượng và dùng các phương thức) của các lớp tầng BLL mặc dù vẫn có thể tạo ra đối tượng BLL (không dùng các phương thức). Nguyên tắc thiết kế này tạo ra một số thuận lợi cơ bản sau: 1. Nhờ việc phân lớp nên các lớp sẽ dùng chung tốt hơn. Khả năng sửa lỗi, nâng cấp sẽ dễ dàng hơn. 2. Từng lớp đó có thể tái sử dụng cho nhiều ứng dụng khác nhau. ----------------------- Đây là những gì lvl hiểu! Vẫn đang còn mù mờ lắm! Mong các bạn cùng trao đổi thêm! |
|
#6
|
||||
|
||||
Re: Thiết kế lớp DAL và BLLTrích dẫn:
+ Gảm thời gian bảo trì và phát triển chương trình + Mỗi tầng có thể chạy trên các OS khác nhau ví dụ , database layer chạy trên UNIX,LINUX Presentation layer thì chạy trên Windows( WEB SERVER là 1 ví dụ điển hình ) và được phát triển bằng nhiều ngôn ngữ LT cũng như nhiều nhóm coder Nhìn cũng thấy là với các chương trình quy mô nhỏ làm theo cấu trúc ba lớp thì sẽ làm tăng chi phí không cần thiết , nhưng với các ứng dụng lớn có hàm trăm ,nginf người dùng, phát triển bởi nhiều nhóm phần mềm thì việc chia ra làm nhiều lớp là tất yếu, thông thường lớp 1,2 ở trên cùng 1 máy,với các ứng dung phức tạp thì các lớp này còn được chia nhỏ thêm nữa thành 7 lớp, microsoft cũng đã công bố các mô hình đa lớp chuẩn cho .net bạn có thể tham khảo ở file đính kèm, với các ngôn ngữ trước .net (vb6,c++) có thể tìm hiểu thêm về DCOM Với câu hỏi của bạn, tôi trả lời như sau 1 . typed dataset và 3 Tier architecture không loại trừ lẫn nhau , lớp data access có thể sử dụng typed dataset để trung chuyển dữ liệu giữa các tầng 2.Mô hình tốt nhất còn tùy thuộc vào đế án của bạn ,client sẽ là winform APP, WEB, console???, cách thức sử dụng data của client tiear( chỉ đọc ,tương tác cập nhật hay trung chuyển ..),... Tài liệu tham khảo http://www.microsoft.com/downloads/d...displaylang=en
__________________
Phạm Hải MS Technical Expert FPT Software Corp. www.FPTSoftwareCareer.com www.chodua.com ----------------------------------------- Join us, Kick off the Big Game! Đã được chỉnh sửa lần cuối bởi Haipt : 19-12-2007 lúc 11:58 AM. |
|
#7
|
||||
|
||||
Re: Thiết kế lớp DAL và BLL
Cảm ơn phamtiensinh nhiều!
|
![]() |
|
| Bookmarks |
| Các công cụ đề tài | |
| Các chế độ hiển thị | |
|
|
Các đề tài tương tự
|
||||
| Đề tài | Người bắt đầu đề tài | Diễn đàn | Các trả lời | Bài viết cuối |
| Nghiên cứu về Design Pattern trong lập trình và sản xuất phần mềm. (vesion 1) | Kevin Hoang | Rắc rối với Software Engineering | 20 | 26-01-2010 09:34 AM |
| factory method | cuopbien | Thắc mắc về Lập trình C/C++/C++0x | 6 | 20-12-2008 12:10 AM |
| Lập trình hướng đối tượng ^^! | langman | Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x | 4 | 22-01-2008 08:06 AM |