Sebuah aplikasi web dimana psikoterapis yang berspesialisasi di bidangnya dapat menjawab pertanyaan yang diajukan kepada mereka di platform ini.
Saya menggunakan:
Bangunan Arsitektur
Proyek ini terdiri dari dua lapisan. Lapisan Persistensi, yang terkait dengan Basis Data, dan Lapisan Inti, yang tidak terkait dengan Basis Data
Pengontrol => Inti <= Kegigihan
Kita bisa membicarakan diagram ketergantungan seperti ini. Lapisan Inti berisi kelas Antarmuka. Persistence berisi kelas tempat saya mendefinisikan antarmuka ini. Di sisi Controller, saya menggunakan kelas UnitOfWork untuk mengurangi ketergantungan Controller DBContext . Namun, meskipun pengontrolnya adalah lapisan tingkat tinggi , ia digabungkan erat dengan UnitOfWork, lapisan tingkat rendah . Saya menggunakan kelas IUnitOfWork untuk ini. IUnitOfWork mendefinisikan kelas abstrak sepenuhnya yang berisi IRepository. Kemudian saya membuat kelas UnitOfWork bergantung pada kelas IUnitOfWork . Demikian pula, saya membuat ketergantungan antara lapisan Controller dan IUnitOfWork .
Pengontrol => IUnitOfWork <= UnitOfWork
Sekarang lapisan Kontroler tingkat tinggi bergantung pada kelas Abstrak. Begitu pula di UnitOfWork yang merupakan kelas tingkat rendah dan detail, Abstrakk menjadi bergantung pada suatu kelas. Sebenarnya, apa yang saya lakukan adalah membuat Core Layer benar-benar independen. Testabilitas aplikasi telah meningkat. Selain itu, Lapisan Inti memiliki struktur yang independen terhadap Kerangka ORM. Perubahan yang dilakukan pada UnitOfWork tidak akan mempengaruhi Lapisan IUnitOfWork.
Di sisi lain, dalam aplikasi, ketergantungan DbContext masih berlanjut di Lapisan UnitOfWork . Hal ini secara tidak langsung menyebabkan masalah Controller - DbContext yang terkait erat. Saya menggunakan Kerangka Injeksi Ketergantungan untuk menyelesaikan ini. (Ninjeksi 3.2.1.0)