2010-01-22 30 views
5

Tôi biết đây là một câu hỏi rất cơ bản. Nhưng tôi thực sự không thể hiểu được những gì chúng ta nên có trong BLL. Hãy để tôi lấy một ví dụ.
Hãy để chúng tôi xem xét trang web Login.aspx, được sử dụng để tạo điều kiện đăng nhập người dùng.
Trong trường hợp này, Login.aspx sẽ có hai hộp văn bản và một nút đăng nhập. (Lớp trình bày).
Lớp truy cập dữ liệu sẽ có chức năng để kiểm tra xem tên người dùng và mật khẩu có chính xác không.Chúng ta nên có gì trong một lớp logic nghiệp vụ (BLL)


Tôi không nghĩ mình cần thứ gì khác trong trang này. Vì vậy, những gì tôi sẽ có trong BLL. Nếu bạn muốn thêm một số chức năng cần có trong BLL, vui lòng thêm.

Trả lời

2

Bạn nên có một cái gì đó như thế này:

Giao diện gọi BL.SaveUsernameAndPassword(string user, string pass);

BL.SaveUsernameAndPassword nên xác nhận các chuỗi, và sau đó gọi DAL.SaveUsernameAndPassword(string user, string pass);

DAL.SaveUsernameAndPassword nên đặt các thông số này vào truy vấn SQL của bạn và thực hiện nó, với giả định rằng dữ liệu hợp lệ

+0

vì vậy trong trường hợp này tôi không thể có một DAL chung cho tất cả các dự án của tôi, vì tôi phải viết truy vấn trong DAL. –

+0

Tại sao phải viết truy vấn trong DAL ngăn bạn có DAL chung cho các dự án của bạn? –

+0

Trong một số dự án, tôi có thể muốn chọn số lượng biến khác nhau từ các bảng khác nhau. –

6

Không, BLL sẽ kiểm tra xem tên người dùng và mật khẩu có đúng không. DAL chỉ dành cho truy cập dữ liệu.

+0

vì vậy bạn có nghĩa là, khi nhấp vào nút đăng nhập, tôi sẽ gọi một hàm trong BLL để kiểm tra xem tên người dùng và mật khẩu của tôi s chính xác bằng cách chuyển chúng đến DAL –

+0

@ kprobst, tôi có nên viết truy vấn Sql vào BAL –

+1

Ví dụ: giả sử bạn đang truy xuất băm mật khẩu dựa trên tên người dùng và xác minh nó dựa vào mật khẩu đã cung cấp. Các DAL được sử dụng để kéo dữ liệu ra khỏi bảng nơi mà được lưu trữ, BLL được sử dụng để xác minh băm. Nói chung không có logic nên cư trú trong cơ sở dữ liệu, cho dù kinh doanh hay không. Điều đó xảy ra trong lớp kinh doanh. Điều này không phải lúc nào cũng có thể, nhưng bạn nên cố gắng giữ càng nhiều mã trong DB càng tốt. Hãy xem xét phần DAL (ORM, bất cứ điều gì) của DB cho mục đích này. – kprobst

4

"Lớp dữ liệu Acess sẽ có chức năng kiểm tra xem tên người dùng và mật khẩu có chính xác không" - sai. BLL sẽ làm điều đó, DAL sẽ chỉ truy xuất (hoặc cố gắng truy xuất) thông tin của người dùng, mà không thực hiện bất kỳ kiểm tra nào về nó.

+0

vì vậy trong trường hợp này, tôi đang thực hiện một SP, sau đó tôi nên thêm tham số cho SP đó, trong BLL hoặc DAL –

+0

BLL của bạn nên yêu cầu DAL gọi SP, và BLL sẽ giải thích kết quả của nó khi nó quay trở lại. Các DAL chỉ là một ống dẫn chủ yếu là não. –

+0

vì vậy nó có nghĩa là trong BLL tôi sẽ thêm các tham số cho SP đó và chuyển nó đến DAL để thực hiện. –

Các vấn đề liên quan