Ben küçük bir dev oldugumda, temelde ne anlatmakta oldugunuzu yapan büyük bir proje üzerinde çalistim. Otomatik biçimlendirici kullanmadık, ancak temelde, görünümünüzdeki değişiklikleri doğrudan etki alanı nesnelerine aldığınızı ifade eden etki alanı nesnelerini kapsülleyen görünüm modülleri oluşturduk. Sadece değişikliklerinizi devam ettirin ve bunların olmasını istediğiniz yerde (veritabanında) bulun. Bu uygulama dört yıl önce serbest bırakılmış olmalı, ancak hala mücadele ediyorlar.
Bu neden bir koku mu? Şeyleri neden değiştirdiğin konusunda bir niyetin izini kaybediyorsun. Ve niyetiniz, uygulamanız büyüdükçe ve daha karmaşık hale geldiğinde gerçekten çok önemli olan bir şeydir. Alanınıza yeni kurallar uygulamak zor çünkü etki alanınızda gerçekleştirmek için hangi işlemlerin geçerli olduğunu görmek zor. Etki alanı modelinizi otomatik eşlenebilir yaparsanız, aynı zamanda çok anemic. Jimmy işaret ettiği gibi
, değil automapper şartlarına, etki gereklerine sonra etki alanını modellemek istiyoruz. Eğer automapper doğrudan modelinizde çalışacak olsaydı, mülk belirleyicileri genel yapmak gibi ayarlamalar yapmak zorunda kalacaktı, ancak bu alan-modelleme perspektifinden iyi bir fikir olmayabilir.
ben daha büyük bir sorun ViewModels doğrudan automapped edilebilir etki alanı modeli tatmin edici bir şekilde niyet, ne de kapsülleme iletmek olmadığını düşünüyorum. Eğer küçük bir uygulama oluştururken, o zaman aktif kayıt/veri kümesi tarzı mimari kötü bir şey olmayabilir, ama çözüm ölçekli ya da karmaşık larged olup olmadığını ViewModel gelen etki alanına haritalama daha büyük sorunları var. Üzerinde çalışıyorum geçerli uygulamasında
, biz etki alanından dto en ve ViewModels için DTO en eşleme yapmanıza automapper kullanın. Bir şey kalıcı hale geldiğinde, görüntü modülleri üzerindeki işlemi, etki alanına karşı çalıştırılan açık komutlara çeviririz. Herhangi bir büyük ölçekli uygulamada (ince veya kalın istemci) asla üç katmanlı bir mimariyi önermem.
Harika cevap. Teşekkür ederim. – Nosila
+1 İyi yazılmış. Daha fazla katılıyorum. –
Niyet yok ise? en depo içerisindeki bir kalıcılık nesnesine ileri geri etki alanı nesnesini eşlemek istediğinizi varsayalım. Değişikliğin amacı, alan düzeyinde zaten ifade edilmiştir. Bu durumda, iki yönlü eşlemenin geçerli olduğunu düşünüyorum. – Guillaume