Tôi có một chương trình phụ trợ ứng dụng trò chuyện được xây dựng bằng cách sử dụng Web Api nơi tôi trưng bày một số thực thể cơ sở dữ liệu trực tiếp cho khách hàng. Tôi đã tự hỏi liệu có bất kỳ điểm tích cực nào để ánh xạ các thực thể với DTO hay tôi nên tiếp tục vạch trần các thực thể như hiện tại. Chỉ cần làm rõ tôi không yêu cầu DTO vs câu hỏi chung DTO nhưng chỉ lợi thế của việc sử dụng nó trong trường hợp này vì hầu hết các trường trong thực thể có thể sẽ được sử dụng bởi máy khách.Để sử dụng hoặc không sử dụng đối tượng Truyền dữ liệu (DTO) trong ứng dụng Web Api Chat Backend Server
Trả lời
Có, bạn có thể vạch trần các thực thể của mình nếu đây là một ứng dụng nhỏ được phát triển bởi một người và bạn chỉ có vài ngày để hoàn thành nó.
Nếu bạn có ý định xây dựng một ứng dụng có thể phát triển trong tương lai, bạn nên cân nhắc sử dụng DTO vì Thực thể miền không tối ưu để thể hiện dữ liệu. Thực thể tên miền luôn có nhiều hoặc ít hơn, không chính xác những gì bạn cần ở phía khách hàng.
Bạn có thể sử dụng công cụ được gọi là AutoMapper để ánh xạ đối tượng miền tới DTO.
Một số bản demo: http://www.codeproject.com/Articles/61629/AutoMapper
Cùng lợi thế như trong bất kỳ ứng dụng khác. Không có lợi thế cụ thể trong ứng dụng của bạn. Sử dụng DTO về cơ bản là một bài tập tách, tách biệt các thuộc tính khỏi các phương thức. Hiện tại bạn đang truyền các đối tượng cơ sở dữ liệu. Làm điều đó có thể có nghĩa là bạn đang vượt qua nhiều hơn yêu cầu và phơi bày nhiều hơn mức cần thiết. Bạn cũng ngụ ý rất nhiều, những gì và cách thức hoạt động được thực hiện. Có một lần nữa, bạn sẽ thoát ra khỏi nỗ lực của việc chia nhỏ thứ gì?
Đối với ứng dụng trò chuyện, SignalR là những gì bạn muốn sử dụng, không phải ASP.NET Web API: https://github.com/SignalR/SignalR – tugberk