บทช่วยสอน ASP.NET MVC สำหรับผู้เริ่มต้น: คืออะไร Archiเทคเจอร์
ASP.NET MVC คืออะไร
ASP.NET MVC เป็นกรอบการพัฒนาเว็บแบบโอเพ่นซอร์สจาก Microsoft ซึ่งให้สถาปัตยกรรม Model View Controller ASP.net MVC นำเสนอทางเลือกอื่นสำหรับแบบฟอร์มเว็บของ ASP.net สำหรับการสร้างแอปพลิเคชันเว็บ เป็นส่วนหนึ่งของแพลตฟอร์ม .Net สำหรับการสร้าง การใช้งาน และการรันแอปพลิเคชันเว็บ คุณสามารถพัฒนาแอปพลิเคชันเว็บและเว็บไซต์ด้วยความช่วยเหลือของ HTML, CSS, jQuery Javascriptฯลฯ
เรียนรู้ MVC ด้วยบทช่วยสอน ASP.NET MVC นี้ ซึ่งครอบคลุมแนวคิดพื้นฐานทั้งหมดของ MVC สำหรับผู้เริ่มต้น:
ทำไมต้อง ASP.net MVC
แม้ว่าเว็บฟอร์มจะประสบความสำเร็จอย่างมาก Microsoft คิดจะพัฒนา ASP.net MVC ปัญหาหลักของ ASP.net webForms คือประสิทธิภาพ
ใน โปรแกรมประยุกต์บนเว็บมีสี่ประเด็นหลักที่กำหนดประสิทธิภาพ:-
- ปัญหาเวลาตอบสนอง
- ปัญหาการทดสอบหน่วย
- การปรับแต่ง HTML
- การนำคลาสโค้ดหลังกลับมาใช้ใหม่ได้
ASP.net MVC เก่งในพารามิเตอร์ข้างต้น
ประวัติเวอร์ชันของ MVC
ASP.NET MVC1
- เผยแพร่เมื่อวันที่ 13 มีนาคม 2009
- มันทำงานบน.NET 3.5
- Visual Studio 2008
- สถาปัตยกรรมรูปแบบ MVC พร้อมด้วย WebForm Engine
- คุณสมบัติหลัก ได้แก่ Html & การทดสอบหน่วย, Ajax Helpers, การกำหนดเส้นทาง ฯลฯ
ASP.NET MVC2
- เวอร์ชันนี้เผยแพร่เมื่อวันที่ 10 มีนาคม 2010
- ทำงานบน .NET 3.5,4.0 และด้วย Microsoft Visual Studio 2008
- รวมคุณสมบัติเช่นตัวช่วยเทมเพลต ตัวช่วย Ul พร้อมโครงนั่งร้านอัตโนมัติและเทมเพลตที่ปรับแต่งได้
- รองรับ DataAnnotations Attributes เพื่อใช้การตรวจสอบโมเดลกับฝั่งไคลเอ็นต์และเซิร์ฟเวอร์
ASP.NET MVC3
- เปิดตัวเมื่อ 13 มกราคม 2011
- ทำงานบน .NET 4.0 และด้วย Microsoft Visual Studio 2010
- การใช้เอ็นuGet เพื่อส่งมอบซอฟต์แวร์และช่วยให้คุณจัดการการพึ่งพาทั่วทั้งแพลตฟอร์ม
- ดีกว่า Javaรองรับสคริปต์ด้วยการตรวจสอบ jQuery และการผูก JSON
- มันมีคุณสมบัติเช่นเอ็นจิ้น Razor view; คุณลักษณะคำอธิบายประกอบข้อมูลที่ได้รับการปรับปรุงสำหรับการตรวจสอบโมเดลทั้งฝั่งไคลเอ็นต์และเซิร์ฟเวอร์
ASP.NET MVC4
- เวอร์ชันนี้เผยแพร่เมื่อเดือนสิงหาคม 2012
- ทำงานบน .NET 4.0, 4.5 และ Visual Studio 2010 และ Visual Studio 2012
- การปรับปรุงเทมเพลตโครงการเริ่มต้น
- นำเสนอฟีเจอร์ต่างๆ เช่น เทมเพลตโปรเจ็กต์มือถือที่ใช้ jQuery Mobile, การสนับสนุนงานสำหรับ Asynchronous Controllers การรวมกลุ่ม การย่อขนาด ฯลฯ
ASP.NET MVC5
- เผยแพร่เมื่อวันที่ 17 ตุลาคม พ.ศ. 2013
- ทำงานบน .NET 4.5, 4.5.1 และ Visual Studio 2012 และ Visual OneASP.NET
- รองรับการกำหนดเส้นทางแอตทริบิวต์ใน MVC
คุณสมบัติของ MVC
- ทดสอบได้ง่ายและไม่เสียดสี
- ควบคุม HTML ของคุณได้อย่างสมบูรณ์ Javaสคริปต์ และ URL
- ใช้ประโยชน์ที่มีอยู่ ASP.Net คุณสมบัติ
- ตัวเลือกการนำเสนอใหม่สำหรับ ASP.Net
- วิธีที่ง่ายกว่าในการเขียนโปรแกรม Asp.Net
- การแยกตรรกะอย่างชัดเจน: โมเดล มุมมอง ตัวควบคุม
- การพัฒนาที่ขับเคลื่อนด้วยการทดสอบ
- รองรับการพัฒนาแบบคู่ขนาน
สิ่งที่ควรจำขณะสร้าง MVC Application
ต่อไปนี้คือสิ่งที่มีประโยชน์บางประการในบทช่วยสอน ASP.NET MVC นี้ซึ่งคุณต้องจำไว้สำหรับการสร้างแอปพลิเคชัน MVC:
- คุณต้องจำไว้ว่า ASP .net MVC ไม่ใช่การแทนที่แอปพลิเคชันที่ใช้ฟอร์มเว็บ ASP.Net
- แนวทางการพัฒนาแอป MVC จะต้องตัดสินใจตามความต้องการของแอปพลิเคชันและฟีเจอร์ที่ ASP .net MVC มอบให้เพื่อให้เหมาะกับความต้องการในการพัฒนาเฉพาะ
- กระบวนการพัฒนาแอพพลิเคชั่นด้วย ASP .NET MVC มีความซับซ้อนมากกว่าเมื่อเปรียบเทียบกับแอพพลิเคชั่นที่ใช้แบบฟอร์มเว็บ
- การบำรุงรักษาแอปพลิเคชันจะสูงขึ้นเสมอเมื่อมีการแยกงานแอปพลิเคชัน
MVC เป็นรูปแบบสถาปัตยกรรมซอฟต์แวร์ที่ปฏิบัติตามวิธีการแยกส่วนปัญหา ในโมเดลนี้ แอปพลิเคชัน .Net จะถูกแบ่งออกเป็นสามส่วนที่เชื่อมต่อกัน ซึ่งเรียกว่า โมเดล มุมมอง และตัวควบคุม
เป้าหมายของรูปแบบ MVC คือแต่ละส่วนสามารถพัฒนา ทดสอบแบบแยกส่วน และยังรวมเข้าด้วยกันเพื่อสร้างแอปพลิเคชันที่แข็งแกร่งมาก
มาดูรายละเอียดทั้งหมดกัน:
Models
อ็อบเจ็กต์โมเดลเป็นส่วนหนึ่งของแอปพลิเคชันที่ใช้ตรรกะสำหรับแอปพลิเคชัน โดเมนข้อมูล- มันดึงและจัดเก็บสถานะของแบบจำลองในฐานข้อมูล ตัวอย่างเช่น product object อาจดึงข้อมูลจาก ฐานข้อมูลดำเนินการตามนั้น จากนั้นเขียนข้อมูลกลับไปยังตารางผลิตภัณฑ์ใน SQL Server
เข้าชม
มุมมองเป็นส่วนประกอบที่ใช้เพื่อแสดงส่วนต่อประสานผู้ใช้ (UI) ของแอปพลิเคชันหรือที่เรียกว่า viewmodel ใน MVC จะแสดงแอปพลิเคชัน .Net MVC ที่สร้างขึ้นจากข้อมูลโมเดล
ตัวอย่างทั่วไปคือมุมมองแก้ไขของตารางรายการ ซึ่งจะแสดงกล่องข้อความ ป๊อปอัป และกล่องกาเครื่องหมายตามสถานะปัจจุบันของผลิตภัณฑ์และอ็อบเจ็กต์
ตัวควบคุม
ตัวควบคุมจะจัดการการโต้ตอบของผู้ใช้ ทำงานกับโมเดล และเลือกมุมมองเพื่อแสดง Ul ในแอป .Net MVC มุมมองจะแสดงเฉพาะข้อมูล ตัวควบคุมจะจัดการและตอบสนองต่ออินพุตและการโต้ตอบของผู้ใช้โดยใช้ตัวกรองการกระทำใน MVC
ตัวอย่างเช่น คอนโทรลเลอร์จะจัดการค่าสตริงการสืบค้นและส่งค่าเหล่านั้นไปยังโมเดล
เว็บฟอร์มกับ MVC
พารามิเตอร์ | เว็บจาก | VMC |
---|---|---|
รุ่น | Asp.Net Web Forms เป็นไปตามรูปแบบการพัฒนาที่ขับเคลื่อนด้วยเหตุการณ์ | Asp.Net MVC ใช้รูปแบบการพัฒนาตามรูปแบบ MVC |
ใช้ตั้งแต่ | มีมาตั้งแต่ปี 2002 | เปิดตัวครั้งแรกในปี 2009 |
รองรับสถานะการดู | Asp.Net Web Form รองรับสถานะมุมมองสำหรับการจัดการสถานะที่ฝั่งไคลเอ็นต์ | .Net MVC ไม่รองรับสถานะการดู |
ประเภท URL | Asp.Net Web Form มี URL แบบไฟล์ หมายความว่าชื่อไฟล์มีอยู่ใน URL และต้องมีอยู่จริง | Asp.Net MVC มี URL ตามเส้นทางซึ่งหมายถึง URL ที่ถูกเปลี่ยนเส้นทางไปยังตัวควบคุมและการดำเนินการ |
วากยสัมพันธ์ | Asp.Net MVC เป็นไปตามไวยากรณ์ของเว็บฟอร์ม | Asp.Net MVC เป็นไปตามไวยากรณ์ที่ปรับแต่งได้ |
ประเภทการดู | เว็บฟอร์ม มุมมองจะเชื่อมโยงอย่างแน่นหนากับโค้ดด้านหลัง (ASPX-CS) เช่น ตรรกะ | MVC, มุมมอง และตรรกะจะถูกเก็บไว้แยกกันเสมอ |
รูปลักษณ์และความรู้สึกที่สอดคล้องกัน | มีหน้าหลักเพื่อให้ดูสอดคล้องกัน | Asp.Net MVC มีเลย์เอาต์เพื่อให้ดูสอดคล้องกัน |
การใช้รหัสซ้ำ | เว็บฟอร์มเสนอการควบคุมผู้ใช้สำหรับการนำโค้ดกลับมาใช้ใหม่ | Asp.Net MVC ได้เสนอมุมมองบางส่วนสำหรับการนำโค้ดกลับมาใช้ใหม่ได้ |
การควบคุมสำหรับ HTML | Less ควบคุม HTML ที่แสดงผล | ควบคุม HTML เต็มรูปแบบ |
การจัดการของรัฐ | การจัดการสถานะการควบคุมอัตโนมัติ | การจัดการสถานะด้วยตนเอง |
รองรับ TDD | จำเป็นต้องมี TDD ที่อ่อนแอหรือกำหนดเอง | ให้กำลังใจและรวม TDD! |
ข้อดีของ ASP.NET MVC
- แอปพลิเคชันที่มีการบำรุงรักษาสูงตามค่าเริ่มต้น
- ช่วยให้คุณสามารถแทนที่ส่วนประกอบใด ๆ ของแอปพลิเคชันได้
- การสนับสนุนที่ดีขึ้นสำหรับการทดสอบการพัฒนาที่ขับเคลื่อนด้วย
- แอปพลิเคชันที่ซับซ้อนสามารถจัดการได้ง่ายเนื่องจากมีการแบ่งส่วน Model, View และ Controller
- นำเสนอกลไกการกำหนดเส้นทางที่แข็งแกร่งพร้อมรูปแบบตัวควบคุมด้านหน้า
- เสนอการควบคุมพฤติกรรมแอปพลิเคชันที่ดีขึ้นด้วยการกำจัดสถานะมุมมองและแบบฟอร์มบนเซิร์ฟเวอร์
- แอปพลิเคชัน .Net MVC ได้รับการสนับสนุนโดยทีมนักพัฒนาและนักออกแบบเว็บไซต์จำนวนมาก
- ช่วยให้สามารถควบคุมพฤติกรรมของแอปพลิเคชันได้มากขึ้น นอกจากนี้ยังใช้แบนด์วิธที่ปรับให้เหมาะสมสำหรับการร้องขอที่ส่งไปยังเซิร์ฟเวอร์
ข้อเสียของ ASP.NET MVC
- คุณไม่สามารถดูตัวอย่างหน้าการออกแบบได้เหมือนกับหน้า .aspx
- คุณต้องรันโปรแกรมทุกครั้งจึงจะเห็นการออกแบบจริง
- การทำความเข้าใจขั้นตอนของแอปพลิเคชันอาจเป็นเรื่องที่ท้าทาย
- การติดตั้งใช้งานค่อนข้างซับซ้อน ดังนั้นจึงไม่ใช่ตัวเลือกที่เหมาะสำหรับการใช้งานระดับเล็ก
- เป็นการยากที่จะเรียนรู้ MVC สำหรับ ASP.NET เนื่องจากต้องใช้ความเข้าใจรูปแบบ MVC เป็นอย่างดี
แนวทางปฏิบัติที่ดีที่สุดในขณะที่ใช้ ASP.Net MVC
- สร้างแอสเซมบลีแยกต่างหากสำหรับ MODEL ในกรณีที่มีโค้ดขนาดใหญ่และซับซ้อนเพื่อหลีกเลี่ยงสถานการณ์ที่ไม่ต้องการ
- โมเดลควรรวมตรรกะทางธุรกิจ การบำรุงรักษาเซสชัน ส่วนการตรวจสอบ และส่วนตรรกะข้อมูล
- VIEW ไม่ควรมีตรรกะทางธุรกิจและการบำรุงรักษาเซสชัน ใช้ ViewData เพื่อเข้าถึงข้อมูลใน View
- ตรรกะทางธุรกิจและการเข้าถึงข้อมูลไม่ควรเกิดขึ้นใน ControllerViewData
- คอนโทรลเลอร์ควรรับผิดชอบเฉพาะในการเตรียมและส่งคืนมุมมอง การเรียกโมเดล การเปลี่ยนเส้นทางไปยังการดำเนินการ ฯลฯ
- ลบรหัสสาธิตออกจากแอปพลิเคชันเมื่อคุณสร้างมัน ลบ AccountController
- ใช้เฉพาะเอ็นจิ้นการดูเฉพาะเพื่อสร้างมาร์กอัป HTML จากมุมมองของคุณ เนื่องจากเป็นการผสมผสานระหว่าง HTML และโค้ดโปรแกรม
สรุป
- ASP.NET MVC เป็นเฟรมเวิร์กการพัฒนาเว็บโอเพ่นซอร์สจาก Microsoft ที่ให้ สถาปัตยกรรมตัวควบคุมมุมมองแบบจำลอง.
- ASP.net MVC เสนอทางเลือกแทนเว็บฟอร์ม ASP.net สำหรับการสร้างเว็บแอปพลิเคชัน
- ปัญหาหลักของ ASP.net webForms คือประสิทธิภาพ
- ASP.net MVC เสนอความสามารถในการทดสอบที่ง่ายและไร้แรงเสียดทานพร้อมการควบคุม HTML และ URL ของคุณอย่างสมบูรณ์
- คุณต้องจำไว้ว่า ASP .net MVC ไม่ใช่การแทนที่แอปพลิเคชันที่ใช้ฟอร์มเว็บ ASP.Net
- แนวทางการพัฒนาแอป MVC หรือ ASP.NET MVC Life Cycle จะต้องตัดสินใจตามความต้องการของแอปพลิเคชันและฟีเจอร์ที่ ASP .net MVC มอบให้ เพื่อให้เหมาะกับความต้องการในการพัฒนาเฉพาะ
- ASP.NET MVC นำเสนอแอปพลิเคชันที่สามารถบำรุงรักษาได้สูงตามค่าเริ่มต้น
- ด้วย ASP.net คุณจะไม่เห็นตัวอย่างหน้าการออกแบบเหมือนหน้า .aspx
- ตามแนวทางปฏิบัติที่ดีที่สุด โมเดลควรรวมตรรกะทางธุรกิจ การบำรุงรักษาเซสชัน ส่วนการตรวจสอบ และส่วนตรรกะข้อมูล