2010-02-17 28 views
5

Tôi hiện đang sử dụng thư mục App_Code cho tất cả các lớp học của mình và đối với tôi (hiện tại) có vẻ như nó chỉ hoạt động tốt.Dự án thư viện lớp học VS App_Code - Ưu điểm/nhược điểm?

Tuy nhiên, tôi đã cân nhắc việc chuyển sang Dự án thư viện lớp bên trong Giải pháp thay vì thư mục App_Code. Bất cứ ai có thể cho tôi biết những ưu và khuyết điểm của việc này?

Một ý nghĩ mà tôi có liên quan đến việc thử nghiệm ứng dụng web của mình. Nếu tôi sử dụng một thư viện lớp, tôi có phải biên dịch nó mỗi lần tôi muốn tinh chỉnh/kiểm tra không? Rõ ràng là trong thư mục App_Code tôi không phải từ khi tất cả các lớp được biên dịch khi chạy.

+0

http://stackoverflow.com/questions/398037/asp-net-web-site-or-web-application – womp

Trả lời

6

Bạn nên sử dụng thư viện lớp học. Lý do rất đơn giản.

Bạn muốn xóa logic doanh nghiệp hoặc ứng dụng khỏi giao diện người dùng. Thư mục App_Code dành cho các lớp chỉ xử lý giao diện người dùng.

Lý do tách biệt là tạo các tầng. Có nghĩa là hôm nay bạn có một trang web, tommorow bạn có thể được yêu cầu để làm cho một chương trình cửa sổ, hoặc một trang web mới. Nếu bạn phải thay đổi giao diện người dùng, bạn sẽ sao chép và dán mã. Điều đó có nghĩa là bạn hiện có từ 2 địa điểm trở lên để duy trì mã. Điều này sẽ dẫn đến chất lượng mã kém hơn, sửa lỗi tương tự ở 2 địa điểm trở lên.

Nếu bạn đặt mã của mình trong thư viện. Bạn tạo một giao diện người dùng mới và sau đó chỉ cần tham khảo thư viện. Bạn hiện chỉ đang sử dụng 1 bộ mã.

+0

Đây là câu trả lời hay và câu trả lời hoàn hảo. Trong câu hỏi của tôi ở trên, tôi đã đề cập đến việc phải biên dịch Thư viện lớp nhiều lần trong khi kiểm tra ... có cách nào xung quanh vấn đề này không? –

+0

Vì vậy, câu trả lời là tôi phải biên dịch nó mỗi khi tôi thực hiện một tinh chỉnh hoặc mod? –

+0

Bạn không phải biên dịch logic nghiệp vụ nếu bạn chưa thay đổi nó. Biên dịch không mất nhiều thời gian và không phải là một lý do chính đáng để giữ tất cả mã của bạn trong lớp giao diện người dùng của bạn. –

0

Jimmy Bogard (tác giả của Automapper) đã viết một cách xuất sắc article về cách cấu trúc mã của anh ấy, điều này có thể hỗ trợ xác nhận câu trả lời của @ David.

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