Layered design in software engineering

0-Net Ecosystem: The Big Picture

 مرحباً بك فى عالم ال Net.

فى ال Net. هتسمع مصطلحات كتير زى ال Net Framework.  و Net Core. وال Xamarin او Asp.net او WPF وهتحس انك تايه فى كمية مصطلحات كتير ومش عارف تربطهم ببعض.

المقاله هدفها انها توضح النظرة العامة لل Net. والفروقات  بين ال Runtimes المختلفه الخاصه بالـ Net.

ما هو الـ Net. ؟


ال Net.  عبارة عن platform من خلالها نقدر نعمل Applications مختلفة سواء Web او Desktop او Mobile.
ال Net.  تدعم لغات مختلفة مثل C# و F# و Visual Basics.
ال Net.  تقدم لنا Runtimes مختلفه او نسهيلاً نقدر نقول عليها Frameworks مختلفة بتساعدنا على تطوير التطبيقات سواء Web او Desktop او Web.

اول Runtime تقدمه لينا ال Net. هو  ال Net Framework. , وهنا نقدر نقول بيحصل التباس وفى اشخاص بتفتكر أن ال Net هو ال Net Framework.
ولكن Net. عبارة عن Platform  وال Net Framework. هو عبارة عن Runtime من خلاله نقدر نطور برامج مختلفة.



 فى الصورة هنلاحظ أن الـ Net. بتقدملنا اكتر من Runtimes مختلفة ,لو محتاجين نطور تطبيقات خاص بالهواتف المحمولة هنستخدم Xamarin لو محتاجين نطور web App هنستخدم Net Core. أو  Net. Framework.

Common Infrastructure

-فى هذا ال Layer بيبقى موجود ال Components اللى ممكن نستخدمها مع Runtimes مختلفه.زى ال Language .
احنا اتفقنا أن ال Net تدعم لغات مختلفة مثل ال C# وبالتالي ال C# كلغه موجوده فى ال Common Infrastructure لانها مش مقتصرة على الـ Runtime معين . ال C# ممكن نستخدمها فى ال .NET Framework وكذلك ال Net Core. وكذلك Xamarin

-ال CPU  بينفذ الكود المكتوب بال Machine Language بس  و لازم يتم تحويل الكود اللى كاتبينه بأى لغة برمجة  إلى لغة الآلة علشان ال CPU  يقدر ينفذها , ال Build Tool  هي المسؤولة عن ال operation.
-بس ال Build Tool مبتعملش Compile للكود إلى لغة الآلة مباشرة بل يتم تحويلها إلى لغة وسيطة وبنقول عليها Intermediate Language.

-ال RunTime components هى المسئولة عن تحويل ال Intermediate Language لـ Machine Code.

Net Standard

-لو انت بطور برنامج  باستخدام مثلاً ال Net Framework اكيد هتلاقى Libraries بيقدمها ليك ال Runtime علشان تسهل عملية التطوير ومش تحتاج تكتب كل حاجه من الأول , وال Libraries  دى فى عالم ال Net  بنسميها ال  Base Class Libraries

-لو انت استخدمت ال Net Core وكذلك ال Xamarin  اكيد هتستخدم ال Base Class Library.

-انا كمبرمج هكون محتاج ان ال implementation الخاص بال Base Class Library مش يكون مختلف بين ال Runtimes المختلفة بحيث لو بستخدم  Library فى ال Net Framework.  الاقيها موجوده فى ال Net Core. بالطبع ممكن ال implementation يختلف بس بالنسبة ليا حاجه واحده.

-اللى بيساعدنا  نحقق الهدف دا هو ال Net Standard Layer 


The " .NET Standard is a formal specification of  .NET APIs  that are available on multiple .NET implementations "a





تعليقات