โค้ดเบส ASP.NET Core ของ Microservices ที่มีตัวอย่างในโลกแห่งความเป็นจริง (CRUD, การรับรองความถูกต้อง, รูปแบบขั้นสูง ฯลฯ) ที่เป็นไปตามข้อกำหนดเฉพาะและ API ของ RealWorld
โค้ดเบสนี้ถูกสร้างขึ้นเพื่อสาธิตสถาปัตยกรรมไมโครเซอร์วิสที่ครบครันซึ่งสร้างด้วย ASP.NET Core ประกอบด้วย gRPC, การออกแบบที่ขับเคลื่อนด้วยโดเมน, CQRS, Mediator, Proxy และรูปแบบอื่นๆ อีกมากมาย
เป็นไปตามคำแนะนำและแนวทางปฏิบัติที่ดีที่สุดของชุมชน ASP.NET Core อย่างสมบูรณ์
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานร่วมกับส่วนหน้า/ส่วนหลังอื่นๆ โปรดไปที่ Repo ของ RealWorld
สถาปัตยกรรมไมโครเซอร์วิส - รูปแบบสถาปัตยกรรมที่ให้คอลเลกชันบริการที่สามารถบำรุงรักษาได้สูง ทดสอบได้ และเชื่อมโยงอย่างหลวมๆ ซึ่งสามารถปรับใช้และจัดระเบียบโดยอิสระตามความสามารถทางธุรกิจ เลเยอร์บริการถูกวางไว้ที่ด้านบนของโมเดลโดเมน
การออกแบบที่ขับเคลื่อนด้วยโดเมน - แนะนำให้เรามุ่งเน้นไปที่โดเมนของเราที่มีขนาดเล็ก เป็นรายบุคคล และเกือบจะเป็นอิสระ กระบวนการของเราและซอฟต์แวร์ที่ได้นั้นมีความยืดหยุ่นมากขึ้น เราสามารถเคลื่อนย้ายหรือดัดแปลงชิ้นส่วนเล็กๆ ได้อย่างง่ายดาย โดยไม่มีผลข้างเคียง
การสื่อสารผ่าน gRPC - วิธีใหม่ที่เติบโตในการเชื่อมต่อบริการในรูปแบบข้ามแพลตฟอร์มและข้ามภาษา
พร็อกซีระยะไกล - ทำหน้าที่เหมือนทรัพยากรในเครื่องโดยซ่อนรายละเอียดวิธีเชื่อมต่อกับทรัพยากรระยะไกลผ่านเครือข่าย มันทำงานเป็นเกตเวย์ API ระหว่างไคลเอนต์และบริการ
การใช้ Functional Principles - การเขียนโปรแกรมเชิงฟังก์ชันใน C# สามารถให้ข้อมูลเชิงลึกว่าโปรแกรมของคุณจะทำงานอย่างไร หัวข้อเฉพาะในที่นี้คือสถาปัตยกรรมที่ไม่เปลี่ยนรูปแบบ การหลีกเลี่ยงข้อยกเว้น ความหลงใหลแบบเดิมๆ วิธีจัดการกับความล้มเหลวและข้อผิดพลาดในการป้อนข้อมูล และอื่นๆ
Command-Query Responsibility Segregation (CQRS) - สนับสนุนให้คุณแก้ไขโมเดลโดเมนแบบรวมเดียวและสร้างสองโมเดล: หนึ่งสำหรับการจัดการคำสั่ง และอีกอันหนึ่งสำหรับจัดการการสืบค้น CQRS ช่วยให้เราสามารถตัดสินใจที่แตกต่างกันสำหรับการอ่านและเขียน ซึ่งจะนำมาซึ่งประโยชน์สามประการ: ความสามารถในการปรับขนาด ประสิทธิภาพ และสิ่งที่ใหญ่ที่สุดคือความเรียบง่าย CQRS ขยาย CQS ไปสู่ระดับสถาปัตยกรรม
MediatR - ตรวจสอบให้แน่ใจว่าข้อความถูกส่งไปยังตำแหน่งที่เหมาะสม ดังนั้นคุณอาจคิดว่ามันเป็นระบบข้อความในหน่วยความจำมากกว่าเล็กน้อย
นักเทียบท่า - คอนเทนเนอร์เป็นตัวแทนของ "การจำลองเสมือน" ที่มีความหนาแน่นสูงกว่า ซึ่งสามารถตอบสนองความต้องการของสถานการณ์บางอย่างได้ดีกว่าไฮเปอร์ไวเซอร์แบบเดิม
Travis CI - บริการบูรณาการอย่างต่อเนื่องที่ใช้ในการสร้างและทดสอบโครงการ Travis CI จะตรวจจับโดยอัตโนมัติเมื่อมีการคอมมิตและพุชไปยังพื้นที่เก็บข้อมูล GitHub ที่ใช้ Travis CI และทุกครั้งที่สิ่งนี้เกิดขึ้น ก็จะพยายามสร้างโปรเจ็กต์และดำเนินการทดสอบ