[Pre]
Я должен сказать, что я тупой новичок, который пытается собрать вместе важные головоломки с такими важными деталями, как DDD, TDD, MVVM и EFCore. У меня около 10 лет опыта разработки окон в совершенно неправильной форме, и после того, как я присоединился к Plurasight, я понял, что только что потерял свои последние 10 лет, и это действительно печально:).
[Описание проблемы]
У меня есть приложение, которое я хочу переписать с нуля, используя новейшие и лучшие методики, которые были изучены за последние 6 месяцев на Pluralsight, но проблема в том, что эти новые знания мешают мне, потому что я просто боюсь, что я снова сделаю это неправильно ... (это глупо, я знаю, но это то, что есть).
Итак, возвращаясь к моим вопросам, у меня есть большая проблемная область и довольно хорошо документированная бизнес-логика, которую я должен включить в код. Я понимаю, что моей отправной точкой является уровень данных проектирования, для этих целей я хочу использовать ядро Entity Framework (я видел курс Джулии Лерман по Pluralsight, и я думаю, что она удивительна и вдохновляет меня использовать EFCore в качестве ORM для моего приложения). Но в то же время утечка опыта порождает больше вопросов, чем то, что я узнал в Pluralsight, и я постараюсь написать их все (пожалуйста, не судите меня слишком сильно)
Похоже, мне понадобится 2 или более проектов модели данных в моем решении, и вот почему у меня несколько типов наборов документов, каждый из которых содержит более одной справочной литературы, используемой для создания уникальных имена файлов и таблицы данных. Но мне кажется странным, что у нас есть 3 проекта модели данных, таких как MyApp.PackType1.DataModel, MyApp.PackType2.DataModel, и каждый из них будет предварительно установлен с помощью EFCore, и каждый из них создаст свою собственную базу данных на основе определенного контекста данных. по EF. Разве это не очень избыточно или это правильный путь?
Я не понимаю, как объединить эти несколько проектов Data Models, включая Shared Kernel, в одну симпатичную модель
Я не понимаю, как лучше спроектировать мои классы данных? Должны ли они быть просто POCO, или я могу сделать их классами с красивыми переменными и общедоступными свойствами? Каковы лучшие практики здесь?
Также я не понимаю, каков наилучший способ использования шаблона MVVM в дополнение к этому, и применимо ли вообще использование MVVM в этом случае?
Должен ли я хранить свои тесты в отдельных проектах, таких как MyApp.PackType1.DataModel.Tests, или хранить их в одном проекте?
С наилучшими пожеланиями,
Maks!
приписка
Прошу прощения за неясные определения и вопросы, английский не мой родной язык.