Layered design in software engineering

3-Dependency injection: Asp.net Core

 فى المقاله السابقه عرفنا الـ IoC Framework ,فى هذه المقاله هكتب عن ASP.NET Cores Dependency injection framework.  

وهو عبارة عن built in IoC Framework بتقدمه لينا الـ Net Core  .

مثال:

بنستخدم Service اسمها ProductService من خلالها نقدر نكتب queries علشان نضيف Product او نحذف Product او نختار كل ال Products و محتاجين  نستخدم ال ProductService فى ال HomeController.

كدا الـ HomeController تعتبر ال Client Class وال ProductService هى ال ServiceClass

1-ProdcutService


2-هنعمل Inject ل ProductService  بأستخدام ال HomeController Constructor


دلوقتى الـ IoC Framework هو المسؤل أنه يعمل creation لل ProductService Object ويعملوا inject فى ال HomeController أثناء ال Runtime. بس كدا فى خطوة ناقصة !!

احنا قلنا لما نستخدم IoC Framework لازم نعمل Register لل Services اللى بنستخدمها ونحدد ال Lifetime.

3-Register the Service in the Dependency Injection container



ال ConfigureServices  موجوده فى ال Startup Class وهى ال method اللى من خلالها نقدر نعمل Register لل Services.



و بنستخدم ال Transient و Scoped و Singleton لأجل التحكم فى ال Lifetime  لل objects.

1-Singleton

ال Framework هيعمل Create ل object واحد بس من ال Service   لكل ال Requests , يعنى كل ال Requests  سوف تستخدم نفس ال Object.

2-Scope

ال Framework هيعمل Create ل object  من ال Service  لكل Request .

3-Transient

ال Framework هيعمل Create ل Object من ال Service كل مرة يتم استخدام فيها فى ال Service.




ولازم نلاحظ أن الـ Service اللى من نوع Singleton غلط انها تعتمد على Service من نوع Scoped او Transient لأن ال LifeTime اقل ,وهكذا بالنسبه لل Scope وال Transient.


تعليقات