บทช่วยสอน 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
รูปแบบสถาปัตยกรรม 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
  • ตามแนวทางปฏิบัติที่ดีที่สุด โมเดลควรรวมตรรกะทางธุรกิจ การบำรุงรักษาเซสชัน ส่วนการตรวจสอบ และส่วนตรรกะข้อมูล