قاعدة بيانات Microservices ASP.NET الأساسية تحتوي على أمثلة من العالم الحقيقي (CRUD، والمصادقة، والأنماط المتقدمة، وما إلى ذلك) التي تلتزم بمواصفات RealWorld وواجهة برمجة التطبيقات (API).
تم إنشاء قاعدة التعليمات البرمجية هذه لتوضيح بنية الخدمة الصغيرة الكاملة والمبنية باستخدام ASP.NET Core . يتضمن gRPC والتصميم المستند إلى المجال وCQRS والوسيط والوكيل والعديد من الأنماط الأخرى.
إنه يلتزم تمامًا بأدلة نمط مجتمع ASP.NET Core وأفضل الممارسات.
لمزيد من المعلومات حول كيفية عمل ذلك مع الواجهات الأمامية/الواجهات الخلفية الأخرى، توجه إلى RealWorld repo.
بنية الخدمات الصغيرة - النمط المعماري الذي يوفر مجموعة من الخدمات القابلة للصيانة والاختبار والمترابطة بشكل فضفاض والتي يمكن نشرها بشكل مستقل وتنظيمها حول قدرات الأعمال. يتم وضع طبقة الخدمة أعلى نماذج المجال.
التصميم المعتمد على المجال - يرشدنا إلى التركيز على الأجزاء الصغيرة والفردية والمستقلة تقريبًا من نطاقنا، كما أن عمليتنا والبرنامج الناتج أكثر مرونة. يمكننا بسهولة نقل أو تعديل الأجزاء الصغيرة دون أي آثار جانبية.
الاتصال عبر gRPC - طريقة جديدة ومتنامية لتوصيل الخدمات عبر الأنظمة الأساسية واللغات.
الوكيل البعيد - يعمل كمورد محلي مع إخفاء تفاصيل كيفية الاتصال بمورد بعيد عبر الشبكة. يتصرف كبوابة API بين العميل والخدمات.
تطبيق المبادئ الوظيفية - يمكن أن تمنحك البرمجة الوظيفية في لغة C# نظرة ثاقبة حول كيفية تصرف برامجك. المواضيع المحددة هنا هي الهندسة غير القابلة للتغيير، وتجنب الاستثناءات، والهوس البدائي، وكيفية التعامل مع حالات الفشل وأخطاء الإدخال، والمزيد.
الفصل بين مسؤولية استعلام الأوامر (CQRS) - يشجعك على فك تشابك نموذج مجال واحد وموحد وإنشاء نموذجين: أحدهما للتعامل مع الأوامر والآخر للتعامل مع الاستعلامات. يتيح لنا CQRS اتخاذ قرارات مختلفة فيما يتعلق بالقراءة والكتابة، وهو ما يجلب بدوره ثلاث فوائد: قابلية التوسع، والأداء، وأكبرها، البساطة. يقوم CQRS بتوسيع CQS إلى المستوى المعماري.
MediatR - يضمن توجيه الرسائل إلى الأماكن المناسبة. لذلك قد تفكر في الأمر على أنه نظام مراسلة في الذاكرة.
Docker - تمثل الحاويات نوعًا عالي الكثافة من "المحاكاة الافتراضية" التي يمكنها تلبية احتياجات سيناريوهات معينة بشكل أفضل من برامج Hypervisor التقليدية.
Travis CI - خدمة التكامل المستمر المستخدمة لبناء واختبار المشاريع. يكتشف Travis CI تلقائيًا متى تم تنفيذ الالتزام ودفعه إلى مستودع GitHub الذي يستخدم Travis CI، وفي كل مرة يحدث ذلك، سيحاول إنشاء المشروع وإجراء الاختبارات.