git clone [email protected]:shengyu-kmust/SnailAspNetCoreFramework.git
git clone [email protected]:shengyu-kmust/Snail.git
cd SnailAspNetCoreFramework
dotnet build
ต่อไปนี้เป็นแผนภาพสาธิตตามเวอร์ชัน v1.0
--ApplicationCore // เลเยอร์นามธรรมหลักใช้โหมดสถาปัตยกรรมที่ชัดเจนและไม่ขึ้นอยู่กับเลเยอร์อื่น ๆ อีกสามโปรเจ็กต์ทั้งหมดอาศัยไลบรารีประเภทนี้และรับผิดชอบคำจำกัดความสาธารณะ เช่น อินเทอร์เฟซ ค่าคงที่ การแจงนับ dto เอนทิตี ฯลฯ
----Const // คำจำกัดความคงที่ เช่น ค่าคงที่การกำหนดค่า ค่าคงที่ชื่อเหตุการณ์
----Dtos // dtos ทั้งหมด
----เอนทิตี // เอนทิตีทั้งหมด
----แจกแจง // แจงนับ
----IServices // คำจำกัดความเชิงนามธรรมของชั้นบริการ
----ยูทิลิตี้ // คลาสช่วยเหลือ
--โครงสร้างพื้นฐาน //ชั้นโครงสร้างพื้นฐานให้บริการข้อมูลสำหรับชั้นบน (เช่นชั้นบริการและชั้นแอปพลิเคชัน)
---- ข้อมูล / config // ฐานข้อมูลเอนทิตีเฟรมการกำหนดค่า API ได้อย่างคล่องแคล่ว
----EFValueConverter // การแปลงระหว่างประเภทฐานข้อมูลเอนทิตีเฟรมเวิร์กและประเภท clr เช่นการแปลงการแจงนับ
----การโยกย้าย //สร้างไดเร็กทอรีสำหรับการย้ายโค้ดเอนทิตีเฟรมเวิร์กก่อน
--Service // Service layer ใช้เพื่อใช้อินเทอร์เฟซบริการใน ApplicationCore ซึ่งเป็นเลเยอร์หลักสำหรับการนำตรรกะของแอปพลิเคชันไปใช้
----Cache // การใช้งานแคชซึ่งจะถูกลบและแยกไปยังโปรเจ็กต์ Snail ในภายหลัง
----Interceptor //Interceptor ถูกใช้งานโดยค่าเริ่มต้น
----BaseService.cs //คลาสฐานของแต่ละบริการประกอบด้วยวิธีการทั่วไปของแต่ละบริการ เช่น CRUD
----InitDatabaseService.cs // รับผิดชอบในการเริ่มต้นข้อมูลฐานข้อมูล
----InterceptorService.cs //คลาสฐาน Interceptor
--Web // รับผิดชอบการประมวลผลอินพุตและเอาท์พุตของพารามิเตอร์อินเทอร์เฟซที่เกี่ยวข้องทั้งหมด (เช่น การตรวจสอบพารามิเตอร์ การจองรูปแบบเอาต์พุต ฯลฯ)
----AutoFacModule // การกำหนดค่าการฉีด autofac
----AutoMapperProfiles // การกำหนดค่า automapper
----ClientApp // โครงการส่วนหน้า
------ build // ไดเร็กทอรีเอาต์พุตที่สร้างโดยการคอมไพล์ส่วนหน้า
------เยาะเย้ย // เยาะเย้ยส่วนหน้า
------src // รหัสหลักส่วนหน้า
----CodeGenerater //โมดูล T4 และตรรกะที่เกี่ยวข้องสำหรับการสร้างโค้ด
----ConfigureServicesExtensions // ส่วนขยายการฉีด ServiceProvider เพื่อหลีกเลี่ยงการเขียนลงในไฟล์เริ่มต้น
----คอนโทรลเลอร์ //คอนโทรลเลอร์
----docs // ชุดเอกสาร
----Dto // คลาส dto จะถูกใช้ในเว็บเลเยอร์เท่านั้น
----ตัวกรอง // ตัวกรอง
----ฮับ // ผู้ส่งสัญญาณ
---- การอนุญาต // การใช้งานการอนุญาตเริ่มต้น
----staticFile // ใช้สำหรับจัดเก็บไฟล์ที่อัพโหลด
มีการใช้ DDD แต่ต้องใช้เทคโนโลยีที่แตกต่างกันของ DDD ตามขนาดของโครงการ โดยทั่วไปจะแบ่งออกเป็นโครงการดังต่อไปนี้
ขับเคลื่อนโดยโดเมน หากขึ้นอยู่กับเลเยอร์อื่นๆ ก็ขึ้นอยู่กับอินเทอร์เฟซของเลเยอร์ที่เกี่ยวข้องมากกว่าการใช้งาน
ใช้พื้นที่เก็บข้อมูลและหน่วยของโหมดการทำงาน แต่ใช้โหมดพื้นที่เก็บข้อมูลที่มาพร้อมกับ EF
1. git clone โปรเจ็กต์นี้ 2. กำหนดค่า codeGenerate.json 3. รันโปรเจ็กต์นี้ และหลังจากเข้าสู่ระบบแบบผยองแล้ว ให้รันอินเทอร์เฟซ codeGenerate 4. รัน add-migration 5. เริ่มโปรเจ็กต์
บล็อกซีรีส์ SnailAspNetCoreFramework Framework
1. บทนำและแนวคิดการออกแบบทั่วไปของแต่ละโครงการและไดเร็กทอรีภายในกรอบงาน - SnailAspNetCoreFramework กรอบการพัฒนาอย่างรวดเร็ว
2. การตรวจสอบอินพุตอินเทอร์เฟซ รูปแบบเอาต์พุต และการจัดการข้อยกเว้น—การออกแบบแบ็คเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็วของ SnailAspNetCoreFramework
3. การออกแบบการอนุญาตสากล - การออกแบบแบ็คเอนด์ของเฟรมเวิร์กการพัฒนาอย่างรวดเร็วของ SnailAspNetCoreFramework
4. วิธีการจัดเตรียมเอกสารอินเทอร์เฟซที่ดี (Swagger) ให้กับส่วนหน้า - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
5. การใช้แคชในสถานการณ์ต่างๆ—การออกแบบแบ็กเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็วของ SnailAspNetCoreFramework
6. การออกแบบ AOP ที่ใช้ Castle และแคชทั่วไป ประสิทธิภาพ การใช้งานตัวสกัดกั้นบันทึก - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
7. รู้เบื้องต้นเกี่ยวกับการฉีดพึ่งพา - autofac - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์กรอบการพัฒนาอย่างรวดเร็ว
8. เหตุใดจึงต้องใช้ Eventbus และวิธีใช้งาน - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
9. รู้เบื้องต้นเกี่ยวกับ Nlog ส่วนประกอบบันทึก - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
10.การแนะนำ Mediatr - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์กรอบการพัฒนาอย่างรวดเร็ว
11. การออกแบบ CRUD ที่เป็นสากลสำหรับตัวควบคุม บริการ และเลเยอร์ Dal—การออกแบบแบ็กเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็วของ SnailAspNetCoreFramework
12. เครื่องมือทำแผนที่วัตถุอัตโนมัติ - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์กรอบการพัฒนาอย่างรวดเร็ว
13. วิธีตรวจสอบคำสั่ง sql ที่สร้างโดย EF - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
14. รู้เบื้องต้นเกี่ยวกับวิธีการปรับใช้ต่างๆ ของ .net core - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์ของเฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
15. ตัวส่งสัญญาณการสื่อสารแบบเรียลไทม์ - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์กรอบการพัฒนาอย่างรวดเร็ว
16. วิธีใช้โค้ด ef ก่อนเพื่อวนซ้ำเวอร์ชันฐานข้อมูลของโปรเจ็กต์อย่างต่อเนื่อง - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
17. ข้อมูลเบื้องต้นเกี่ยวกับฟังก์ชันการสร้างโค้ดอัตโนมัติ—SnailAspNetCoreFramework การออกแบบส่วนหลังของเฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
18. จะติดตามได้อย่างไรว่าแต่ละฟังก์ชั่นของโปรเจ็กต์เป็นปกติ (HealthCheck) - SnailAspNetCoreFramework การออกแบบแบ็คเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
19. ข้อมูลเบื้องต้นเกี่ยวกับแฮงก์ไฟร์สำหรับงานตามกำหนดเวลา—การออกแบบแบ็กเอนด์เฟรมเวิร์กการพัฒนาอย่างรวดเร็วของ SnailAspNetCoreFramework
20. การแนะนำโดยรวมเกี่ยวกับฟรอนต์เอนด์—SnailAspNetCoreFramework การออกแบบฟรอนต์เอนด์ของเฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
21. ไม่มีการร้องขออินเทอร์เฟซแบ็คเอนด์อีกต่อไป (ใช้ MOCK) - SnailAspNetCoreFramework การออกแบบส่วนหน้าของเฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
22. การควบคุมการอนุญาตส่วนหน้า - SnailAspNetCoreFramework การออกแบบส่วนหน้าของเฟรมเวิร์กการพัฒนาอย่างรวดเร็ว
23. วิธีหลีกเลี่ยงการเขียนโค้ด CRUD ส่วนหน้าซ้ำๆ (การแนะนำและการใช้งานส่วนประกอบ SnailXXX ต่างๆ ในส่วนหน้า) - การออกแบบส่วนหน้าของเฟรมเวิร์กการพัฒนาอย่างรวดเร็วของ SnailAspNetCoreFramework
24. ข้อมูลเบื้องต้นเกี่ยวกับการขอพรอกซี - SnailAspNetCoreFramework การออกแบบส่วนหน้าของเฟรมเวิร์กการพัฒนาอย่างรวดเร็ว