ฉันจำการเรียนรู้ VB4 และการลากปุ่มไปยังแบบฟอร์มดับเบิลคลิกที่ปุ่มนั้นและพิมพ์รหัสลงในตัวจัดการเหตุการณ์ที่ฉันเพิ่งได้รับพรอย่างน่าอัศจรรย์ มาจาก QBASIC ฉันตื่นเต้นกับ "V" ใน "VB" นักออกแบบภาพเป็นสิ่งที่ดีที่สุดตั้งแต่ขนมปังหั่นบาง ๆ
แน่นอนว่าคุณสามารถทำทุกอย่างได้โดยทางโปรแกรม แต่ความมหัศจรรย์ของ "V" นั้นน่าดึงดูดมากจนคุณอดไม่ได้ที่จะลาก แต่ปุ่ม เราได้รับการสนับสนุนให้ใช้เส้นทางนั้น
แต่ไม่กี่ปีที่ผ่านมาฉันเริ่มเรียนรู้เกี่ยวกับ C # และ. net framework และรู้สึกทึ่งกับทุกสิ่งที่ฉันคิดว่าฉันรู้ว่าเพิ่งออกไปนอกหน้าต่าง มีเวทมนต์มากมายที่เกิดขึ้นใน VB6 ที่เปิดเผยอย่างสมบูรณ์ใน. net: ใช้ตัวสร้างและInitializeComponents
วิธีการเช่น ในภายหลังคุณจะพบอินสแตนซ์ควบคุมทั้งหมดที่คุณลากจากกล่องเครื่องมือกิจกรรมทั้งหมดที่คุณลงทะเบียนและคุณสมบัติที่คุณตั้งไว้ในตัวออกแบบ
และก็ไม่เป็นไร ... ฉันเดา มันเป็นเพียงฉันรู้สึกเหมือนฉันไม่ "เป็นเจ้าของ" สิ่งที่เกิดขึ้นรหัสนี้ที่ฉันสามารถแก้ไขได้ผ่านทางนักออกแบบสร้างความรำคาญให้กับฉัน ทุกครั้งที่คุณคัดลอกปุ่มที่ระบุว่า "ตกลง" จากแบบฟอร์มหนึ่งไปยังอีกแบบหนึ่ง (บางครั้งพร้อมกับพี่ชายของ "ยกเลิก") คุณกำลังทำรหัสซ้ำจริง ๆ และนั่นเป็นบาปใช่ไหม แห้งจะไม่ทำซ้ำตัวเองกล่าวว่าสมเด็จพระสันตะปาปา
ศาสนาและโรงเรียนที่มีความคิดนอกเหนือจากความเป็นกลางทุกอย่างเราไม่ควรได้รับแบบฟอร์มจากรูปแบบพื้นฐานแทนและมีปุ่ม "ตกลง" (และเพื่อน ๆ ทุกคน) อยู่ในรูปแบบฐานหรือไม่ บางสิ่งบางอย่างเช่นFormBase
ที่มาจากDialogFormBase
; คลาสทั้งหมดที่สร้างขึ้นในเวลาไม่นาน ... โดยการพิมพ์รหัส ปุ่มถูกสร้างขึ้นโดยขึ้นอยู่กับว่าคลาสนั้นถูกสร้างขึ้นอย่างไร (เช่นคอนสตรัคชัน enum อาร์กิวเมนต์กำหนดว่าจะสร้างปุ่มใด) การควบคุมจะถูกวางไว้ภายในการจัดเรียงของพาเนลแยกและแผงเลย์เอาต์การไหลContent
ที่เหมาะกับแผงเนื้อหาหลัก นี่ไม่ใช่สิ่งที่ ASP.net ทำกับหน้าต้นแบบและตัวแทนเนื้อหา ฉันได้รับแบบฟอร์มเมื่อฉันต้องการ "มาสเตอร์เพจ" ใหม่ แต่ "มาสเตอร์เพจ" ใหม่นี้ยังคงได้มาจากคลาสฟอร์มพื้นฐานดังนั้นภาพจึงสอดคล้องกันทั่วทั้งแอปพลิเคชัน
กับผมว่าเป็นมากนำมาใช้รหัสมากกว่าสิ่งอื่นใดที่ฉันเคยทำกับนักออกแบบใน WinForms และมันก็ไม่ได้ยากและรหัสจะไม่รกด้วยวิธีการ 200 เส้นที่ฉันไม่มีการควบคุมมากกว่าที่ฉันสามารถ ใส่ความคิดเห็นที่ฉันชอบพวกเขาจะไม่ถูกเขียนทับโดยนักออกแบบ ผมคิดว่ามันเป็นเพียงเรื่องของรูปแบบและสถาปัตยกรรมซึ่งเป็นสิ่งที่นำฉันไปที่ลิงค์นี้: การออกแบบที่ดีที่สุดสำหรับรูปแบบ Windows ที่จะแบ่งปันการทำงานร่วมกันที่ผมตระหนักว่าเป็นจุดที่ยกเว้นคำตอบนั่นแสดงให้เห็นว่าสิ่งที่ฉัน ทำ แต่ให้คำแนะนำกับการสืบทอดฟอร์มเนื่องจากการพิจารณาของนักออกแบบ ที่เป็นส่วนหนึ่งที่ผมไม่ได้รับเพราะการพิจารณาโครงสร้างรหัสโดยเฉพาะอย่างยิ่งในเรื่องที่เกี่ยวกับรูปแบบและการควบคุมการรับมรดกซึ่งผมเห็นเหตุผลที่จะหลีกเลี่ยงการอื่น ๆ กว่ากันจะแบ่งนักออกแบบ
พวกเราทุกคนไม่ได้ขี้เกียจดังนั้นฉันขาดอะไรไป