C# 'da bir WinForms uygulaması geliştiriyorum. GUI programlamasında sınırlı tecrübem var ve uçmada çok şey öğrenmek zorundayım. Bu söylüyorum, ben inşa yapıyorum.C# WinForms Model-Görünüm-Sunucusu (Pasif Görünüm)
GUI http://img227.imageshack.us/img227/1084/program0.jpg
Şimdi, ama çok kötü Özerk tasarım modelinde, zaten bir sürü iş yapmış:
aşağıdaki bağlantıda genel GUI görünüm bakınız. Projenin belli bir boyuta ulaşacağını bilemedim ve bu nedenle, bazı büyük refactoring yapmak için zamanı geldi.GUI tasarım kalıpları hakkında çok çalışıyorum ve uygulamak istediğim model Pasif Görünüm'dür (bkz. http://martinfowler.com/eaaDev/PassiveScreen.html). Hepsini bir araya getirme konusunda yardım arıyorum.
Amaç: sol alt köşesindeki "TreeView" kullanıcı tıkladığında, "Liste" "Düzenleyici" alanını doldurabilirsiniz nesnelerin listesini görüntüler ne bağlı olarak
1). Bu nesneler bir TextBox veya DataGridView olabilir. Kullanıcı Listeyi, "Editör" de görmek istediğini seçmek için değiştirir 2) Model, esas olarak veri ve yapılandırma dosyalarına sahip bir klasördür. Belirli bir dizinde çalışan, çıktı dosyaları/klasörleri vb. Oluşturan harici bir program var. Geliştirdiğim bu program, bu nesneleri kullanıcı dostu bir şekilde etkin bir şekilde yönetmek/yapılandırmak üzere tasarlanmıştır
3) Sorun, Ben bir şeyleri yapıyordum test etmek imkansız olduğunu ve dolayısıyla MVP-esque Passive View tasarım desen
harekete geçmek için bu programın bağımsız olarak çalışmasını sağlamak için yapmaya çalışıyorum. Pasif Görünüm deseni ile daha karmaşık ve etkileşimli bir görünümün kullanıldığı herhangi bir örnek bulamadım.
Sorular:
1) tüm sonra TreeView her biri için alt arayüzleri/alt görüşlerini uygulamak, programın "bakmak", Editör, Kaydedici için büyük bir arayüz/görünümü uygulamak gerekir mi , vb.? Ya da bunu yapmak için daha iyi bir "yapı" var mı? 2) Görüntülemeden Sunum Yapan Kişi/Denetleyici'ye ("Pasif Görünüm tasarım desenini kullanmak istediğiniz terminoloji") ne zaman "teslim" söz konusuysa, bunu yapmamın yolu nedir? Bazen güncellenmesi gereken basit özelliklere sahibim ve bazen bir dizi adım atmam gerekiyor.
Bu konuyla ilgili önerileri ve önerileri çok isterim. İnterneti araştırdım ve bu projeye devam etmeme yardımcı olacak yeterli örnek bulamadım.
Şimdiden teşekkürler! İşte Daniel
Bilgilendirici yanıtı takdir ediyorum, ancak özellikle sorularımı yanıtlıyor. Bir Görünüm kullanmalı mıyım (bu 4-5 alt bileşenlerle etkileşime girebilir) veya Görünümler içinde Görünümler olmalıdır (arayüzler içindeki arayüzler)? Ayrıca, Görüntülemeden Sunum Yapan Olayların “dağıtılmasından” hala emin değilim ve yine de View'un Modeli nasıl gözlemlediğine dair bir açıklamaya ihtiyacım var. Programın da "yapısı" ile ilgili endişelerim var. –
Özellikle yeniden kullanımını teşvik etmek istiyorsanız, daha küçük bileşenlere ayırmayı tercih ediyorum.Tek bir amacı olan, ancak birleşik kullanıcı arabirimi oluşturmak için birlikte kullanılabilen görünümler oluşturun. –
Ayrıca, sunucu yapıcıya bakarsanız, olayları olaydan nasıl ele alacağınızı görebilirsiniz. –