Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Thiết kế lớp DAL và BLL

  1. #1
    Ngày gia nhập
    10 2007
    Bài viết
    13

    Mặc định 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. #2
    Ngày gia nhập
    06 2007
    Nơi ở
    Hà nội
    Bài viết
    77

    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. #3
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    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. #4
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    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 đỡ.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  5. #5
    Ngày gia nhập
    10 2007
    Bài viết
    13

    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. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    HCM
    Bài viết
    365

    Mặc định Thiết kế lớp DAL và BLL

    Trích dẫn Nguyên bản được gửi bởi lvl Xem bài viết
    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!!!
    Tôi thấy nhiều bạn thường phức tạp hóa 3 Tier lên do chưa hiểu rõ vấn đề, cấu trúc 3 lớp chẳng qua là nguyên tắc chia để trị trong cuộc sống áp dụng vào lĩnh vực phần mềm mà thôi,khi viết các đề án lớn các lập trình viên thường gặp rắc rối trong việc bảo trì sản phẩm , ví dụ khi CSDL có thay đổi cũng làm ảnh hưởng đến toàn bộ project dẫn đến phải sửa lại,biên dịch toàn bộ project (nếu project này do nhiều nhóm coder phát triển thì chi phí bảo rì sẽ rất cao)do vậy các lập trình viên phải chia nhỏ các project làm nhiều gói để dễ quản lý, nó cũng được hiểu như nguyên tắc vết nửt trong xây dựng cầu đường vậy, nói đơn giản bình thường bạn không thể xé đôi 1 miếng bìa được, nhưng nếu miếng bìa đó có góc rách thì người ta có thể lựa đúng chỗ rách đó mà xé toang miếng bìa mất rất ít sức ,nhưng nếu miếng bìa đó được hợp thành từ nhiều miếng bìa gắn lại thì có bị crash cũng chỉ phải sửa lại mảnh bị hỏng thôi thay vì phải thay tất cả để tiết kiệm chi phí và tăng độ bền sản phẩm.Do vậy các chương trình đa lớp sẽ có các thế mạnh như sau
    + 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
    Đã được chỉnh sửa lần cuối bởi Haipt : 19-12-2007 lúc 11:58 AM.

  7. #7
    Ngày gia nhập
    10 2007
    Bài viết
    13

    Cảm ơn phamtiensinh nhiều!

Các đề tài tương tự

  1. Vinacolors.com - Thiết kế kiến trúc, thiết kế nội thất chuyên nghiệp
    Gửi bởi vinacolors trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 29-09-2013, 11:33 AM
  2. Thiết kế kiến trúc, thiết kế biệt thự, thiết kế nhà dân, thiết kế nội thất, showroom, triển lãm
    Gửi bởi hoangthanh1981hn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 7
    Bài viết cuối: 16-04-2013, 10:29 AM
  3. www.elegantvn.com - thiết kế website, thiết kế tờ rơi, thiết kế brochure v..v.
    Gửi bởi elegantvn trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-07-2012, 11:32 PM
  4. Thiết kế website , seo top, thiết kế web giá rẻ , thiết kế web đẹp !
    Gửi bởi depzai trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 19-10-2011, 08:34 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn