บทช่วยสอน ASP.NET MVC สำหรับผู้เริ่มต้น: คืออะไร Archiเทคเจอร์
⚡ สรุปอย่างชาญฉลาด
ASP.NET MVC เป็นโอเพนซอร์ส Microsoft เฟรมเวิร์กที่แบ่งแอปพลิเคชันเว็บออกเป็นเลเยอร์ Model, View และ Controller ทำให้ผู้พัฒนาสามารถควบคุม HTML ได้อย่างเต็มที่ มีโค้ดที่ทดสอบได้ การกำหนดเส้นทางที่ชัดเจน และเป็นทางเลือกที่เบากว่า Web Forms แบบดั้งเดิม
ASP.NET MVC คืออะไร
ASP.NET MVC เป็นกรอบการพัฒนาเว็บแบบโอเพ่นซอร์สจาก Microsoft ASP.NET MVC เป็นสถาปัตยกรรมแบบ Model-View-Controller (MView-Controller) ซึ่งเป็นทางเลือกแทน ASP.NET Web Forms สำหรับการสร้างเว็บแอปพลิเคชัน เป็นส่วนหนึ่งของแพลตฟอร์ม .NET สำหรับการสร้าง การติดตั้ง และการใช้งานเว็บแอป คุณสามารถพัฒนาเว็บแอปและเว็บไซต์ได้โดยใช้ HTML, CSS และ jQuery Javaสคริปต์ ฯลฯ
เรียนรู้ MVC ด้วยบทช่วยสอน ASP.NET MVC นี้ ซึ่งครอบคลุมแนวคิดพื้นฐานทั้งหมดของ MVC สำหรับผู้เริ่มต้น:
ทำไมต้องใช้ ASP.NET MVC?
แม้ว่าเว็บฟอร์มจะประสบความสำเร็จอย่างมาก Microsoft คิดเกี่ยวกับการพัฒนาping 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
- รวมถึงฟีเจอร์ต่างๆ เช่น ตัวช่วยสร้างเทมเพลต ตัวช่วยสร้าง UI พร้อมการสร้างโครงร่างอัตโนมัติ และเทมเพลตที่ปรับแต่งได้
- รองรับ DataAnnotations Attributes เพื่อใช้การตรวจสอบโมเดลกับฝั่งไคลเอ็นต์และเซิร์ฟเวอร์
ASP.NET MVC3
- เปิดตัวเมื่อ 13 มกราคม 2011
- ทำงานบน .NET 4.0 และด้วย Microsoft Visual Studio 2010
- การใช้เอ็นuGet เพื่อส่งมอบซอฟต์แวร์และช่วยให้คุณจัดการการพึ่งพาทั่วทั้งแพลตฟอร์ม
- ดีกว่า Javaรองรับสคริปต์ด้วยการตรวจสอบความถูกต้องของ jQuery และการผูกข้อมูล JSON
- มันมีคุณสมบัติเด่นๆ เช่น เอ็นจิ้นการแสดงผล Razor และแอตทริบิวต์ Data Annotations ที่ได้รับการปรับปรุงสำหรับการตรวจสอบความถูกต้องของโมเดลทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์
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 Studio 2013
- รองรับการกำหนดเส้นทางแอตทริบิวต์ใน MVC
คุณสมบัติของ MVC
- ทดสอบได้ง่ายและไม่เสียดสี
- ควบคุม HTML ของคุณได้อย่างสมบูรณ์ Javaสคริปต์และ URLs
- ใช้ประโยชน์ที่มีอยู่ ASP.NET คุณสมบัติ
- ตัวเลือกการนำเสนอใหม่สำหรับ ASP.NET
- วิธีที่ง่ายกว่าในการเขียนโปรแกรม ASP.NET
- การแยกตรรกะอย่างชัดเจน: โมเดล มุมมอง ตัวควบคุม
- การพัฒนาที่ขับเคลื่อนด้วยการทดสอบ
- รองรับการพัฒนาแบบคู่ขนาน
สิ่งที่ควรจำขณะสร้าง MVC Application
ต่อไปนี้คือสิ่งที่มีประโยชน์บางประการในบทช่วยสอน ASP.NET MVC นี้ซึ่งคุณต้องจำไว้สำหรับการสร้างแอปพลิเคชัน MVC:
- คุณต้องจำไว้ว่า ASP.NET MVC ไม่ได้มาทดแทนแอปพลิเคชันที่ใช้ ASP.NET Web Forms
- แนวทางการพัฒนาแอปพลิเคชัน MVC ต้องพิจารณาจากข้อกำหนดของแอปพลิเคชันและคุณสมบัติที่ ASP.NET MVC มีให้ เพื่อให้เหมาะสมกับความต้องการในการพัฒนาเฉพาะด้าน
- กระบวนการพัฒนาแอปพลิเคชันด้วย ASP.NET MVC นั้นซับซ้อนกว่าเมื่อเทียบกับแอปพลิเคชันที่ใช้เว็บฟอร์ม
- การบำรุงรักษาแอปพลิเคชันจะสูงขึ้นเสมอเมื่อมีการแยกงานแอปพลิเคชัน
รูปแบบสถาปัตยกรรม MVC
MVC เป็นรูปแบบสถาปัตยกรรมซอฟต์แวร์ที่ยึดหลักการแบ่งแยกความรับผิดชอบ ในโมเดลนี้ แอปพลิเคชัน .NET จะถูกแบ่งออกเป็นสามส่วนที่เชื่อมต่อกัน ซึ่งเรียกว่า โมเดล (Model), วิว (View) และ คอนโทรลเลอร์ (Controller)
เป้าหมายของรูปแบบ MVC คือแต่ละส่วนสามารถพัฒนา ทดสอบแบบแยกส่วน และยังรวมเข้าด้วยกันเพื่อสร้างแอปพลิเคชันที่แข็งแกร่งมาก
เรามาดูรายละเอียดทั้งหมดกันเลย:
Models
อ็อบเจ็กต์โมเดลเป็นส่วนหนึ่งของแอปพลิเคชันที่ใช้ตรรกะสำหรับแอปพลิเคชัน โดเมนข้อมูล- มันดึงและจัดเก็บสถานะของแบบจำลองในฐานข้อมูล ตัวอย่างเช่น product object อาจดึงข้อมูลจาก ฐานข้อมูลดำเนินการตามนั้น จากนั้นเขียนข้อมูลกลับไปยังตารางผลิตภัณฑ์ใน SQL Server
เข้าชม
View คือส่วนประกอบที่ใช้แสดงส่วนติดต่อผู้ใช้ (UI) ของแอปพลิเคชัน ซึ่งใน MVC เรียกว่า ViewModel โดยจะแสดงส่วนติดต่อผู้ใช้ของแอปพลิเคชัน .NET MVC ที่สร้างขึ้นจากข้อมูล Model
ตัวอย่างทั่วไปคือมุมมองแก้ไขของตารางรายการ ซึ่งจะแสดงกล่องข้อความ ป๊อปอัป และกล่องกาเครื่องหมายตามสถานะปัจจุบันของผลิตภัณฑ์และอ็อบเจ็กต์
ตัวควบคุม
คอนโทรลเลอร์ทำหน้าที่จัดการการโต้ตอบกับผู้ใช้ ทำงานกับโมเดล และเลือกวิวที่จะแสดงผลส่วนติดต่อผู้ใช้ (UI) ในแอปพลิเคชัน .NET MVC วิวจะแสดงข้อมูลเท่านั้น ส่วนคอนโทรลเลอร์จะจัดการและตอบสนองต่ออินพุตและการโต้ตอบของผู้ใช้โดยใช้แอ็กชันฟิลเตอร์ใน MVC
ตัวอย่างเช่น คอนโทรลเลอร์จะจัดการค่าสตริงการสืบค้นและส่งค่าเหล่านั้นไปยังโมเดล
เว็บฟอร์มกับ MVC
| พารามิเตอร์ | เว็บฟอร์ม | VMC |
|---|---|---|
| รุ่น | ASP.NET Web Forms ใช้โมเดลการพัฒนาแบบขับเคลื่อนด้วยเหตุการณ์ (event-driven development) | ASP.NET MVC ใช้โมเดลการพัฒนาแบบ MVC (Multiple Computing Pattern) |
| ใช้ตั้งแต่ | มีมาตั้งแต่ปี 2002 | เปิดตัวครั้งแรกในปี 2009 |
| รองรับสถานะการดู | ASP.NET Web Form รองรับ View State สำหรับการจัดการสถานะฝั่งไคลเอ็นต์ | .NET MVC ไม่รองรับ View State |
| URL ชนิด | ASP.NET Web Form ใช้ไฟล์เป็นฐานข้อมูล URLหมายความว่าชื่อไฟล์นั้นมีอยู่ในนั้น URLและสิ่งเหล่านั้นต้องมีอยู่จริงในทางกายภาพ | ASP.NET MVC มีการกำหนดเส้นทาง (route-based) URLนั่นหมายความว่า URLซึ่งจะถูกส่งต่อไปยังตัวควบคุมและแอ็กชัน |
| วากยสัมพันธ์ | ASP.NET Web Forms ใช้ไวยากรณ์ของ Web Forms | ASP.NET MVC ใช้ไวยากรณ์ที่สามารถปรับแต่งได้ |
| ประเภทการดู | แบบฟอร์มบนเว็บ มุมมองต่างๆ มีความเชื่อมโยงกันอย่างแน่นหนา Code เบื้องหลัง (ASPX-CS) คือตรรกะ | MVC, มุมมอง และตรรกะจะถูกเก็บไว้แยกกันเสมอ |
| รูปลักษณ์และสัมผัสที่สอดคล้องกัน | มีหน้าหลักเพื่อให้ดูสอดคล้องกัน | ASP.NET MVC มีเลย์เอาต์เพื่อให้รูปลักษณ์สม่ำเสมอ |
| Code ความสามารถในเรอุส | เว็บฟอร์มเสนอการควบคุมผู้ใช้สำหรับการนำโค้ดกลับมาใช้ใหม่ | ASP.NET MVC นำเสนอ Partial View เพื่อให้สามารถนำโค้ดกลับมาใช้ซ้ำได้ |
| การควบคุมสำหรับ HTML | Less ควบคุม HTML ที่แสดงผล | ควบคุม HTML เต็มรูปแบบ |
| การจัดการของรัฐ | การจัดการสถานะการควบคุมอัตโนมัติ | การจัดการสถานะด้วยตนเอง |
| รองรับ TDD | จำเป็นต้องมี TDD ที่อ่อนแอหรือกำหนดเอง | สนับสนุนและส่งเสริมการใช้ TDD (Test-Driven Development) |
ข้อดีของ ASP.NET MVC
- แอปพลิเคชันที่มีการบำรุงรักษาสูงตามค่าเริ่มต้น
- ช่วยให้คุณสามารถแทนที่ส่วนประกอบใด ๆ ของแอปพลิเคชันได้
- การสนับสนุนที่ดีขึ้นสำหรับการทดสอบการพัฒนาที่ขับเคลื่อนด้วย
- แอปพลิเคชันที่ซับซ้อนสามารถจัดการได้ง่ายเนื่องจากมีการแบ่งส่วน Model, View และ Controller
- นำเสนอกลไกการกำหนดเส้นทางที่แข็งแกร่งพร้อมรูปแบบตัวควบคุมด้านหน้า
- เสนอการควบคุมพฤติกรรมแอปพลิเคชันที่ดีขึ้นด้วยการกำจัดสถานะมุมมองและแบบฟอร์มบนเซิร์ฟเวอร์
- แอปพลิเคชัน .NET MVC ได้รับการสนับสนุนจากทีมพัฒนาและนักออกแบบเว็บขนาดใหญ่
- ช่วยให้สามารถควบคุมพฤติกรรมของแอปพลิเคชันได้มากขึ้น นอกจากนี้ยังใช้แบนด์วิธที่ปรับให้เหมาะสมสำหรับการร้องขอที่ส่งไปยังเซิร์ฟเวอร์
ข้อเสียของ ASP.NET MVC
- คุณไม่สามารถดูตัวอย่างหน้าออกแบบได้เหมือนกับหน้า .aspx
- คุณต้องเรียกใช้โปรแกรมทุกครั้งเพื่อดูการออกแบบที่แท้จริง
- การทำความเข้าใจขั้นตอนของแอปพลิเคชันอาจเป็นเรื่องที่ท้าทาย
- การติดตั้งใช้งานค่อนข้างซับซ้อน ดังนั้นจึงไม่ใช่ตัวเลือกที่เหมาะสำหรับการใช้งานระดับเล็ก
- เป็นการยากที่จะเรียนรู้ MVC สำหรับ ASP.NET เนื่องจากต้องใช้ความเข้าใจรูปแบบ MVC เป็นอย่างดี
แนวทางปฏิบัติที่ดีที่สุดในการใช้งาน ASP.NET MVC
- ในกรณีที่โค้ดมีขนาดใหญ่และซับซ้อน ให้สร้างแอสเซมบลีแยกต่างหากสำหรับ MODEL เพื่อหลีกเลี่ยงสถานการณ์ที่ไม่พึงประสงค์ใดๆ
- โมเดลควรรวมตรรกะทางธุรกิจ การบำรุงรักษาเซสชัน ส่วนการตรวจสอบ และส่วนตรรกะข้อมูล
- VIEW ไม่ควรมีตรรกะทางธุรกิจและการบำรุงรักษาเซสชัน ใช้ ViewData เพื่อเข้าถึงข้อมูลใน View
- ตรรกะทางธุรกิจและการเข้าถึงข้อมูลไม่ควรเกิดขึ้นใน Controller เลย
- คอนโทรลเลอร์ควรรับผิดชอบเฉพาะในการเตรียมและส่งคืนมุมมอง การเรียกโมเดล การเปลี่ยนเส้นทางไปยังการดำเนินการ ฯลฯ
- ลบโค้ดสาธิตออกจากแอปพลิเคชันเมื่อคุณสร้างแอปพลิเคชัน (ลบ AccountController)
- ใช้เฉพาะเอ็นจิ้นการดูเฉพาะเพื่อสร้างมาร์กอัป HTML จากมุมมองของคุณ เนื่องจากเป็นการผสมผสานระหว่าง HTML และโค้ดโปรแกรม


