ASP.NET คือ ตอนที่ 4 : ASP.NET Core

  1. เบื้องต้นเกี่ยวกับ ASP.NET Core
  2. ทำความเข้าใจกับคลาสเริ่มต้น (Startup Class)
  3. มิดเดิลแวร์ (Middleware) ใน ASP.NET Core
  4. สร้าง Web Application ด้วย ASP.NET Core MVC
  5. การทำงานกับข้อมูล – Entity Framework Core
  6. Dependency Injection ใน ASP.NET Core
  7. Identity และความปลอดภัย (Security) ใน ASP.NET Core
  8. การพัฒนา API ด้วย ASP.NET Core

ASP.NET Core ซึ่งเป็นเวอร์ชันล่าสุดของ ASP.NET เป็นเฟรมเวิร์กข้ามแพลตฟอร์มแบบโอเพ่นซอร์สสำหรับการทำแอพสมัยใหม่ที่เชื่อมต่อกับอินเทอร์เน็ตและบนคลาวด์ ASP.NET Core ได้รับการออกแบบมาเพื่อให้นักพัฒนามีเรื่องราวที่เป็นหนึ่งเดียวสำหรับการสร้าง UI ของเว็บและ API ของเว็บ และยังช่วยให้คุณสามารถทำแอพและเรียกใช้แอปพลิเคชันข้ามแพลตฟอร์มบน Windows, macOS และ Linux

1. เบื้องต้นเกี่ยวกับ ASP.NET Core

ASP.NET Core เป็นการออกแบบใหม่ที่สำคัญของ ASP.NET ซึ่งทำให้เป็นเฟรมเวิร์กที่บางลง โมดูลาร์ และประสิทธิภาพสูง มีความหลากหลายและสามารถจัดการได้ทุกอย่างตั้งแต่แอปพลิเคชันหน้าเดียวขนาดเล็กไปจนถึงเว็บแอปพลิเคชันขนาดใหญ่ระดับองค์กรที่มีผู้ใช้หลายล้านคน นอกจากนี้ รุ่น Core ยังแนะนำระบบการกำหนดค่าตามสภาพแวดล้อมที่พร้อมใช้งานบนคลาวด์ ซึ่งเพิ่มความนิยมในหมู่นักพัฒนา

ข้อได้เปรียบที่สำคัญที่สุดอย่างหนึ่งของ ASP.NET Core คือความสามารถข้ามแพลตฟอร์ม ซึ่งหมายความว่าขณะนี้นักพัฒนาสามารถสร้างและเรียกใช้แอปพลิเคชัน ASP.NET บนระบบปฏิบัติการหลายระบบ ซึ่ง ASP.NET เวอร์ชันก่อนหน้าไม่สามารถทำได้ ความสามารถข้ามแพลตฟอร์มช่วยขยายขอบเขตของการทำแอพเนื่องจากไม่ต้องพึ่งพาระบบปฏิบัติการเดียว

2. ทำความเข้าใจกับคลาสเริ่มต้น (Startup Class)

ในแอปพลิเคชัน ASP.NET Core คลาสเริ่มต้นคือจุดเริ่มต้น เป็นที่ที่กำหนดค่าบริการของแอปพลิเคชันและกำหนดไปป์ไลน์การจัดการคำขอของแอปพลิเคชัน คลาสนี้ต้องเป็นสาธารณะและมีเมธอดต่อไปนี้:

  1. ConfigureServices (บริการ IServiceCollection) : วิธีนี้ใช้เพื่อเพิ่มและกำหนดค่าบริการ บริการเป็นส่วนประกอบที่ใช้ซ้ำได้ซึ่งมีฟังก์ชันการทำงานของแอป บริการได้รับการลงทะเบียนในวิธีนี้และถูกใช้งานในภายหลังผ่านแอปพลิเคชันผ่านการพึ่งพาการฉีด (DI) หรือ ApplicationServices
  2. Configure(IApplicationBuilder app, IWebHostEnvironment env) : วิธีนี้ใช้เพื่อสร้างไปป์ไลน์การประมวลผลคำขอของแอปพลิเคชัน หรือที่เรียกว่าไปป์ไลน์มิดเดิลแวร์ มิดเดิลแวร์แต่ละชิ้นสามารถจัดการคำขอหรือส่งต่อไปยังมิดเดิลแวร์ชิ้นถัดไปในไปป์ไลน์ได้

3. มิดเดิลแวร์ (Middleware) ใน ASP.NET Core

มิดเดิลแวร์ใน ASP.NET Core ทำงานเป็นชุดของคอมโพเนนต์ที่ประกอบเข้ากับไปป์ไลน์ของแอปพลิเคชันเพื่อจัดการกับคำขอและการตอบสนอง มิดเดิลแวร์แต่ละชิ้นในไปป์ไลน์มีงานเฉพาะ เช่น การจัดการคำขอ การจัดการข้อยกเว้น การกำหนดเส้นทาง การอนุญาต หรือการบันทึก

ความสวยงามของมิดเดิลแวร์อยู่ที่ความเป็นโมดูลและลำดับการดำเนินการ คุณสามารถตัดสินใจได้ว่าจะรวมคอมโพเนนต์มิดเดิลแวร์ใดและลำดับที่คอมโพเนนต์ของมิดเดิลแวร์ทำงาน ทำให้คุณสามารถควบคุมไปป์ไลน์คำขอได้อย่างเต็มที่

4. สร้าง Web Application ด้วย ASP.NET Core MVC

ASP.NET Core MVC ซึ่งเป็นส่วนสำคัญของ ASP.NET Core รวมคุณสมบัติของ MVC (Model-View-Controller) และ Web API ไว้ในโมเดลการเขียนโปรแกรมเดียว มีวิธีการสร้างเว็บไซต์แบบไดนามิกตามรูปแบบ ทำให้สามารถแยกข้อกังวลได้อย่างชัดเจน และให้คุณควบคุมมาร์กอัปได้อย่างเต็มที่ วิธีทำแอพ ASP.NET Core MVC:

  1. สร้างโครงการ ASP.NET Core ใหม่ใน Visual Studio หรือ IDE ที่ต้องการอื่นๆ
  2. ในกล่องโต้ตอบ ‘โครงการใหม่’ เลือก ‘ASP.NET Core Web Application’ และตั้งชื่อโครงการและที่ตั้ง
  3. ในกล่องโต้ตอบ ‘New ASP.NET Core Web Application’ ให้เลือก ‘.NET Core’ และ ‘ASP.NET Core version’ จากนั้น เลือกเทมเพลต ‘Web Application (Model-View-Controller)’ และยกเลิกการเลือกช่องทำเครื่องหมาย ‘Enable Docker Support’ คลิก ‘Create’
  4. เมื่อสร้างโปรเจ็กต์ โครงสร้างโฟลเดอร์ MVC เริ่มต้นจะถูกสร้างขึ้นด้วยโฟลเดอร์ Controllers, Models และ Views
  5. คุณสามารถเริ่มสร้างโมเดล มุมมอง และคอนโทรลเลอร์ตามรูปแบบ MVC

5. การทำงานกับข้อมูล – Entity Framework Core

Entity Framework Core (EF Core) เป็นเทคโนโลยีการเข้าถึงข้อมูล Entity Framework เวอร์ชันโอเพ่นซอร์สและข้ามแพลตฟอร์มที่มีน้ำหนักเบา ขยายได้ EF Core ทำหน้าที่เป็น Object-Relational Mapper (O/RM) ทำให้นักพัฒนา .NET สามารถทำงานกับฐานข้อมูลโดยใช้วัตถุ .NET และขจัดความจำเป็นในการใช้รหัสเข้าถึงข้อมูลส่วนใหญ่ที่นักพัฒนามักจะเขียน

EF Core รองรับการสืบค้น LINQ, การติดตามการเปลี่ยนแปลง, การอัปเดต และการย้ายสคีมา ทำให้ง่ายต่อการจัดการและดึงข้อมูล ไม่เพียงแต่ใช้ในแอปพลิเคชัน ASP.NET Core เท่านั้น แต่ยังใช้ในแอปพลิเคชัน .NET ประเภทอื่นๆ เช่น WPF, Universal Windows Platform และ Xamarin

6. Dependency Injection ใน ASP.NET Core

Dependency Injection (DI) เป็นรูปแบบการออกแบบซอฟต์แวร์ที่ช่วยให้บรรลุ Inversion of Control (IoC) ระหว่างคลาสและการพึ่งพา ASP.NET Core รองรับ IoC ในตัว ด้วยการใช้คอนเทนเนอร์ IoC เริ่มต้นที่ Microsoft จัดหาให้ คุณสามารถลงทะเบียนบริการแอปพลิเคชันของคุณและทำให้พร้อมใช้งานทั่วทั้งแอปพลิเคชันของคุณผ่าน constructor injection

DI ช่วยทำให้แอปพลิเคชันเชื่อมต่ออย่างหลวมๆ ขยายได้ และทดสอบได้ง่าย ตัวอย่างเช่น สมมติว่าคุณมีคลาสบริการที่ขึ้นอยู่กับคลาสที่เก็บ การลงทะเบียนคลาสเหล่านี้ด้วยคอนเทนเนอร์ IoC ในตัว คุณสามารถแทรกคลาสที่เก็บลงในคลาสบริการ ทำให้ทดสอบและบำรุงรักษาคลาสบริการได้ง่ายขึ้น

7. Identity และความปลอดภัย (Security) ใน ASP.NET Core

การรักษาความปลอดภัยเป็นสิ่งสำคัญของแอปพลิเคชันใดๆ และ ASP.NET Core มาพร้อมกับคุณสมบัติมากมายที่จะช่วยทำแอพที่ปลอดภัย ASP.NET Core Identity เป็นระบบสมาชิกที่เพิ่มฟังก์ชันการเข้าสู่ระบบให้กับแอป ASP.NET Core ซึ่งมีคุณสมบัติต่างๆ เช่น การลงทะเบียนผู้ใช้ การยืนยันตัวตนแบบสองปัจจัย การเข้าสู่ระบบทางสังคม การล็อกบัญชี การกู้คืนรหัสผ่าน และอื่นๆ

คุณสมบัติด้านความปลอดภัย เช่น การรับรองความถูกต้อง การอนุญาต การปกป้องข้อมูล CORS การต่อต้านการปลอมแปลง และ HTTPS นั้นรวมอยู่ใน ASP.NET Core เพื่อให้มั่นใจว่าแอปพลิเคชันของคุณปลอดภัย

8. การพัฒนา API ด้วย ASP.NET Core

ASP.NET Core ไม่เพียงแต่ดีสำหรับการทำเว็บแอปพลิเคชันเท่านั้น แต่ยังยอดเยี่ยมสำหรับการสร้าง Web APIs อีกด้วย สามารถจัดการคำขอ ใช้การเจรจาเนื้อหา การผูกโมเดล การตรวจสอบโมเดล จัดการข้อยกเว้น และอื่นๆ ได้อย่างราบรื่น

การพัฒนา API โดยใช้ ASP.NET Core นั้นคล้ายกับการทำเว็บแอปพลิเคชันทั่วไป อย่างไรก็ตาม แทนที่จะส่งคืนมุมมองจากการดำเนินการของคอนโทรลเลอร์ คุณจะส่งคืนข้อมูลที่ได้รับการจัดลำดับเป็น JSON หรือ XML ข้อมูลนี้สามารถถูกใช้โดยไคลเอนต์ต่างๆ เช่น เบราว์เซอร์ แอพมือถือ หรืออุปกรณ์ IoT

การรองรับ ASP.NET Core ในตัวสำหรับรูปแบบต่างๆ และวิธีการ HTTP ทำให้เป็นแพลตฟอร์มที่มีประสิทธิภาพสูงสำหรับการสร้าง RESTful API และความสามารถในการผูกพารามิเตอร์คำขอจากแหล่งต่างๆ นั้นมีประโยชน์ในสถานการณ์ API


ASP.NET Core ทำให้เว็บแอปพลิเคชันและการพัฒนา API เร็วขึ้น ยืดหยุ่น และตรงไปตรงมามากขึ้น มันกลายเป็นตัวเลือกที่นักพัฒนาจำนวนมากต้องการเมื่อทำแอพที่แข็งแกร่ง ปลอดภัย และปรับขนาดได้ ด้วยพลังของการพัฒนาข้ามแพลตฟอร์ม เฟรมเวิร์กแบบครบวงจรสำหรับการสร้าง UI และ API ของเว็บ DI ในตัว และฟีเจอร์อื่นๆ อีกมากมาย ASP.NET Core จึงโดดเด่นอย่างแท้จริงในด้านการทำแอพสมัยใหม่


ASP.NET คืออะไร

ASP.NET คือ ตอนที่ 3 : การสร้างบริการ (Services) HTTP Web API
ASP.NET คือ ตอนที่ 5 : ฟังก์ชันแบบเรียลไทม์ด้วย SignalR