Winforms-MVP'nin yarısı boyunca aşağıdaki özel durum işleme stratejisini tasarladım. Giriş parametresi olarak bir temsilci alarak birkaç Execute yöntemiyle temel soyut Presenter sınıfım var (imzalar değişir). Görünüş ve Sunum arasındaki etkileşim, IView'de tanımlanan olaylar (giriş) ile yapılır ve Görünüm tarafından uygulanan ve uygulanan IView'de tanımlanan kamu özellikleri (çıktı) veya çağrı yöntemleri belirleyerek yapılır. Sunucudaki her olay işleyici, somut gerçekleme sağlayan Uygulama yöntemlerinden birini çağırır.Winforms-MVP ve WPF-MVVM'deki istisnaların son kullanıcıya bildirilmesi
Yürütme yönteminde, oluşabilecek çok kesin istisnalar için (özellikle yaygın olarak kullanılan dış bileşenlerde bazı sorunlar nedeniyle) birkaç yakalama bloğum var. Bu istisnaların her biri, mevcut işlemin yürütülmesini durdurur, günlüğe kaydedilir ve View'ın yöntemlerini çağırarak kullanıcıya anlamlı bir açıklama ile gösterilir.
Çok uzun bir süre önce (aslında çok uzun bir süre önce değil) İlk bakışta MVP ile çok ortak gözüken WPF-MVVM'yi öğrenmeye başladım. İstisnai taşıma stratejisi ile ilgili bazı pratik öneriler (temelde kullanıcıyı problemler hakkında bilgilendirmek) aradım, ama bu soruları genel olarak aramak zor. Yani, çok şey söylendi, ama esas olarak prensipte. App.xaml.cs dosyasında işlenmemiş istisnaların 20'den fazla örneğini buldum, hepsi çok güzel, ama içtenlikle söyle - eğer uygulamanızı kilitleyebileceğiniz kesin istisnaları biliyorsanız, bunları işlemezseniz biraz önce (uygulamanızı kapatmaya zorlanacak olsanız bile)? Tüm olası istisnaları yakalamanın bir hayranı değilim. Ağ sorunları, geçici veritabanı kullanılamazlığı vb. Nedenlerle oluşan bir çok istisna, olağan bir kullanıcıya isteğini tekrar etme şansı veren korkutucu hata simgeleri olmadan uygulamayı kapatmadan ele alınmalıdır.
Bir deneme olarak, daha önce anlattığım gibi neredeyse aynı şeyi denedim - Özel durumlar geçişi için ViewModel'de etkinlikler oluşturdum ve onlara abone oldum. Ancak, açık konuşmak gerekirse, bu şekilde beni ürpertiyor.
(Bu çok uzun bir konuşmaydı, biliyorum) Soru: MVVM kullanırken kullanıcıyı bilgilendirmekle ilgili istisnaları nasıl ele alıyorsunuz? Hayır, şimdilik sadece veri doğrulama ile ilgilenmiyorum. MVP hakkında herhangi bir eleştiri ve/veya danışma da kabul edilir.
Hangi parça ile ilgileniyorsunuz? Erken mi yakalamak, ya da geç mi yakalamak? Erken yakalamadıysanız, WPF/MVVM ile ilgili bir şey olduğunu mu düşünüyorsunuz? –