Saya memiliki keraguan serius tentang desain untuk aplikasi Web saya.
Saya ingin memisahkan logika bisnis dari antarmuka jadi saya membuat Web API yang menangani semua permintaan ke database.
Ini adalah ASP.NET Web API dengan kerangka kerja Entity dan unit kerja serta pola repositori umum. Sejauh ini semuanya baik-baik saja.
MASALAH
Di mana saya perlu bantuan adalah saya tidak dapat menemukan cara berbagi objek yang efisien antara API dan aplikasi.
Saya tidak ingin membuat cerita bersambung langsung objek entitas, saya pikir ini akan menjadi praktik yang buruk karena jika model entitas berubah, saya bisa berakhir dengan membuat serial objek besar tanpa alasan.
Bagaimana ini diterapkan sekarang
Karena antarmuka saya adalah aplikasi Web ASP.NET di C # dan API saya di C #, saya membuat perpustakaan umum dengan definisi semua kelas yang ingin saya bagikan di antara mereka.
Saya tahu bahwa solusi tidak akan berfungsi ketika saya akan mengembangkan aplikasi android, saya harus membuat kelas saya lagi di Jawa tapi itu bukan masalah terbesar saya.
Masalahnya adalah saya merasa seperti saya selalu mengubah objek saya.
CONTOH
Inilah contoh alur pekerjaan saya:
Saya mulai dengan model dengan semua objek dan anotasi data untuk formulir saya kemudian pengguna akan POST model itu ke controller.
Dalam controller saya harus mengubah model ini ke kelas di perpustakaan umum saya kemudian mengirim objek itu ke API saya.
Kemudian pengontrol di API saya menangkap panggilan dan mengonversi objek itu ke objek entitas untuk memperbarui database.
Jadi saya punya 3 kelas
- Model untuk tampilan dengan semua anotasi data untuk validasi (Klien)
- Kelas-kelas perpustakaan umum untuk berbagi objek (DLL)
- Kelas Entitas (API)
Saya merasa bahwa saya melakukan sesuatu yang sangat salah. Apakah ada sesuatu yang lebih elegan? Saya ingin memastikan bahwa saya memiliki solusi yang baik untuk masalah ini sebelum proyek menjadi terlalu besar.