ฉันเขียนพอร์ทัล ASP.NET WebForms สำหรับลูกค้า โครงการมีการพัฒนามากกว่าการวางแผนและโครงสร้างอย่างเหมาะสมตั้งแต่ต้น ดังนั้นรหัสทั้งหมดจะถูกบดเข้าด้วยกันภายในโครงการเดียวกันและไม่มีเลเยอร์ใด ๆ ตอนนี้ไคลเอนต์มีความสุขกับการใช้งานดังนั้นฉันต้องการ refactor รหัสเพื่อที่ฉันจะมั่นใจในการเปิดตัวโครงการ เนื่องจากมีหลายวิธีที่แตกต่างกันในการออกแบบสถาปัตยกรรมฉันต้องการความคิดเห็นเกี่ยวกับวิธีการที่ดีที่สุด
หน้าที่การทำงาน
พอร์ทัลอนุญาตให้ผู้ดูแลระบบกำหนดค่าเทมเพลต HTML "พันธมิตร" อื่น ๆ ที่เกี่ยวข้องจะสามารถแสดงเทมเพลตเหล่านี้ได้โดยการเพิ่มรหัส IFrame ไปยังเว็บไซต์ของพวกเขา ภายในเทมเพลตเหล่านี้ลูกค้าสามารถลงทะเบียนและซื้อผลิตภัณฑ์ API ได้รับการดำเนินการโดยใช้ WCF เพื่อให้ บริษัท ภายนอกสามารถเชื่อมต่อกับระบบได้ ส่วนผู้ดูแลระบบช่วยให้ผู้ดูแลระบบสามารถกำหนดค่าฟังก์ชันการทำงานต่างๆและดูรายงานสำหรับพันธมิตรแต่ละราย ระบบจะส่งใบแจ้งหนี้และอีเมลแจ้งเตือนไปยังลูกค้า
สถาปัตยกรรมปัจจุบัน
ขณะนี้ใช้ EF4 เพื่ออ่าน / เขียนไปยังฐานข้อมูล วัตถุ EF ถูกใช้โดยตรงภายในไฟล์ aspx สิ่งนี้อำนวยความสะดวกในการพัฒนาอย่างรวดเร็วในขณะที่ฉันเขียนไซต์ แต่ก็อาจยอมรับไม่ได้ที่จะทำให้มันเป็นแบบนั้นเพราะมันเชื่อมต่อฐานข้อมูลกับ UI อย่างแน่นหนา ตรรกะทางธุรกิจที่เฉพาะเจาะจงได้รับการเพิ่มลงในคลาสบางส่วนของวัตถุ EF
คำถาม
เป้าหมายของการปรับโครงสร้างใหม่จะทำให้ไซต์สามารถปรับขนาดได้บำรุงรักษาได้ง่ายและปลอดภัย
สถาปัตยกรรมแบบไหนที่ดีที่สุดสำหรับสิ่งนี้? โปรดอธิบายสิ่งที่ควรอยู่ในแต่ละเลเยอร์ไม่ว่าฉันจะใช้รูปแบบของ DTO / POCO / Active Record เป็นต้น
มีวิธีที่แข็งแกร่งในการสร้าง DTO / BOs อัตโนมัติหรือไม่เพื่อให้การปรับปรุงในอนาคตจะง่ายต่อการใช้งานแม้จะมีเลเยอร์เพิ่มเติมหรือไม่
มันจะเป็นประโยชน์ในการแปลงโครงการจาก WebForms เป็น MVC หรือไม่