ASP.NET Core เป็นเทคโนโลยีจากค่ายไมโครซอฟต์ (Microsoft) เพื่อใช้สำหรับการพัฒนาเว็ปไซต์ ทั้งนี้ ASP.NET Core สามารถพัฒนาได้ทั้งระบบปฎิบัติการ Windows, Linux, Mac โดยภาษา C# และ Razor หรือจะเรียกว่าตัว ASP.NET Core คือ Open Source ของค่ายไมโครซอฟต์นั่นเอง การเขียนโปรแกรมดังกล่าวใช้แนวคิดการเขียนโปรแกรมแบบ MVC (Model, View , Controller) ที่ช่วยให้ง่ายต่อการออกแบบ วิเคราะห์ และบำรุงรักษา Web Application สำหรับรุ่นปัจจุบันของ .Net Core คือ .Net Core 2.0 (ดาวน์โหลดได้ที่ https://www.microsoft.com/net/download/windows)
คุณสมบัติของ .NET Core (อ้างอิงจาก : https://pkorawit.wordpress.com/2017/03/06/last-stop-asp-net-core/)
- Cross-platform โปรแกรมที่เขียนด้วย .NET Core สามารถใช้งานบน Windows, Linux and macOS ก็ได้ จริง ๆ แล้วก็คือการสร้าง .NET Core SDK ให้กับ platforms อื่น ๆ ด้วยนั่นเอง (แบบเดียวกับ Java)
- Unified พอมี .NET Core SDK ให้กับทุก platforms ทำให้การเขียน code ก็เขียนแบบเดียวกันได้หรือเรียกว่า unified นั่นเอง นอกจากนั้นก็มีการแจก Visual Studio CODE (VS Code) ซึ่งเป็น Editor ที่มีสำหรับทุก platform ในแนว in-trend แบบที่ developer สมัยนี้ชอบกันคือ Text Editor + Command line ไม่เน้น Visual สำหรับสาย Visual ก็ไม่ต้องน้อยใจมี Visual Studio 2015 (กำลังจะออก 2017) เวอร์ชัน Community ให้ใช้แบบ ลาก ๆ วาง ๆ เหมือนเดิม เพิ่มเติมคือมีสำหรับ Mac ด้วยนะจ๊ะในนาม Visual Studio for Mac
- Fast เขาโฆษณาว่าเร็วนะ มีการเปรียบเทียบกับ Node.js อยู่บ่อย ๆ (อ้างอิงจาก TechEmpower benchmarks) แต่อันนี้ไม่ขอคอนเฟิร์มนะ เพราะไม่ได้ทดลองด้วยตัวเอง แต่เอาเป็นว่าเร็วขึ้นกว่าแต่ก่อนก็ปลื้มแล้ว
- Lightweight เหตุผลที่ทำให้เร็วขึ้นน่าจะเป็นเพราะตัว Framework มันเล็กลง และถูกพัฒนาขึ้นใหม่ในวงการของ Open source มีการแยกเป็นระบบ module dependency เอาง่าย ๆ คือก๊อปโมเดล npm ของ js มาเลย
- Modern ตัวภาษาทันสมัยมีให้เลือกตั้งแต่ C#, VB, F#(ไม่รู้จัก) ในมุมมองของ Software Engineer ชอบ C# มากนะ เพราะมันทันสมบูรณ์ มีอะไรให้ใช้เยอะแยะ ใช้สอนนักศึกษาก็ดีด้วยเด็ก ๆ จะได้มีพื้นฐานการเขียนโปรแกรมที่ดี
- Open Source ทั้ง Runtime, libraries, compiler, และอื่น ๆ open source หมดเลยมี Repository บน GitHub ด้วยทำให้การพัฒนาต่อ ๆ ไปดูดีมีอนาคต
รูปที่ 1 แสดง .NET Block Diagram
การใช้ฐานข้อมูลสามารถเลือกใช้ Microsoft SQL Server ซึ่งเป็นฐานข้อมูลของไมโครซอฟต์เอง หรือสามารถเลือกใช้ฐานข้อมูลของค่ายอื่น ๆ ได้ ไม่ว่าจะเป็น Oracle, MySQL, MariaDB เป็นต้น
นอกจากนี้ยังสามารถใช้ Docker ในการ Deploy ซึ่งจะสะดวกเป็นอย่างมากกับนักพัฒนาระบบ กล่าวคือเจ้าตัว Docker เป็นเครื่องมือในการจำลองสภาพแวดล้อมเซิฟเวอร์นั่นเอง เพื่อใช้สำหรับรันเซอร์วิส ลักษณะจะคล้ายกับ VmWare, Visual Box แต่ความแตกต่างคือตัว Docker จะมีขนาดเล็กไม่ต้องติดตั้งระบบปฎิบัติการ (OS) และใช้ทรัพยากรน้อยกว่าเมื่อเทียบกับโปรแกรมจำลองสภาพแวดล้อมอื่น ๆ นอกจากนี้สามารถสร้าง Image เพื่อนำไปขึ้น Production ได้เลย
รูปที่ 2 แสดงการใช้งาน Docker
จะเห็นว่าการพัฒนาระบบงานปัจจุบันเครื่องมือจะครบทัน ทำให้นักพัฒนาโปรแกรมประหยัดเวลา และให้ระบบเสร็จได้เร็วขึ้น ทำให้นักพัฒนาโปรแกรมมีเวลาในการศึกษาหรือพัฒนาฝีมือตัวเองมากขึ้นนั่นเอง