Ortodoks MVVM uygulaması anlamsız mı? Yeni bir uygulama oluşturuyorum ve Windows Forms ve WPF'yi düşündüm. WPF'yi seçtim çünkü geleceğe dönük ve çok fazla esneklik sunuyor. Daha az kod vardır ve XAML kullanarak kullanıcı arabiriminizde önemli değişiklikler yapmak daha kolaydır.
WPF seçimi açık olduğundan, uygulama mimarim olarak MVVM'yi kullanıp, karıştırılabilirlik, ayırma endişeleri ve birim test edilebilirliği sunduğu için sonuna kadar gidebileceğimi düşündüm. Teorik olarak, UI programlamanın kutsal kasesi gibi güzel görünüyor. Bu kısa macera; ancak gerçek bir baş ağrısına dönüştü. Pratikte beklendiği gibi, bir problemi başka bir problemle değiştirdiğimi görüyorum. Doğru sonuçları alabilmek ve muhtemelen daha iyi bir programcı olabilmek için işleri doğru şekilde yapmak istediğim için takıntılı bir programcı olma eğilimindeyim. MVVM kalıbı, üretkenlik konusundaki testimi geride bıraktı ve az önce büyük bir iğrenç hack'e dönüştü!
Buradaki açık durum, bir Modal iletişim kutusu için destek eklemektir. Doğru yol, bir iletişim kutusu koymak ve bunu bir görünüm modeline bağlamaktır. Bunun işe yaraması zordur. MVVM modelinden yararlanmak için, kodu uygulamanızın katmanları boyunca birkaç yere dağıtmanız gerekir. Ayrıca şablonlar ve lamba ifadeleri gibi ezoterik programlama yapılarını da kullanmalısınız. Başınızı kaşıyarak ekrana bakmanıza neden olan şeyler. Bu, bakım ve hata ayıklamayı, yakın zamanda keşfettiğim gibi olmasını bekleyen bir kabus haline getiriyor. İkinci seferde bir istisna elde edene kadar iyi çalışan bir kutum vardı, kapatıldığında iletişim kutusunu tekrar gösteremeyeceğini söyledi. İletişim penceresine yakın işlevsellik için bir olay işleyicisi eklemem gerekiyordu, IDialogView uygulamasında bir tane ve son olarak IDialogViewModel'de bir tane. MVVM'nin bizi bu kadar abartılı bilgisayar korsanlığından kurtaracağını düşünmüştüm!
Dışarıda bu soruna rakip çözümlere sahip birkaç kişi var ve bunların hepsi hackler ve temiz, kolayca yeniden kullanılabilir, zarif bir çözüm sağlamıyor. MVVM araç setlerinin çoğu, diyalogların üzerinde durur ve bunları ele aldıklarında, özel arayüzler veya görünüm modelleri gerektirmeyen uyarı kutularıdır.
MVVM görünüm modelinden, en azından ortodoks uygulamasından vazgeçmeyi planlıyorum. Ne düşünüyorsun? Varsa senin için zahmete değdi mi? Ben sadece beceriksiz bir programcı mıyım yoksa MVVM olması gerektiği gibi değil mi?