У мене є серйозні сумніви щодо дизайну мого веб-додатка.
Я хотів відокремити бізнес-логіку від інтерфейсу, тому я зробив веб-API, який обробляє всі запити до бази даних.
Це веб-API ASP.NET з Entity Framework та одиницею роботи та загальним шаблоном сховищ. Поки все добре.
ПРОБЛЕМА
Якщо мені потрібна допомога, я не можу знайти ефективний спосіб спільного використання об’єктів між API та програмою.
Я не хочу безпосередньо серіалізувати об'єкт сутності, я вважав, що це буде поганою практикою, тому що якщо модель сутності зміниться, я могла б закінчитися серіалізацією великих об'єктів без причини.
Як це зараз реалізовано
Оскільки мій інтерфейс - це веб-додаток ASP.NET в C #, а мій API - у C #, я створив спільну бібліотеку з визначенням усіх моїх класів, якими я хочу поділитися між ними.
Я знаю, що рішення не спрацює, коли я буду розробляти додаток для android, мені доведеться створювати свої класи знову на Java, але це не моя найбільша проблема.
Проблема в тому, що я відчуваю, що я завжди перетворюю свої об'єкти.
ПРИКЛАД
Ось приклад моєї роботи:
Я починаю з моделі з усіма об'єктами та анотаціями даних для моєї форми, тоді користувач розмістить цю модель на контролер.
У контролері я повинен перетворити цю модель у клас своєї загальної бібліотеки, а потім надіслати цей об’єкт моєму API.
Тоді контролер у моєму API записує виклик та перетворює цей об'єкт в об'єкт сутності для оновлення бази даних.
Тож у мене 3 класи
- Модель перегляду з усіма примітками даних для перевірки (Клієнт)
- Загальні класи бібліотеки для обміну об'єктами (DLL)
- Класи сутності (API)
У мене є відчуття, що я роблю щось справді не так. Чи є щось більш елегантне? Я хотів би переконатися, що в мене є гарне рішення цієї проблеми, перш ніж проект стане занадто великим.