ASP.NET MVC 5 กับ AngularJS / ASP.NET WebAPI [ปิด]


86

ฉันกำลังประเมินรูปแบบการเขียนโปรแกรมสำหรับการสร้างเว็บแอปพลิเคชันในอนาคตใน บริษัท ของฉัน ดังนั้นฉันจะตัดสินใจระหว่าง ASP.NET MVC 5 (พร้อมมุมมองมีดโกน) และ AngularJS กับ ASP.NET WebAPI อะไรคือข้อดี / ข้อเสียของโมเดลการเขียนโปรแกรมทั้งสองนี้?


4
ถ้าคุณจะยึด AngularJS กับ ASP.NET ... คุณไม่ได้เปรียบเทียบอย่างยุติธรรม เหมือนกับว่าคุณต้องการนำ Javascript ออกจาก Angular และนั่นไม่ใช่วิธีที่จะเกิดขึ้น เชิงมุมมีขึ้นเพื่อเป็นกรอบการทำงานของคุณสำหรับลูกค้าและทำงานได้ดีที่สุดเมื่อคุณใช้แม่แบบด้านเซิร์ฟเวอร์น้อยมาก: simple-talk.com/blogs/2013/10/16/... สิ่งต่างๆเช่นการรับรองความถูกต้องและมันก็สมเหตุสมผล แต่ปล่อยมีดโกนออกไปแล้วไปที่. NET และสร้างเลเยอร์ API สำหรับ Angular
Brian Vanderbusch

3
ฉันคิดว่าสิ่งที่คุณต้องการจริงๆมีแค่ AngularJS กับ ASP.NET WebAPI ฉันคิดว่ามันมีดีที่สุดของทั้งสองโลก ฉันลองผสม MVC กับ AngularJS และมันก็ไม่ใช่ประสบการณ์ที่ดีมากเมื่อฉันพบปัญหาดังนั้นขอแนะนำว่าอย่าเข้าไปในกับดักนั้น สิ่งหนึ่งที่ฉันพลาดในแนวทางนี้คือมุมมองตามอุปกรณ์ที่ MVC พร้อมเอ็นจิ้น Razor สามารถให้ได้ มันต้องมีวิธีที่จะเอาชนะสิ่งนี้ได้ แต่ฉันยังไม่เปิดเผยเพียงพอ
Kiran

หลังจากทำงานกับ Angular เพียงไม่กี่เดือน (แม้ว่าจะดูเหมือนตลอดไป) ฉันจะไม่กลับไปที่ Razor ยิ่งคุณทำงานกับ Angular มากเท่าไหร่คุณก็ยิ่งรู้สึกประทับใจมากขึ้น - ความยืดหยุ่นและพลังบางครั้งมันก็รู้สึกเหมือนมีเวทมนตร์ ฉันควรบอกว่า Web API ไม่ได้เล่นกับ Angular อย่างดีอย่างน้อยก็ในรูปแบบ POST แต่ก็สามารถใช้ได้ ไม่ใช่เรื่องง่ายสำหรับการเปลี่ยนไวยากรณ์โปรแกรมเมอร์ C # อย่างชาญฉลาดเนื่องจากจาวาสคริปต์ไม่ใช่ภาษาที่พิมพ์ยาก แต่เมื่อคุณเอาชนะอุปสรรคนี้คุณจะต้องชื่นชม Angular
Florida G.

มีดโกนเป็นสิ่งที่น่าสยดสยองแม้แต่ในเครื่องยนต์เทมเพลต คุณจะสังเกตเห็นประสิทธิภาพการทำงานที่เพิ่มขึ้นอย่างมากเมื่อใช้เชิงมุมกับเครื่องยนต์เทมเพลต (Jade, handlebar, razor ฯลฯ ) ใช้แบ็กเอนด์ที่ให้บริการ JSON (อาจเป็น web-api, node-express หรือ PHP) และส่วนหน้าเชิงมุม และโปรดทราบว่าสิ่งที่น่าพิศวงนั้นไม่ดีเท่าเชิงมุม .... ดีที่สุด ...
Giridhar Karnik

1
@BrianVanderbusch ไม่แน่ใจจริงๆว่าคุณกำลังพูดถึงอะไร แบ็กเอนด์ไม่สำคัญเลย มันอาจเป็นอะไรก็ได้ เขาบอกว่าจะใช้ ASP.NET เป็นแบ็กเอนด์และเชิงมุมเป็นส่วนหน้าของไคลเอนต์ Angular ยังคงต้องโทรไปยังเซิร์ฟเวอร์เพื่อขอข้อมูล สิ่งนี้ไม่เกี่ยวข้องกับการไม่ให้ Angular เปรียบเทียบอย่างยุติธรรม
user441521

คำตอบ:


103

2 เซ็นต์ของฉัน โดยส่วนตัวแล้วฉันชอบมุมมอง HTML ที่บริสุทธิ์ซึ่งเป็นส่วนหน้าเชิงมุมทั้งหมดพร้อมกับส่วนหลังของ Web API / EF / SQL Server โดยทั่วไปแล้วไม่มี Razor Razor เป็นนามธรรมที่ช่วยให้โปรแกรมเมอร์สามารถสร้าง HTML ได้ทุกวันนี้ทุกคนได้ข้อสรุปว่าการลบสิ่งที่เป็นนามธรรมเหล่านี้เป็นความคิดที่ดีกว่าด้วยเหตุนี้การวิวัฒนาการของ ASP.NET จากรูปแบบเว็บไปยัง MVC เป็นต้นจึงไม่ยากสำหรับนักพัฒนา จับด้วย HTML และใช้ส่วนหน้าเชิงมุมนอกจากนี้ยังทำให้งานออกแบบ UI ง่ายขึ้นพวกเขามี HTML และ JSON / Javascript ที่บริสุทธิ์พวกเขาไม่จำเป็นต้องทำความเข้าใจกับ MVC, Razor, คอนโทรลเลอร์และการกระทำ เราเคยทำงานอย่างสมบูรณ์บน MVC ในโครงการล่าสุดของเราเราได้ย้ายไปที่ส่วนหลังของ Web API และส่วนหน้าเชิงมุมและเราสังเกตเห็นว่าประสิทธิภาพการทำงานของนักออกแบบ UI ของเราดีขึ้นอย่างมาก


3
และฉันอยากจะเพิ่มเข้าไปด้วยมุมที่คุณจะได้อัปเดตเทมเพลตของคุณแบบไดนามิกซึ่งเห็นได้ชัดว่ายอดเยี่ยมมาก
Willem D'Haeseleer

4
เมื่อพูดถึงการพัฒนาฟรอนต์เอนด์ที่มีพลวัตและตอบสนองได้ดีขึ้นเทียบกับต้นทุนในการพัฒนาไม่มีการแข่งขัน
Mohammad Sepahvand

@ user189756 คุณส่งเพจ HTML ไปยังไคลเอนต์อย่างไรเมื่อใช้วิธี Web API
Yoav

@ Yoav นี่เป็นคำตอบเก่า แต่ในขณะนั้นเป็นโฮสต์ MVC ที่มีคอนโทรลเลอร์เดี่ยว
Mohammad Sepahvand

1
@ โยอาฟแม่นยำ. แต่ฉันจะเพิ่มว่าคำตอบอื่น ๆ ก็ยอดเยี่ยมเช่นกันโดยเฉพาะอย่างยิ่งการพิจารณาสิ่งต่างๆเช่น SEO
Mohammad Sepahvand

53

ฉันเชื่อว่าคุณไม่สามารถเปรียบเทียบได้ AngularJS เป็นเฟรมเวิร์ก Single Page Application (SPA) ในขณะที่ ASP.Net MVC ใช้โมเดลมาตรฐานที่หนึ่งนำทางไปมาระหว่างเพจ ไม่ว่าคุณต้องการสร้างสปานั้นขึ้นอยู่กับปัจจัยต่างๆเช่น

  • คุณต้องการ SEO ซึ่ง JS rich framework เหล่านี้ส่วนใหญ่มีการรองรับที่ จำกัด
  • คุณจะจัดโครงสร้างแอปของคุณเป็นสปาหรือสปาหลายรายการได้อย่างไร
  • การมาจากภาษาที่ปลอดภัยประเภท C # ไปสู่การเขียนโปรแกรม JavaScript เป็นความท้าทาย
  • เรียนรู้ AngularJS และใช้อย่างมีประสิทธิภาพ

เราใช้มุมมองมีดโกน MVC 5 มาตรฐานเพื่อตั้งค่ามุมมอง AngularJS เริ่มต้นเพื่อให้คุณสามารถรวมเข้าด้วยกันได้หากจำเป็น

ดูคำตอบนี้คุณสามารถใช้ AngularJS กับ Parse.com ได้หรือไม่? เพื่อรับบริบทเพิ่มเติม


12
"... ในขณะที่ ASP.Net MVC ใช้โมเดลมาตรฐานที่หนึ่งนำทางไปมาระหว่างหน้าต่างๆ" นี่เป็นเพียงเท็จ แอป MVC - โดยใช้มีดโกน - สามารถออกแบบให้เป็นของ SPA ได้อย่างง่ายดาย
แซม

7
AngularJS ไม่ จำกัด SPAs คุณสามารถสร้างเว็บไซต์แบบหลายหน้าพร้อมกับการเชื่อมโยงเชิงลึกได้เป็นอย่างดี ....
Giridhar Karnik

3
AngularJS ไม่ใช่สปา คุณสามารถใช้มันเหมือนสปา แต่ไม่ได้เป็นไปโดยอัตโนมัติหรือจำเป็น ต้องเพิ่มในการกำหนดเส้นทาง ng-route เพื่อให้สามารถกำหนดเส้นทางได้ AngularJS นั้นยอดเยี่ยมมากและอาจเป็นสปาที่ยอดเยี่ยม แต่มันก็โง่ที่จะพูดว่า AngularJS = SPA
Tom Stickel

5
TypeScript เป็นตัวเลือกที่ดีสำหรับ type safe js
Kyle JV

9
AngularJS สร้างโดย Google หากไม่มี SEO พวกเขากำลังทำอะไรผิดพลาด
สมควร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.