2010-08-22 1 views
1

Я просыпаюсь сегодня утром с проблемой!POCOs, DTOs и IDataErrorInfo

Во всех моих компонентах у меня есть набор бизнес-правил, которые используются для проверки DTO до внесения каких-либо изменений в репозиторий.

Я пытался найти лучший способ получить ошибки проверки обратно в пользовательский интерфейс, и я наткнулся на интерфейс IDataErrorInfo. Фантастика!

Однако реализация этого интерфейса превратит мой DTO в POCO и сделает его более крупным объектом с точки зрения использования памяти. На данный момент все пользовательские элементы управления привязаны к текущим объектам DTO.

Будет ли преобразование моих DTO в POCOs иметь влияние на производительность? Или есть лучший способ получить подтверждение сообщений в пользовательском интерфейсе?

ответ

0

MVVM. т. е. ваши DTOs обернуты в модели просмотра, которые привязаны к вашему представлению.

-5

Я пытался выяснить лучший способ получить ошибки проверки назад к пользовательскому интерфейсу, и я наткнулся на интерфейс IDataErrorInfo. Фантастика!

Абсолютно. Почему вы не знаете, что делаете в первую очередь? IDataErrorInfo полностью задокументирован - не то, что вам нужно «встретить» (что звучит случайно).

Реализация этого интерфейса превратит мой DTO в POCO и делают больший объект с точки зрения использования памяти. На данный момент все пользовательские элементы управления привязаны к текущим объектам DTO .

A DTO не имеет абсолютно никакого бизнеса, знающего о внутренних ошибках - он никогда больше не должен иметь внутренние ошибки. См. DTO - «Объект передачи данных», а не «Бизнес-объект». DTO - это то, что должен создать объект Business, чтобы отправить его в DataAccessLayer, и причина, по которой не должна быть проверки, - это то, что Business Object гарантирует, что ТОЛЬКО ДЕЙСТВИТЕЛЬНЫЕ ОБЪЕКТЫ СОЗДАЮТ DTO.

Btw,

превратит мой DTO в POCO

У меня есть еще одно открытие сюрприз для вас -. Ваш DTO уже ЯВЛЯЕТСЯ ПОКО. POCO - это «Обычный объект CLR», и я полагаю, что ваш DTO установлен как классы .NET, поэтому - угадайте, что, удивление, они уже являются POCO.

Что вы имеете в виду (снова что-то открыть) в том, что он превратит ваши DTO в BO.

Или есть лучший способ получить валидационные сообщения обратно в интерфейс?

Нет, не существует. Лучший способ отправить сообщения до пользовательского интерфейса - это интерфейсы, определенные UI, и это IDataErrorInfo.

Ваша проблема заключается в том, что у вас есть Хью путаница:

  • Как программировать мульти многоуровневой архитектуры и построить стандартный уровень доступа к данным
  • ничего не знает об условиях, которые вы используете (см вашей проблемы зная, что такое DTO, и что такое POCO).
  • Таким образом, смешайте свои обязанности.

См. Ответы на POCO vs DTO для объяснения того, что вы на самом деле перепутали.

Назад к чертежной доске. Как ваш ведущий разработчик/архитектор, чтобы дать вам введение в многоуровневую архитектуру и прочитать документацию .NET.

DTO должен иметь дело с проблемами DataTransfer.

+10

Все действующие пункты. Я отметил этот ответ правильно, исходя из того, что вы сделали. Старайтесь не быть таким абразивным dickwad в следующий раз. –

 Смежные вопросы

  • Нет связанных вопросов^_^