การจัดการมุมมอง/ตัวควบคุม ASP.NET MVC

ฉันกำลังทำโปรเจ็กต์ที่ค่อนข้างใหญ่ ซึ่งมีวิธีการมากมายมหาศาลในคอนโทรลเลอร์แต่ละตัว เช่นเดียวกับ Views หนึ่งโฟลเดอร์ประกอบด้วยไฟล์ประมาณ 150 .cshtml ไฟล์ ซึ่งทำให้สำรวจได้ยาก ฉันต้องการสร้างโฟลเดอร์แยกสำหรับแต่ละส่วนของหน้าต่าง แต่นั่นเปลี่ยนที่อยู่เส้นทางของฉันจาก ./Tavern/Shop เป็น /Views/Tavern/Tavern/Shop ตัวควบคุมโรงเตี๊ยมมีโค้ดมากกว่า 3,000 บรรทัด และถึงแม้จะใช้ (Ctrl+F) ก็ยากที่จะค้นหาและแก้ไขฟังก์ชันการทำงานบางอย่าง

มีแนวคิดใดบ้างที่ฉันจะปรับปรุงสิ่งนี้ได้โดยไม่ต้องเปลี่ยนไฟล์จำนวนมากในโซลูชัน


person Lubudubu1010    schedule 18.07.2015    source แหล่งที่มา
comment
สำหรับแต่ละส่วนของหน้าต่าง - บางทีคุณควรให้เราทราบว่าหน้าหลักประกอบด้วยส่วนต่างๆ อย่างไร   -  person Henk Holterman    schedule 18.07.2015
comment
ฉันคิดว่าตรรกะโดเมนจำนวนมากอยู่ในตัวควบคุมของคุณ? บางทีคุณอาจเริ่มต้นด้วยการระบุมันและดึงมันออกมาเป็นชั้นที่แยกจากกันเพื่อให้สามารถจัดการได้ง่ายขึ้น นั่นจะทำให้การทดสอบ ฯลฯ ง่ายขึ้นมาก   -  person TBD    schedule 18.07.2015
comment
@HenkHolterman ส่วนหนึ่งคือวิวโรงเตี๊ยม: ร้านค้า การทำอาหาร การนอนหลับ ฯลฯ   -  person Lubudubu1010    schedule 18.07.2015


คำตอบ (1)


เป็นเรื่องยากที่จะช่วยได้โดยไม่ต้องดูโค้ดของคุณ แต่สิ่งเหล่านี้ควรเป็นแนวทางของคุณ:

  1. คอนโทรลเลอร์ควรมีลักษณะ 'ผอม' ที่สุดเท่าที่จะเป็นไปได้ โค้ดทั้งหมดควรทำในเลเยอร์ BL ของคุณ (lib ภายนอก)

  2. ตัวควบคุมควรมีความเฉพาะเจาะจงมาก เช่น ผลิตภัณฑ์ รายชื่อติดต่อ บ้าน ฯลฯ...

  3. การกำหนดเส้นทางเสร็จสิ้นผ่านตัวควบคุม ไม่ใช่ตำแหน่งของมุมมอง - คุณสามารถระบุในมุมมองการส่งคืนของคุณ ("~/AnyPath/GoesHere/AndTheRouting/IsTheSame.cshtml") (มันจะเป็นตัวควบคุม/การกระทำ) (หรืออย่างไรก็ตามคุณ กำหนดไว้ใน routing.config)

  4. คุณสามารถพิจารณาทำงานร่วมกับ Areas ได้

person Ziv Weissman    schedule 18.07.2015