Tidak pernah menggunakan Model, hanya ViewModels


8

Saya memulai proyek MVC 5 baru dari awal. Saya menggunakan EF 6 (Database First) dan Identity 2.0.

Solusi saya terdiri dari 3 proyek berbeda: Data (di mana saya memiliki .edmx dan konteks DB saya), Sumber Daya (untuk tujuan pelokalan) dan Web (proyek web itu sendiri).

Saya menggunakan ViewModels untuk semua tampilan saya, secara default. Setiap kali saya membuat tampilan baru, hal pertama yang saya lakukan adalah menambahkan ViewModel (jika ViewModels terhubung di antara mereka, saya menyimpan semuanya dalam file yang sama; misalnya, semua ViewModels yang terkait dengan akun pengguna yang saya simpan di AccountViewModels) . Sejauh ini, ini telah membuat hal-hal yang sangat sederhana dan menyelesaikan beberapa masalah yang saya alami sebelumnya.

Tapi saya bertanya-tanya, apakah masuk akal bagi saya untuk menggunakan Model sama sekali? Satu-satunya yang saya gunakan saat ini adalah yang untuk Identity, yang dibuat secara default dan berisi ApplicationUser dan ApplicationDbContext, baik spesifik dan perlu untuk Identity. Di luar itu, semuanya adalah ViewModels.

  • Apakah proyek Data saya akan dianggap sebagai "Model" untuk aplikasi saya? Jadi, saya sebenarnya menggunakan Model, hanya saja alih-alih menjadi sekelompok kelas yang saya simpan di Web \ Model, ini adalah proyek terpisah di mana "Model" (objek BL yang dibuat oleh Entity) disimpan. Saya kira begitu, tetapi saya tidak yakin.
  • Apakah ini pendekatan yang tepat, atau mungkinkah ada masalah potensial? Ini pertama kalinya saya mengambil pemrograman web, jadi saya sangat menghargai saran apa pun.

Jawaban:


9

Apakah proyek Data saya akan dianggap sebagai "Model" untuk aplikasi saya?

Ya, itulah yang seharusnya menjadi Model.

Apakah ini pendekatan yang tepat

Saya percaya itu.

atau mungkinkah ada masalah potensial?

Pasti akan ada. Namun deskripsi arsitektur Anda sangat samar, sehingga kami hanya bisa menebak masalah apa yang akan Anda hadapi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.