Gridwich هو حل .NET 6 يتكون من مشاريع متعددة. من المهم لمشاريع التعليمة البرمجية أن يكون لها اصطلاح تسمية للمساعدة في فهم بنية التطبيق، والعثور على التعليمة البرمجية ذات الصلة بسرعة، وتقليل الوقت المستغرق في أمور غير مهمة عند تسمية المشروع.
يتكون نظام Gridwich من ثلاثة مكونات رئيسية، Core
وHost.FunctionApp
وSagaParticipants
.
يحتوي المشروع
Core
على واجهات ونماذج وعناصر نقل بيانات (DTOs) وفئات أساسية على مستوى النظام.تشتمل مشروعات
Core.{Technology}
على فئات العملاء والوظائف الأساسية التي تستخدمها تطبيقات الإمكانيات المتنوعة.مشروع
Host.FunctionApp
هو الواجهة العامة للنظام ككل.توفر مشروعات
SagaParticipants
إمكانات الوظائف الخارجية مثل التحليل والترميز والنشر والتخزين.تصف مشروعات
SagaParticipants.{Capability}
الواجهات والاستثناءات والأحداث التي تنتجها إحدى الإمكانات.توفر مشروعات
SagaParticipants.{Capability}.{Technology}
التنفيذ الفعلي للقدرة، ومستمعي الأحداث، والوظائف الخاصة بالقدرات.
شبكة Gridwich Technology
هي تنفيذ فعلي لقدرة أو وظيفة أساسية. يمكن أن يكون المشروع {Technology}
إما ضمن مساحة الاسم واسم المشروع Core
أو SagaParticipants.{Capability}
، اعتماداً على الاستخدام.
إنشاء المشروع
يمكنك استخدام شجرة القرارات التالية عند تسمية مشروع Gridwich جديد:
هل التعليمة البرمجية اتفاق، مثل الفئات الأساسية، أو الواجهات، أو النماذج، أو DTOs، أو ملحق الخدمة؟
نعم: هل التعليمة البرمجية تتعلق بقدرة أو خدمة معينة؟
- نعم:
Gridwich.SagaParticipants.{Capability}
- لا:
Gridwich.Core
- نعم:
لا: هل التعليمة البرمجية مرتبطة بمستمع حدث أو تنفيذ لتقنية معينة؟
نعم: هل ستستخدم أكثر من خدمة التعليمة البرمجية؟
- نعم، على سبيل المثال برنامج تضمين SDK:
Gridwich.Core.{Technology}
- لا:
Gridwich.SagaParticipants.{Capability}.{Technology}
- نعم، على سبيل المثال برنامج تضمين SDK:
لا: هل التعليمة البرمجية مرتبطة بقدرة معينة؟
نعم:
Gridwich.SagaParticipants.{Capability}
لا: هل التعليمة البرمجية هي نقطة نهاية تطبيق Azure Function؟
- نعم:
Gridwich.Host.FunctionApp
- لا:
Gridwich.Core
- نعم:
بنية المشروع
تحتوي كل حزمة على دليلين فرعيين:
- يحتوي
src
على تعليمة برمجية للإنتاج غير التجريبي. - يحتوي
tests
على اختبارات الوحدة.
يحتوي كل مشروع على دليل فرعي tests
، ولكن إذا لم تكن هناك اختبارات وحدة للحزمة، فقد يكون الدليل فارغاً.
يحتوي كل دليل فرعي على C# أو ملفات أخرى لإنشاء التعليمة البرمجية، بالإضافة إلى ملف .csproj. يتبع اسم الملف .csproj اسم الحزمة، على سبيل المثال:
Gridwich.Host.FunctionApp/src/Gridwich.Host.FunctionApp.csproj
Gridwich.Host.FunctionApp/tests/Gridwich.Host.FunctionAppTests.csproj
تتبع مساحات أسماء الرموز التي تستخدمها الحزم أيضاً هذا الاصطلاح، على سبيل المثال:
Gridwich.Host.FunctionApp
Gridwich.Host.FunctionAppTests
أثناء دورات الإنشاء والاختبار، تظهر أدلة عابرة مثل bin
وobj
وTestResults
، والتي لا تحتوي على عناصر مؤهلة git. تنظف معالجة dotnet clean
الأدلة المؤقتة.
أسماء المشاريع ومساحات الأسماء
أسماء مشاريع Gridwich ومساحات الأسماء لها الخصائص التالية.
مساحات أسماء Core وSagaParticipants Technology
لا تتضمن مساحات الأسماء Gridwich.Core.{Technology}
الغرض من التقنية، وذلك أساساً لتجنب . مساحات الأسماء Core
هي مشروعات داخلية تستخدمها مشروعات SagaParticipants
أو Host.FunctionApp
، ولا تحتاج إلى أسماء محددة جيداً.
على سبيل المثال، Gridwich.Core.EventGrid
يمكن أن يكون Gridwich.Core.Events.EventGrid
المشروع أو Gridwich.Core.Messaging.EventGrid
. ومع ذلك، فإن أسماء المشروع Core
تشير بالفعل إلى أن التقنيات تساهم في النظام الأساسي.
يمكن أن تساهم التكنولوجيا أيضاً في النظام بأكثر من طريقة. على سبيل المثال، يمكنك الاتصال بـ Redis بمخزن بيانات أو وسيلة نقل رسائل، اعتماداً على الاستخدام، ولكنه يستخدم دائماً نفس برنامج تضمين SDK.
تستخدم مساحات أسماء التقنيات Gridwich.SagaParticipants.Encode.CloudPort
وGridwich.SagaParticipants.Encode.Flip
مكونات من مساحة الاسم Gridwich.SagaParticipants.Encode
. هذه التعليمة البرمجية ليست ضمن مساحة الاسم Gridwich.Core.Encode
لأنه خاص بمهام الترميز، ولا يتقاطع مع إمكانيات أخرى مثل النشر.
حزم SagaParticipants
لا تعالج كل حزمة Gridwich.SagaParticipants
أحداثاً خارجية. توفر بعض الحزم ضمن Gridwich.SagaParticipants
وظائف لمشاركي saga الآخرين الذين يعالجون الطلبات الخارجية.
إلى جانب حزم Gridwich.SagaParticipants.Encode
الذي يشارك التعليمة البرمجية عبر حزم تقنية ترميز متعددة، هناك أيضاً حزم متخصصة مثل Gridwich.SagaParticipants.Encode.TelestreamCloud
. توفر حزمة Telestream وصول Gridwich إلى نظام Vantage Telestream خارجي. يستخدم المشاركون في ملحمة Flip وCloudPort حزمة Telestream لتوفير معالجة الطلبات الخاصة بهم.
أسماء الحزم ومساحات الأسماء الأخرى
للحفاظ على عبارات using
إلى الحد الأدنى، لا يقصر Gridwich محتويات الحزمة على مساحة الاسم التي يشير إليها اسم الحزمة. تساهم بعض الحزم في كيانات لمساحات أسماء أخرى. على سبيل المثال، تساهم الحزمة Gridwich.Core.Tests
في فئة Gridwich.Core.Helpers.TestHelpers
.
ومع ذلك، تُنشئ كل حزمة DLL يطابق اسم الحزمة للتعليمة البرمجية للإنتاج في src
، ومكتبة DLL لاختبارات الوحدة، إن وجدت، في tests
. اسم اختبار DLL هو نفس اسم الحزمة، ولكن مع لاحقة Tests
.
الخطوات التالية
وثائق المنتج:
وحدات Microsoft Learn: