AngularJS มีความเกี่ยวข้องกับกระบวนทัศน์แอ็พพลิเคชันหน้าเดียวมากขึ้นและด้วยเหตุนี้จึงไม่ได้รับประโยชน์มากนักจากเทคโนโลยีฝั่งเซิร์ฟเวอร์ที่แสดงผลมาร์กอัป ไม่มีเหตุผลทางเทคนิคที่ขัดขวางคุณในการใช้ร่วมกัน แต่ในทางปฏิบัติทำไมคุณถึงเป็นเช่นนั้น?
SPA ดึงข้อมูลที่ต้องการ (มุมมอง JS, CSS และ HTML) และรันด้วยตัวเองโดยสื่อสารกลับไปยังบริการเพื่อส่งหรือดึงข้อมูล ดังนั้นเทคโนโลยีฝั่งเซิร์ฟเวอร์จึงยังคงจำเป็นสำหรับการให้บริการเหล่านั้น (เช่นเดียวกับวิธีการอื่น ๆ เช่นการพิสูจน์ตัวตนและการกดไลค์) แต่ส่วนการแสดงผลส่วนใหญ่ไม่เกี่ยวข้องและไม่มีประโยชน์อย่างยิ่งเนื่องจากเป็นการซ้ำซ้อนของความพยายามยกเว้น MVC ทำ ที่ฝั่งเซิร์ฟเวอร์และ Angular ทำบนไคลเอนต์ หากคุณใช้ Angular คุณต้องการให้ไคลเอ็นต์ได้ผลลัพธ์ที่ดีที่สุด คุณสามารถสร้างรูปแบบ HTML โพสต์เชิงมุมและดึงมุมมองบางส่วนจากการกระทำ MVC ได้ แต่คุณจะพลาดคุณสมบัติที่ดีที่สุดและง่ายที่สุดของ Angular และทำให้ชีวิตของคุณยากขึ้น
MVC ค่อนข้างยืดหยุ่นและคุณสามารถใช้เพื่อให้บริการโทรจากแอปพลิเคชัน SPA อย่างไรก็ตาม WebAPI ได้รับการปรับแต่งอย่างละเอียดและใช้งานง่ายขึ้นเล็กน้อยสำหรับบริการดังกล่าว
ฉันได้เขียนแอปพลิเคชัน AngularJS จำนวนหนึ่งซึ่งรวมถึงแอปพลิเคชันสองตัวที่ย้ายจาก WebForms และแอปพลิเคชัน MVC ที่มีอยู่แล้วและด้าน ASP.NET พัฒนาไปสู่แพลตฟอร์มสำหรับส่งแอป AngularJS เป็นไคลเอนต์จริงและสำหรับการโฮสต์เลเยอร์แอปพลิเคชัน ไคลเอนต์สื่อสารผ่าน REST (โดยใช้ WebAPI) MVC เป็นเฟรมเวิร์กที่ดี แต่มักจะพบว่าตัวเองไม่มีงานในแอปพลิเคชันประเภทนี้
แอปพลิเคชัน ASP.NET กลายเป็นอีกชั้นหนึ่งของโครงสร้างพื้นฐานซึ่งความรับผิดชอบถูก จำกัด ไว้ที่:
- โฮสต์คอนเทนเนอร์การอ้างอิง
- เชื่อมโยงการใช้งานตรรกะทางธุรกิจเข้ากับคอนเทนเนอร์
- ตั้งค่ากลุ่มเนื้อหาสำหรับ JS และ CSS
- บริการโฮสต์ WebAPI
- บังคับใช้การรักษาความปลอดภัยดำเนินการบันทึกและวินิจฉัย
- การเชื่อมต่อกับแคชของแอปพลิเคชันเพื่อประสิทธิภาพ
สิ่งที่ยอดเยี่ยมอีกอย่างเกี่ยวกับสปาคือสามารถเพิ่มแบนด์วิดท์ของทีมของคุณได้ กลุ่มหนึ่งสามารถระเบิดบริการได้ในขณะที่อีกกลุ่มอยู่ในแอปไคลเอ็นต์ เนื่องจากคุณสามารถตัดหรือจำลองบริการ REST ได้อย่างง่ายดายคุณจึงสามารถมีแอปไคลเอ็นต์ที่ทำงานได้อย่างสมบูรณ์ในบริการจำลองและเปลี่ยนเป็นของจริงเมื่อเสร็จสิ้น
คุณต้องลงทุนล่วงหน้ากับ Angular แต่ต้องจ่ายเงินจำนวนมาก เนื่องจากคุณคุ้นเคยกับ MVC อยู่แล้วคุณจึงเข้าใจแนวคิดหลักบางประการ