Code First .NET Wep App and API with Login (โค้ดนิดเดียว)

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.ย. 2024
  • ตัวอย่างการสร้าง Web Application พร้อม API ในตัว มีระบบ Login ต่อฐานข้อมูลเรียบร้อย ไม่ต้องจัดการฐานข้อมูล ให้โค้ดสร้างออกมา และเขียนโค้ดน้อยมากใช้การสร้างแบบอัตโนมัติเป็นส่วนใหญ่
    เหมาะสำหรับคนที่หัดเขียนเวปและ API ด้วย .NET ที่พอจะมีความเรื่องเวปและ API นิดๆหน่อย ต้องการเรียนอย่างรวดเร็ว ไม่ต้องจำเยอะ สามารถศึกษารูปแบบการเขียนที่ดีได้จากโค้ดที่สร้างขึ้นมา ในวีดีโอ API ยังไม่ได้ใช้ JWT Authentication ไว้จะทำวีดีโอให้ในภายหลัง
    [หัวข้อในวีดีโอ]
    1:55 สร้าโปรเจ็ก ASP.NET Core Web APP (MVC)
    9:44 Scaffolded หน้า Account/Register ออกมาแก้ไข
    13:40 Identity Model Customization แก้ไขข้อกำหนดรหัสผ่าน
    19:52 ทำ Authorization ให้หน้าเวป
    20:57 เพิ่มฟังก์ชันการ Search ทำง่ายๆโค้ดนิดหน่อย
    27:36 สร้าง Web API โดยการก็อปปี้จาก Controller เดิมเลย
    37:03 ทดสอบ Web API ด้วย Postman
    43:40 ทำการจัดการ Web API ที่ต้อง Authorize (Return 401)
    วีดีโอนี้ยังขาดการ Authentication ผ่าน API ไว้โอกาสหน้าจะทำวีดีโอเกี่ยวกับ Web API ให้ครับ
    [จุดที่ควรดู]
    ให้ดูโครงสร้างตารางหลัง Update-Database (ในวีดีโอไม่ได้เอาให้ดู)
    หน้า Index Create Edit Delete แสดงวิธีการใช้ฐานข้อมูลด้วย Entity Framework
    หน้า scaffold ของ identity แสดงวิธีการใช้ identity ในขั้นตอนต่างๆ
    การแก้ให้ลงทะเบียนผู้ใช้โดยไม่ต้องใช้อีเมลล์
    ดูวิธีการแสดงส่ง Status Code แบบต่างๆจาก API
    [ซอฟต์แวร์ที่ใช้]
    - Visual Studio 2019
    - .NET 5,
    - SQL Server + Entity Framework
    - ASP.Net Identity (คนละตัวกับ Microsoft identity platform นะ)
    [ข้อมูลอ่านเพิ่มเติม]
    Entity Framework Core
    www.learnentit...
    การใช้งาน scaffold สำหรับ Identity และเอกสารที่จำเป็น
    docs.microsoft...
    ข้อดีในการใช้ Visual Studio 2019 คือมันจะติดตั้งแพ็กเกจที่จำเป็นต่างๆให้อัตโนมัติ ถ้าเข้าใจหลักการแล้วสามารถปรับใช้กับ Visual Studio Code หรือฐานข้อมูลตัวอื่นได้ไม่ยากนัก
    === สำหรับคนไม่ได้ใช้ Visual Studio 2019 ===
    [สร้างโปรเจ็กและเรียกใช้งาน]
    dotnet tool install --global dotnet-ef
    dotnet new mvc -n "SampleWebApp" -lang "C#" -au individual
    cd SampleWebApp
    code .
    dotnet build
    dotnet run
    [ติตตั้งแพ็กเกจที่จำเป็น]
    dotnet tool install -g dotnet-aspnet-codegenerator
    dotnet add package Microsoft.VisualStudio.web.CodeGeneration.Design
    dotnet add package Microsoft.Entity.FrameWorkCore.Design
    dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore
    dotnet add package Microsoft.Entity.FrameWorkCore.SqlServer
    dotnet add package Microsoft.Entity.FrameWorkCore.Tools
    [ใช้งาน Identity]
    dotnet aspnet-codegenerator identity -h
    dotnet aspnet-codegenerator identity --useDefaultUI
    [จัดการฐานข้อมูล]
    dotnet ef migrations add "Initial Migration"
    dotnet ef database update

ความคิดเห็น • 6

  • @sathapatrakphanitmanee6333
    @sathapatrakphanitmanee6333 3 ปีที่แล้ว

    ขอบคุณครับ

  • @practiceonly8573
    @practiceonly8573 11 หลายเดือนก่อน

    คลิปนี้เป็นการสร้างแบบ Local API ใช่ไหมคะ พอดีพึ่งหัดเขียนโค้ดค่ะ

    • @schooltechx
      @schooltechx  11 หลายเดือนก่อน +1

      ไม่แน่ใจว่า Local API ในความหมายของคุณคืออะไรนะครับ ในตัวอย่างทำสองอย่าง
      - MVC ใช้ Wizard ช่วยสร้างให้ได้หน้า UI (Razer page)และ API(Controller) ให้เรียกใช้ในโปรแกรมแบบง่ายๆ
      - Web API ก็อปจาก Controller มาแก้
      ตามความเห็นของผมเองไม่เหมาะกับการหัดเขียนเท่าไหร่เพราะมันสร้างโน่นนี้ให้อัตโนมัติทำให้ไม่เข้าใจเบื้อหลังว่าทำงานอย่างไร เจอปัญหาก็จะแก้ไม่ได้ แต่ก็ขึ้นงานได้เร็ว ลองดูใน Playlist .NET แล้วดูพวก Minimal API จะเห็นที่มาที่ไปชัดเจนกว่า ถ้าหัดเขียนโปรแกรมแล้วไม่จำเป็นต้องเป็น .NET ลองดุ Playlist หัวข้อ Svelte ก็จะง่ายเป็นเร็วทำจนสามารถขึ้นงานทั้งระบบ แล้วค่อยกลับมาหัด .NET ก็ได้

  • @fast2965
    @fast2965 2 ปีที่แล้ว

    ทำไมมันขึ้นเออเร่อไม่มีเลอ

    • @fast2965
      @fast2965 2 ปีที่แล้ว

      there eas an eror running the selected code geneator start index cannot be larger than length of string parameter start index
      มันขึ้นเออเร่อแบบนี้ต้องทำยังไงคะอ่านแล้วงงค่ะ

    • @schooltechx
      @schooltechx  2 ปีที่แล้ว

      @@fast2965 หมายถึงตอน Scaffloded item หรือเปล่าครับ มันอาจจะเป็นบักของรุ่น dotnet เดี๋ยวผมลองทำกับ version 6 ดู มีคนเจอปัญหาเดียวกันนี้แต่คนอื่นเขาทำแล้วไม่มีปัญหาครับ ตอนนี้อาจจะลองอัปเดต VS Code ดู แล้วลองทำอีกรอบ
      docs.microsoft.com/en-us/answers/questions/814987/aspnet-mvc-6-cannot-use-new-scaffloded-item.html