VB4 öğrenmeyi ve bir forma bir düğmeyi sürüklemeyi, o düğmeyi çift tıklamayı ve sihirli bir şekilde kutsanmış olduğum olay işleyicisine kod yazmayı hatırlıyorum. QBASIC'ten gelince, "VB" de "V" ile heyecanlandım, görsel tasarımcı dilimlenmiş ekmekten beri tam anlamıyla en iyi şeydi.
Tabii ki tüm bunları programlı olarak yapabilirsiniz ama "V" nin büyüsü o kadar cazipti ki o düğmeyi sürüklemekten başka bir şey yapamazdınız. O rotayı izlemeye teşvik edildik.
Ama sonra birkaç yıl önce C # ve .net çerçevesi hakkında bilgi edinmeye başladım ve bildiğimi düşündüğüm her şeyin pencereden çıkmış olmasına hayran kaldım. VB6'da .net'te tamamen açığa çıkan çok fazla sihir var: InitializeComponents
örneğin yapıcıları ve yöntemi alın. İkincisinde, araç kutusundan sürüklediğiniz tüm kontrol örneklerini, kaydettiğiniz tüm etkinlikleri ve tasarımcıda ayarladığınız özellikleri bulacaksınız.
Ve bu iyi ... Sanırım. Sadece, neler olduğunu "sanmıyorum" gibi hissediyorum, sadece tasarımcı aracılığıyla değiştirebileceğim bu kod benden rahatsız oluyor. "Tamam" yazan bir düğmeyi bir formdan diğerine her kopyaladığınızda (bazen kardeşi "İptal" ile birlikte), kodu çoğaltırsınız ve bu bir günah değil mi? KURU, kendini tekrar etme, diyor Papa .
Dinler ve düşünce okulları bir yana, tüm nesnelliklerde, formları temel formlardan türetmemeliyiz ve "Tamam" düğmesi (ve tüm arkadaşları) temel formda mı yaşamalıdır? A ' FormBase
dan türetilmiş bir şey DialogFormBase
; tüm sınıflar kısa sürede yaratıldı ... kod yazarak. Düğmeler, sınıfın nasıl örneklendiğine bağlı olarak oluşturulur (yani bir yapıcı numaralandırma bağımsız değişkeni hangi düğmelerin oluşturulacağını belirler), denetimler, forma enjekte edilen bölünmüş paneller ve akış düzeni panellerinin bir düzenlemesi içine yerleştirilir.Content
ana içerik paneline sığar. ASP.net'in ana sayfalar ve içerik yer tutucuları ile yaptığı bu değil mi? Yeni bir "kalıp sayfa" gerektiğinde bir form türetmek istiyorum, ancak bu yeni "kalıp sayfa" hala temel form sınıfından türetir, böylece görseller tüm uygulama boyunca tutarlı.
Bana göre bu WinForms tasarımcı ile şimdiye kadar yaptığım her şeyden çok daha fazla kod yeniden kullanımı, ve hatta zor değildi ve kod üzerinde hiçbir kontrolüm yok 200 satır yöntemi ile darmadağın değil, yapabilirim İstediğim yere yorumlar koyun, bir tasarımcı tarafından üzerine yazılmazlar. Sanırım bu sadece bir desen ve mimari meselesi, bu beni bu bağlantıya getiren şeydi: Ortak işlevsellikleri paylaşacak Windows formları için en iyi tasarım , oradaki cevap hariç, nerede olduğumu fark ettiğimi fark ettim. ancak tasarımcıyla ilgili düşünceler nedeniyle form kalıtımına karşı tavsiyede bulunur . Bu benim anlamadığım kısım .kod yapısı ile ilgili hususlar nedeniyle , özellikle form ve kontrol mirasıyla ilgili olarak , tasarımcının kırılmasından başka kaçınmak için hiçbir neden göremiyorum .
Hepimiz tembel olamayız, o zaman hangi kısmı kaçırıyorum?