شعرت بالخجل من رمز interprise الخاص بي لدرجة أنني صنعت دراجتي الخاصة. أنا أقل خجلًا منه

صورة



هذا هو استمرار للنص حول بنية أنظمة interprise. التفكير جيد ، ولكن ما هو الهدف بدون تطبيق عملي. سأعرض إطار عملي في العمل.



بدأ كل شيء عندما تحدثت عن مشاكل تصميم التطبيقات في .NET وتذمر من الحياة الصعبة في مؤسسة دموية. ثم وصفت الحل الذي توصلت إليه وطبقته بنفسي - Reinforced.Tecture. لقد كانت نظرية ، التفكير المفاهيمي ، البصيرة والأنين مرة أخرى. هذه المرة هي حوالي عام 2020 ، ولكن لم يتم تسليم HKT إلى C #.



سأقوم اليوم بتوضيح منهجي في العمل باستخدام مشروع بسيط كمثال وإظهار الفوائد التي يوفرها: من تقليل كمية الكود إلى اختبار الأتمتة والنهج الأصلي للتوثيق. كما نصح تورفالدس القديم: "الدردشة لا قيمة لها ، أرني الرمز".



لذا ، نحن بحاجة إلى القيام بشيء بسيط ، ولكن العمل في Tecture. نظرًا لأننا نتحدث عن مؤسسة ، فسوف أختار مثالًا يشبه بشكل غامض نشاطًا تجاريًا حقيقيًا.



نحن نحتاج:



  • جوهر بسيط. المنتجات والطلبات تتبادر إلى الذهن على الفور. يجب ألا تكون هناك منتجات ؛
  • EF DbContext وقاعدة البيانات المحلية ؛
  • منطق عمل لعبة؛
  • مشروع ويب بسيط. كل مرتبة حسب الرتبة ، ASP.NET Core ، WebAPI. سوف نتمسك بالمنطق فيه.


تدريب



سيكون هيكل المشروع على النحو التالي:



صورة



لقد قمت بتوصيل EF.Core بالتجميع Data، ووضع DbContext ورمز الغراء لعمليات الترحيل هناك. لأنني أريد أن أترك المنطق على .NET Standard ولا أسحب EF معي.



بالمناسبة ، مثيرة للاهتمام

DAL-, . — . , Tecture. .



سننظر في سلوك Tecture باستخدام مثال للعمل مع المنتجات. ها هو جوهرها ، والمنطق المحيط بها سيكون بسيطًا وغبيًا جدًا:



صورة



DbContext- , - . — . EF , . . EF — ORM-. EF-.



AcmeDbContext

image



MS SQL Express. — . EF.Core - — MySQL PostgreSQL. , , Tecture, . . .



, . Reinforced.Tecture Reinforced.Tecture.Aspects.Orm.



صورة



. , O/RM:



صورة



, Id. , . :



صورة





. Tecture end-user . web-. , Startup.cs, ConfigureServices. DI-, ASP.NET MVC. , AcmeDbContext:



صورة



Tecture EF. web-. 2 : O/RM DirectSQL. DirectSQL , . , - . , - , dll- . . — — :



صورة



Tecture . . . AcmeDbContext, LazyDisposable ( Lazy Disposable, ) . , EF . fluent-:



صورة



. " " . , , Tecture, , . separation of concerns: , , — — . , — , .



. , . , . , , , . — . , separation of concerns .



, : , , . glue-. , — , .



Tecture , . .



, ITecture . .





-, Id. , . DTO. , , :



صورة



, ITecture , , From<>. , Id DTO-:



صورة



, , . Id DTO- . C# . , DTO- :



صورة



صورة



:



صورة



صورة



IQueryable, All<>, . . — , . — AutoMapper, expression-. — . , . , . , . , .





, - . . , Tecture . . , :



صورة



, . . ORM- — :



صورة



صورة



, Id . ORM — . — , Id — . ? : Add IAddition<>. , IAddition<Product>. Key . Id. . IPrimaryKey<>. :



صورة



. - :



صورة



Postman Id .



-, Tecture. , , . — , .






. , .



. . 90% . , , — , .



, — . — . — .



.





. Tecture BeginTrace EndTrace. . :



صورة



Explain. Tecture . return :



صورة



! . , - . , , , — , , , . , , :



صورة



.Describe.



: - . , , , . — , .



, , . , . , . , .



Tecture : . . -, . , - , . , . , , . Knowledge management!



IDescriptive, , , . "User entity" "User Vasiliy Pupkin". , . , .



, - . Explain — , , . , : , .



.





. . web- : Reinforced.Tecture.Testing. — Roslyn. , . :



صورة



2 . GenerateData GenerateValidation. , :



صورة



: , C#-. , Tecture fake- . , , , -, Mockaroo. - — . , ?



. Reinforced.Tecture.Testing. , 4 :



صورة



: -, - ( + ). . !



, . - -. , .



, ...



Unit-



, . QA : ", , !". , , , unit-.



CI/CD — . , , , . . . , Tecture . : - , . — . .



— , , - . , , , . — — , .



. . .



— , GenerateData GenerateValidation. NuGet . , .



, :



صورة



صورة



, :



صورة



, unit- 5 . , .



, ( ). - unit-. , , , - .



.



-



. , . , .



, Tecture. , . , — , . .



— , DirectSql, . , . .



تم نشر الحزم ، المصادر موجودة ، أنا على تواصل على تويتر ، برقية وعلى جيثب. إذا كنت تريد فجأة الانضمام إلى صفوف المتبنين الأوائل وأخذ Tecture لمشروعك المفضل - اكتب إليّ ، وسأحاول مساعدتك.



شكر خاص Fillpackartو ارتومومجتمعهم We Are Doomed للحصول على الدعم المعلوماتي والتحرير. شاهد البودكاست الخاص بهم ، إنه رائع. حتى أن هناك إطلاق سراح معي .



حظا سعيدا!




All Articles