Web uygulamamın tasarımı hakkında ciddi şüphelerim var.
İş mantığını arayüzden ayırmak istedim, böylece veritabanına yapılan tüm istekleri işleyen bir Web API'sı yaptım.
Entity çerçeveli bir ASP.NET Web API'sı ve bir iş birimi ve genel veri havuzu modeli. Şimdiye kadar her şey iyi.
SORUN
Yardıma ihtiyacım olduğunda API ile uygulama arasında nesne paylaşmanın etkili bir yolunu bulamıyorum.
Varlık nesnesini doğrudan serileştirmek istemiyorum, kötü bir uygulama olacağını düşündüm çünkü varlık modeli değişirse, büyük nesneleri hiçbir sebeple serileştirebilirim.
Şimdi nasıl uygulandı
Arabirim C # ASP.NET Web uygulaması ve API # C olduğundan, aralarında paylaşmak istediğim tüm sınıflarımın tanımı ile ortak bir kütüphane yaptım.
Bir android uygulaması geliştirdiğimde çözümün işe yaramayacağını biliyorum, sınıflarımı tekrar Java'da oluşturmak zorunda kalacağım, ancak bu benim en büyük sorunum değil.
Sorun şu ki, nesnelerimı her zaman dönüştürüyorum gibi hissediyorum.
MİSAL
İşte iş akışımın bir örneği:
Ben form için tüm nesneler ve veri ek açıklamaları ile bir model ile başlar sonra kullanıcı bir denetleyiciye POST POST olacaktır.
Denetleyicide bu modeli ortak kütüphanemdeki bir sınıfa dönüştürmem ve sonra bu nesneyi API'ma göndermem gerekiyor.
Daha sonra API'mdaki bir denetleyici çağrıyı yakalar ve veritabanını güncellemek için bu nesneyi bir varlık nesnesine dönüştürür.
3 dersim var
- Doğrulama için tüm veri ek açıklamalarına sahip görünümün modeli (İstemci)
- Nesneleri paylaşmak için ortak kütüphane sınıfları (DLL)
- Varlık sınıfları (API)
Gerçekten yanlış bir şey yaptığımı hissediyorum. Daha zarif bir şey var mı? Proje çok büyük hale gelmeden önce bu soruna iyi bir çözüm bulduğumdan emin olmak istiyorum.