Blazor กับ API Starter! - (.net 7)?
นี่คือโครงการเริ่มต้น / เทมเพลตซึ่งประกอบด้วยส่วนหน้า Blazor และแบ็กเอนด์ ASP.NET Core Backend แอพ Blazor ในเทมเพลตนี้ให้บริการจากเซิร์ฟเวอร์ Core ASP.NET
เมื่อเรียกใช้โซลูชันนี้โปรดตั้งค่าโครงการเซิร์ฟเวอร์เป็นโครงการเริ่มต้นหากคุณใช้งานนี้ใน Visual Studio หรือหากเรียกใช้ผ่านรหัส VS โปรดซีดีลงในโฟลเดอร์ Server Project และเรียกใช้ dotnet run ใน CMD/PowerShell/Terminal ของคุณ
BTW รู้สึกอิสระที่จะส้อม/โคลน repo นี้และรีมิกซ์เพื่อสร้างตัวเริ่มต้นของคุณเองเช่นการสลับ EF Core สำหรับ dapper หรือไลบรารี ORM หรือการเข้าถึงข้อมูลอื่น ๆ ที่คุณต้องการ
สิ่งที่คุณต้องใช้ในการเรียกใช้โครงการเริ่มต้นนี้?
- NET 7 SDK (https://dotnet.microsoft.com/en-us/download/dotnet/7.0)
- VS CODE หรือ Visual Studio 2022 (ปัจจุบันล่าสุดอย่าลังเลที่จะใช้ตัวอย่างอย่างไรก็ตามฉันได้ทดสอบสิ่งนี้ในปัจจุบันเท่านั้น)
- ควรจะสามารถทำงานบน Windows/Mac/Linux (ฉันยังไม่ได้ทดสอบสิ่งนี้เพียงแค่วิ่งออกจากความสามารถของ. NET 7 ในการเป็นแพลตฟอร์มข้าม) หากไม่โปรดแจ้งให้เราทราบเนื่องจากอาจมีการตั้งค่าหรือการกำหนดค่าโง่ ๆ
อย่างรวดเร็วโครงการนี้ประกอบด้วย:
- ไคลเอนต์ Blazor (มีชิ้นส่วนโครงการ Blazor เริ่มต้นลบบิต Weatherapi)
- ASP.NET Core Server (API)
- โครงการที่ใช้ร่วมกัน (สำหรับการแบ่งปันรหัสและบริการระหว่างส่วนหน้าและแบ็กเอนด์)
- ทดสอบไคลเอนต์โครงการเซิร์ฟเวอร์และแชร์
แล้วมีการกำหนดค่าอะไร?
- โครงการทั้งหมดมีการกำหนดเป้าหมาย. NET 7
- โครงการทดสอบทั้งหมดได้รับการกำหนดค่าให้ใช้ XUNIT และมี MOQ สำหรับการเยาะเย้ยการพึ่งพา
- โครงการทดสอบ Blazor มี bunit สำหรับหน้าทดสอบและส่วนประกอบ
- โครงการทดสอบเซิร์ฟเวอร์มีอุปกรณ์ติดตั้งที่สร้างฐานข้อมูล Entity Framework Core 7 ในหน่วยความจำในหน่วยความจำ (ดูตัวอย่างในไฟล์ InMemoryDbtests.cs ของเซิร์ฟเวอร์ทดสอบ) สิ่งนี้จะช่วยให้คุณทดสอบโดยไม่ต้องใช้ DB ทางกายภาพ!
- โครงการไคลเอนต์มีตัวอย่างของ http-client ที่พิมพ์เพื่อโทรไปยังเซิร์ฟเวอร์ซึ่งสามารถฉีดเข้าไปในส่วนประกอบและหน้าของคุณ
- โครงการเซิร์ฟเวอร์มีตัวอย่างของ:
- คอนโทรลเลอร์
- บริการ
- มิดเดิลแวร์
- dbcontext (ef core 7) ซึ่งเชื่อมโยงกับ sqlite db ที่เรียกว่า example.db (นี่คือการทำงาน DB ที่ทำงานออกจากกล่องรู้สึกอิสระที่จะกำหนดเป้าหมายใหม่ที่ EF-core รองรับ!)
- การใช้งาน Automapper
เทคโนโลยี / libs รวมอยู่อย่างรวดเร็ว
- Entity Framework Core 7
- MOQ
- ผู้ใช้งานอัตโนมัติ
- FluentValidation & Blazored.fluentValidation (ซึ่งดีมากฉันได้มีส่วนร่วม: D, FluentValidation คือการตั้งค่าของฉันสำหรับการแลกเปลี่ยน System.ComponentModel.Dataannotations Decorators)
- bunit
- Xunit
- System.text.json
- microsoft.extensions.http (สำหรับการกำหนดค่า httpClient และ httpmessageHandler ใน ihttpClientfactory สำหรับฉันนี่เป็นบริการที่ดี AddhttpClient สำหรับการเพิ่ม httpclients เพื่อ di ฉันใช้ในไคลเอนต์/โปรแกรมการเริ่มต้น)