дизайн проекта, правильно ли я понимаю - PullRequest
0 голосов
/ 25 августа 2018

Я разработчик программного обеспечения, но всегда работал над «маленькими» проектами / решениями.Сейчас я пытаюсь создать приложение с нуля, просто чтобы оставаться на связи с новыми разработками и изучать новые вещи.Я пытаюсь использовать все, что никогда не использовал раньше.В общем, это означает, что я разрабатываю приложение ac #, используя EF core 2.1 и SQL Server.Я прочитал много статей в Интернете, и я уже много узнал.Но я все еще смущен, потому что каждый день я нахожу новую статью, используя другой подход.Мне бы хотелось узнать мнение некоторых других разработчиков о том, что я получил до сих пор.Прежде всего, я привык к WinForms, так что пока я буду использовать это в качестве своего пользовательского интерфейса.Просто потому, что я могу получить быстрые результаты с этим.После этого я попробую использовать ASP.NET Core.Я также хочу иметь возможность использовать другой пользовательский интерфейс и все еще иметь возможность использовать остальную часть моего решения. В моем решении несколько проектов: 1. Данные: EF Context, DbSets, Миграции2. Модели: модели EF, используемые в контексте EF (не более, чем POCO)3. DTO: объекты, открытые для пользовательского интерфейса (опять же, классы и свойства, не более того)4. Mapper: «DTO к модели» и «Модель к DTO»5. Сервисы: статические классы и статические методы / функции, использующие все вышеперечисленное, содержащие логику.например, GetCustomer использует класс контекста EF для чтения базы данных, получает модель, сопоставляет ее с DTO и возвращает ее.6. Пользовательский интерфейс: привязывает к объектам DTO и использует сервисы для каждого «действия» пользователя.Вот и все, в двух словах.Но я на правильном пути?Я много читал об IoC, но я еще не там, но, насколько я понимаю, это не имеет ничего общего с вышеизложенным. У меня есть 1 конкретный вопрос: В WinForms есть проверка с использованием интерфейса IDataErrorInfo, и для привязки мне нужна логика INotifyPropertyChanged.Куда это относится?Я бы сказал, в моем DTO, но некоторые говорят, что DTO "не может иметь" никакой логики.Я прошу прощения за длинный "вопрос", но я буду благодарен за любой вклад, чтобы убедиться, что я все это правильно понимаю.

1 Ответ

0 голосов
/ 25 августа 2018

DTO обычно не предназначен для презентации. Он предназначен для отправки необработанных данных, поэтому они, как правило, являются тупыми объектами и представляют собой просто набор методов установки и получения свойств. Модель представления предназначена для отправки в представление, а модель представления также отправляет данные обратно в контроллер. ViewModel иногда берет на себя ответственность за логику представления.

...