7

Bạn đề xuất cấu trúc dự án thích hợp cho giải pháp WebForms đang sử dụng NHibernate và cố gắng mang lại một số khái niệm DDD như thế nào?DDD, NHibernate và Cấu trúc dự án/Đặt tên

Giả sử không gian tên gốc và tên giải pháp là mẫu

  • Sample.Domain - chứa các đối tượng tên miền của tôi và các tập tin bản đồ của tôi
  • Sample.Repositories - chứa kho của tôi và tập tin cấu hình kết nối nhibernate
  • Sample .Business - chứa logic nghiệp vụ của tôi
  • Sample.Web - dự án WebForms thực tế - tất cả Bản trình bày

Tôi quên gì? Có cách nào tiêu chuẩn hơn để đặt tên cho chúng không?
Bất kỳ bài đăng trên blog tuyệt vời nào về chủ đề này?

+0

Phải có các dự án thử nghiệm. thx – BuddyJoe

+0

Đã có một cái nhìn về những gì CodeCampServer làm. Không thể kiểm tra mã nguồn. Kho lưu trữ Weird đã di chuyển lỗi. Có ai khác có thể kiểm tra nó không? chi tiết: http://code.google.com/p/codecampserver/source/checkout – BuddyJoe

+2

Logic nghiệp vụ của bạn phải nằm trong miền. – Paco

Trả lời

3

Một vài phần bị thiếu có vẻ là vị trí trung tâm cho các dịch vụ cần thiết trong suốt dự án và các dự án thử nghiệm. Tôi thường có một cái gì đó như thế này:

  • Sample.Core - dịch vụ và mã mà cần phải được sử dụng trên các ứng dụng
  • Sample.Data - lớp miền và giao diện kho
  • Sample.Data.NHibernate - bản đồ file, cấu hình thông thạo, vv và triển khai kho, về cơ bản dữ liệu bất cứ điều gì lập bản đồ lớp cụ thể
  • Sample.Services - triển khai dịch vụ và giao diện
  • Sample.Web - ứng dụng web

Tôi có một cây phù hợp với các dự án thử nghiệm:

  • thử nghiệm \ Sample.Core.Tests
  • thử nghiệm \ Sample.Data.NHibernate.Tests
  • vv ...

Tất nhiên, cây sẽ trở nên phức tạp hơn tùy thuộc vào dự án. Đối với các cuộc thảo luận, hãy xem Onion Architecture. Bạn cũng có thể xem các dự án mẫu trên Domain-Driven Design và xem những gì bạn có thể thực hiện từ những dự án đó.

+0

+1 ý tưởng hay. liên kết tốt. – BuddyJoe

2

Tôi đã tìm thấy mọi người đều có sở thích riêng của họ để đặt tên, tôi thích:

  • Sample.Domain - đối tượng miền, file ánh xạ
  • Sample.Services - logic kinh doanh và dịch vụ (và kho, mặc dù tôi có thể nhìn thấy việc tách những thứ này ra)
  • Sample.Web - Web Stuff.
  • Sample.Migrations - Di chuyển dữ liệu.

Ben Scheirman gần đây cũng đã đăng về điều này: Exporting Visual Studio Solutions with Solution Factory.

Anh ấy sử dụng cấu trúc khác nhưng cũng bao gồm cách tuyệt vời để chuẩn hóa mẫu của bạn.

+0

rất tuyệt. Phải thử Nhà máy Giải pháp này. +1 – BuddyJoe

2

Tôi giữ cho nó đơn giản và gọn gàng theo hướng tách biệt bởi không gian tên thay vì theo dự án, đặc biệt là ở đầu. Tôi thường bắt đầu với ba dự án trong giải pháp:

  • Mẫu - chứa các không gian tên Sample.Model, Sample.Model.Mappings và Sample.Services.
  • Sample.Tests - chứa các bài kiểm tra đơn vị được cấu trúc giống như Mẫu.
  • Sample.Web - UI
+0

Sample.Model.Mappings cho là gì? – BuddyJoe

+0

Các lớp ánh xạ thành thạo NHibernate. –

+0

Gotcha. Chưa sử dụng. Cảm ơn. – BuddyJoe

1

Bạn có thể xem cách nó được thực hiện trong s#arp architecture. Khung kiến ​​trúc rất vững chắc của nó

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