ASP.NET
ASP.NET คือเฟรมเวิร์คสำหรับการพัฒนาเว็บแอปพลิเคชันที่พัฒนาโดย Microsoft ทำงานบนแพลตฟอร์ม .NET ASP.NET ช่วยให้การสร้างเว็บแอปพลิเคชันที่มีความซับซ้อนและมีประสิทธิภาพเป็นไปได้อย่างง่ายดาย โดยมีฟีเจอร์ต่าง ๆ ที่รองรับการพัฒนาทั้งฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์
คุณสมบัติหลักของ ASP.NET
1. MVC (Model-View-Controller)
ASP.NET MVC เป็นสถาปัตยกรรมที่ช่วยในการแยกส่วนของแอปพลิเคชันออกเป็น 3 ส่วนหลัก คือ Model, View และ Controller ทำให้การพัฒนาและการทดสอบมีความง่ายดายและมีโครงสร้างที่ชัดเจน
2. Web API
ASP.NET ช่วยให้การสร้าง RESTful API สำหรับการสื่อสารระหว่างไคลเอ็นต์และเซิร์ฟเวอร์เป็นไปได้อย่างง่ายดาย โดยใช้ ASP.NET Web API
3. Razor Pages
Razor Pages เป็นรูปแบบการพัฒนาแบบใหม่ที่เพิ่มเข้ามาใน ASP.NET Core ซึ่งช่วยให้การพัฒนาเว็บแอปพลิเคชันที่มีความง่ายดายและเน้นการใช้งานแบบหน้าเดียว (single-page application)
4. SignalR
SignalR เป็นไลบรารีที่ช่วยให้การสร้างการสื่อสารแบบเรียลไทม์ระหว่างเซิร์ฟเวอร์และไคลเอ็นต์เป็นไปได้อย่างง่ายดาย
5. Dependency Injection
ASP.NET Core มีการสนับสนุน Dependency Injection ในตัว ทำให้การจัดการการพึ่งพาของส่วนต่าง ๆ ในแอปพลิเคชันเป็นไปได้อย่างง่ายดายและมีความยืดหยุ่น
6. Cross-Platform
ASP.NET Core สามารถทำงานได้บนหลายแพลตฟอร์ม เช่น Windows, macOS, และ Linux
การเริ่มต้นใช้งาน ASP.NET Core
1. การติดตั้ง .NET SDK
สามารถดาวน์โหลดและติดตั้ง .NET SDK ได้จาก Microsoft .NET Download
2. การสร้างโปรเจค ASP.NET Core ใหม่
ใช้คำสั่ง dotnet new
เพื่อสร้างโปรเจคใหม่
dotnet new mvc -o MyWebApp
cd MyWebApp
dotnet run
3. โครงสร้างโปรเจค
MyWebApp/
├── Controllers/
│ └── HomeController.cs
├── Models/
├── Views/
│ ├── Home/
│ │ └── Index.cshtml
│ ├── Shared/
│ │ └── _Layout.cshtml
├── wwwroot/
├── appsettings.json
├── Program.cs
├── Startup.cs
├── MyWebApp.csproj
4. การสร้าง Controller
Controller เป็นส่วนที่รับผิดชอบในการจัดการการร้องขอจากผู้ใช้และส่งข้อมูลไปยัง View
using Microsoft.AspNetCore.Mvc;
namespace MyWebApp.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
return View();
}
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
return View();
}
public IActionResult Contact()
{
ViewData["Message"] = "Your contact page.";
return View();
}
}
}
5. การสร้าง View
View เป็นส่วนที่ใช้แสดงผลข้อมูลที่ได้รับจาก Controller
สร้างไฟล์ Views/Home/Index.cshtml
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
<h1 class="display-4">Welcome</h1>
<p>Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core</a>.</p>
</div>
6. การตั้งค่า Routing
การตั้งค่า Routing ใน ASP.NET Core สามารถทำได้ในไฟล์ Startup.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
namespace MyWebApp
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
7. การใช้ Entity Framework Core สำหรับการเข้าถึงฐานข้อมูล
Entity Framework Core (EF Core) เป็น ORM (Object-Relational Mapping) ที่ช่วยให้การทำงานกับฐานข้อมูลใน .NET เป็นไปได้อย่างง่ายดาย
การติดตั้งแพ็กเกจ EF Core
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools
การสร้าง DbContext และ Model
using Microsoft.EntityFrameworkCore;
namespace MyWebApp.Models
{
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Product> Products { get; set; }
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
}
การตั้งค่า EF Core ใน Startup.cs
using Microsoft.EntityFrameworkCore;
using MyWebApp.Models;
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}
การตั้งค่า Connection String ใน appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyWebAppDB;Trusted_Connection=True;MultipleActiveResultSets=true"
},
...
}
ASP.NET Core เป็นเฟรมเวิร์คที่ทรงพลังและยืดหยุ่นสำหรับการพัฒนาเว็บแอปพลิเคชันที่มีประสิทธิภาพและสามารถขยายตัวได้ดี การรวมการใช้งานของ MVC, Web API, Razor Pages และฟีเจอร์ต่าง ๆ ของ .NET ช่วยให้การพัฒนาเว็บแอปพลิเคชันเป็นไปได้อย่างราบรื่นและมีประสิทธิภาพ
แนะนำคอร์สเรียน
เรียนพื้นฐานภาษา C#
หลังจากนั้นมาทำลองหัดเขียน ASP.NET Web API กันนะครับ
เริ่มต้นอีกครั้งกับ .NET 6 Web API
หลังจากนั้นมาลองหัดเขียน Clean Architecture กันครับ
Clean architecture from scratch with .NET7
Part#1
Part#2
Bonus Track
แนะนำ Beginner Playlist สำหรับท่านใดที่สนใจพัฒนาโปรแกรมด้วย .NET Technology จาก Microsoft นะครับ เรียนกันช่วงปิดปีใหม่สะดวกเลย เนื้อหาครอบคลุมทั้ง AI, IoT, Cloud, Desktop App, Mobile App, Web App
- #1: ทำความรู้จักกับ .NET กันก่อน
- #2: เลือก Tool VS Code
- #3: หรือเลือก Tool VS Studio
- #4: หัดเขียนโปรแกรมด้วยภาษา C# ที่
- #5: ศึกษา NuGet Package
- #6: ศึกษา .NET MAUI เพื่อพัฒนา Desktop App
- #7: Generative AI with .NET for Beginners
- #8: .NET IoT for Beginners
- #9: Entity Framework Core for Beginners
- #10: Web APIs for Beginners
- #11: ASP.NET Core for Beginners
- #12: .NET on Azure for Beginners
- #13: Upgrade Applications with .NET Modernization for Beginners
Awesome .NET