Skip to content

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 เพื่อสร้างโปรเจคใหม่

bash
dotnet new mvc -o MyWebApp
cd MyWebApp
dotnet run

3. โครงสร้างโปรเจค ​

plaintext
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

csharp
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 ​

html
@{
    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

csharp
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 ​

bash
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

การสร้าง DbContext และ Model ​

csharp
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 ​

csharp
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 ​

json
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyWebAppDB;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  ...
}

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

แนะนำคอร์สเรียน ​

เรียนพื้นฐานภาษา C#

Saladpuk.com

หลังจากนั้นมาทำลองหัดเขียน 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

Awesome .NET