13

Tôi mới làm quen với thiết kế theo miền nhưng muốn tìm hiểu và sử dụng nó cho một ứng dụng mới. Tôi sẽ sử dụng Khuôn khổ thực thể để truy cập dữ liệu.Domain Driven Design, .NET và Entity Framework

Cách bố trí cơ bản cho đến nay là:

ASP.NET MVC và các khách hàng khác (di động thiết bị, vv)
|
Webservices
|
Mô hình miền (Dịch vụ, Kho lưu trữ, Tổng hợp, Đối tượng và Đối tượng giá trị)
|
Lớp truy cập dữ liệu (Khung thực thể)
|
Lưu trữ dữ liệu (SQL Server)

Cách tốt nhất để truyền dữ liệu giữa lớp truy cập dữ liệu và mô hình miền là gì? Tôi nghĩ rằng các thực thể trong mô hình miền là các đối tượng POCO và chúng phải được ánh xạ tới/từ các đối tượng Khung thực thể. Đây có phải là giải pháp tốt không?

Nếu vậy:
Cách lập bản đồ như thế nào và ở đâu? (Lớp mô hình miền hoặc Lớp truy cập dữ liệu)
Tôi nên truy vấn khung thực thể ở đâu và làm cách nào để trả về danh sách dựa trên tìm kiếm)?

+7

Hãy nhớ rằng DDD là cuối cùng chỉ là một cách giao tiếp hiệu quả với khách hàng bằng ngôn ngữ riêng của mình (tên miền), và sau đó thiết kế ứng dụng của bạn theo cách phù hợp với ngôn ngữ đó. Nó không phải là một kỹ thuật phát triển, mỗi se. Như vậy, không có quy tắc cứng nhắc và nhanh chóng về nơi để đặt những gì ở đâu. –

+6

@Robert Harvey: rất đúng, nhưng vẫn rất hữu ích khi có một số hướng dẫn về cách áp dụng các nguyên tắc DDD cho một tình huống cụ thể (có lẽ khá phổ biến). – jeroenh

Trả lời

14

Andrey YEMELYANOV có thực hiện một luận án thạc sĩ về vấn đề này chính xác:

http://gupea.ub.gu.se/dspace/bitstream/2077/10462/1/gupea_2077_10462_1.pdf

này sẽ được dễ dàng hơn nhiều với việc phát hành EF 4, hỗ trợ đối tượng POCO.

Trong khi đó bạn có thể thử sử dụng automapper để ánh xạ giữa các đối tượng miền và EF, xem: http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/01/22/automapper-the-object-object-mapper.aspx

3
Tôi nghĩ rằng các thực thể trong mô hình miền là các đối tượng POCO và chúng phải được ánh xạ tới/từ các đối tượng Khung thực thể. Đây có phải là giải pháp tốt không?

Tôi nghĩ vậy.

Đây là điều mà chúng tôi đã thực hiện khá thành công, mặc dù trong trường hợp của tôi trong thế giới Java. Các lớp miền của chúng tôi chứa phần lớn logic nghiệp vụ. Mỗi tham chiếu có một tham chiếu đến một đối tượng thực thể dữ liệu mỏng và ủy nhiệm việc nhận và thiết lập các thuộc tính liên tục cho thực thể dữ liệu.

2

S#arp architecture project là điểm xuất phát tuyệt vời để được hướng dẫn về cách áp dụng DDD. Nó được dựa trên NHibernate, nhưng các nguyên tắc sử dụng nên giữ bình đẳng cho EF ...

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