هذا دليل خطوة بخطوة ليصبح مهندسًا .NET ، مع روابط لموارد التعلم ذات الصلة.
إذا كنت ترغب في معرفة المزيد حول .NET Technologies ، تأكد من الاشتراك في النشرة الإخبارية الخاصة بي .
إذا وجدت هذا المستودع مفيدًا ، فكر في دعمني على Patreon:

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

قم بتنزيل إصدار PDF.
أدناه يمكنك العثور على إصدار أدنى عاري يحتاج كل مطور .NET إلى معرفته ، مع تضمين مواد تعليمية وقابلة للنقر في إصدار PDF.

قم بتنزيل إصدار PDF.
قبل الخوض في التفاصيل ، تحتاج إلى فهم قوي للنظام الإيكولوجي .NET . إليك بعض الأشياء التي يجب أن تفهمها:
في هذا القسم ، سننظر في أوقات التشغيل الرئيسية .NET. نحن نعتبر وقت التشغيل .NET أي شيء ينفذ معيار ECMA-335 لـ .NET .
.NET Framework هو إطار لتطوير البرمجيات لبناء وتشغيل التطبيقات على Windows. يتكون .NET Framework من وقت تشغيل اللغة المشتركة (CLR) ، ومكتبة فئة Framework .NET ، وأعباء عمل التطبيق (WPF ، نماذج Windows ، و ASP.NET). CLR هي جزء من البنية التحتية المشتركة التي تقوم بتشغيل الكود ، JIT ، يقوم بجمع القمامة (C#، VB.NET ، F#) ، وما إلى ذلك. يتم تجميع الكود في لغة وسيطة مشتركة (CIL) وتخزينها في التجميعات (مع .exe أو امتداد .DLL). عند تشغيل التطبيق ، يأخذ CLR مجموعة ويستخدم برنامج التحويل البرمجي في الوقت المناسب (JIT) لنقل رمز الجهاز إلى رمز يمكن تشغيله على بنية الكمبيوتر المحددة.
يمكنك استخدامه في كل من سطح المكتب وتطوير الويب ، ولكنه يقتصر على تطوير Windows ، ويأتي مثبت مسبقًا على Windows.
.NET Core هو واحد من أوقات التشغيل في النظام البيئي .NET. تم إصداره في عام 2016. وهو مفتوح المصدر. لا يمثل نسخة جديدة من إطار .NET ولن يحل محله. إنها نسخة مستقلة تمامًا ، مصممة للسماح بقدرة منصة على الطاولة لتطوير التطبيق. .NET Core يتكون من مضيف تطبيق (dotnet.exe) الذي يدير CLR والمكتبة. لديها وقت تشغيل لغة مشتركة (CORECLR) و .NET CORE CLASS. وهو يدعم أعباء عمل مختلفة ، مثل ASP.NET Core (MVC و API) ، وتطبيقات وحدة التحكم ، و UWP (حاليًا).
يمكن تشغيل .NET Core على منصات مختلفة: Windows Client و Server و IoT و Linux و Ubuntu و FreeBSD و Tizen و Mac OSX ، ويمكن تثبيتها جنبًا إلى جنب من الإصدارات المختلفة لكل جهاز أو مستخدم.
تم إصدار .NET 5 في نوفمبر 2020 بهدف توحيد التطوير لسطح المكتب ، ويب ، والسحابة ، والهاتف المحمول ، والألعاب ، وإنترنت الأشياء ، وتطبيقات الذكاء الاصطناعي. كان هدف الإعداد السابق هو إنتاج وقت تشغيل وإطار عمل واحد. NET ، منصة ، دمج أفضل ميزات .NET Core و .NET Framework و Xamarin و Mono. ومع ذلك ، نظرًا لوباء الصحة العالمي ، تم تأجيل التوحيد إلى .NET 6.. NET 5 هو قاعدة رمز مشتركة لـ .NET Core و Mono و Xamarin و Future .NET. وأيضًا ، يتم تحديث أسماء الإطارات المستهدفة (TFMS) ، والتي تعبر عن إصدار .NET استهداف ، لذلك لدينا الآن Net5.0. هذا هو للرمز الذي يعمل في كل مكان. فهو يجمع ويحل محل أسماء NetCoreapp و NetStandard و Net5.0-Windows التي تمثل نكهات OS الخاصة بـ .NET 5 التي تشمل روابط Net5.0 Plus الخاصة بـ OS.
.NET 9 هو أحدث وقت تشغيل في النظام البيئي .NET. تم إصداره في نوفمبر 2024. ويتولى تطوير تطبيقات سطح المكتب ، ويب ، والسحابة ، والهاتف المحمول ، والألعاب ، وإنترنت الأشياء ، وتطبيقات الذكاء الاصطناعي. .NET 9 يتكون من مضيف تطبيق (dotnet.exe) الذي يدير CLR والمكتبة. لديها وقت تشغيل لغة مشتركة (CORECLR) و .NET 8 مكتبة. ويشمل أيضًا ASP.NET Core 9. .NET 9 لديه دعم منصة متطابقة تقريبًا كـ .NET CORE 3.1 لنظام التشغيل Windows و MacOS و Linux.
.NET 9 هو إصدار دعم قياسي ، مدعوم لمدة ستة أشهر بعد إصدار STS أو LTS اللاحق.
.NET 8 كان دعمًا طويل الأجل (LTS) . يتم دعم هذه الإصدارات لمدة ثلاث سنوات بعد الإصدار الأولي.
تستخدم أوقات التشغيل المختلفة مكتبات فصول مختلفة ، على سبيل المثال ، .NET Framework تستخدم مكتبة .NET Framework Class ، بينما يحتوي .NET Core على مكتبة الفصل ، وكذلك Xamarin مع مكتبة الفصل. وبهذه الطريقة ، من الصعب مشاركة التعليمات البرمجية بين أوقات التشغيل المختلفة ، لأنها تستخدم واجهات برمجة التطبيقات المختلفة. حل Microsoft هو مكتبة .NET Standard ، التي تم إصدارها في عام 2016. ويمثل مجموعة من المواصفات (الرسمية) التي تحدد واجهات برمجة التطبيقات التي يمكنك استخدامها وجميع أوقات التشغيل. إنه تطور مكتبات الفصول المحمولة (PCL). تقوم أوقات التشغيل المحددة بتنفيذ إصدارات محددة من .NET Standard (تنفيذ واجهات برمجة التطبيقات المحددة). على سبيل المثال ، .NET Framework 4.8.1 ينفذ .NET Standard 2.0 ، و .NET 7 ينفذ .NET Standard 2.1 (LINK).
لمعرفة المزيد حول .NET Ecosystem ، تحقق من منشور المدونة هذا.
جدول إصدار .NET من قبل Microsoft:

C# هي لغة برمجة طورتها Microsoft. إنها لغة لبناء أي شيء من تطبيقات سطح المكتب والألعاب (باستخدام الوحدة) إلى الحلول المستندة إلى السحابة وخدمات الويب. بدعم قوي للبرمجة الموجهة للكائنات ومكتبة غنية ، تم تصميمها لتكون سهلة وفعالة.
أحدث إصدار هو C# 13 ، الذي تم إصداره في نوفمبر 2024.
تحقق من الجدول الزمني الكامل C#:

تحتاج إلى فهم ميزات لغة C# مختلفة ، مثل:

ولكن أيضا .NET مكتبات وواجهة برمجة التطبيقات لـ:
موارد :
يمكّنك إتقان أنماط التصميم والرمز النظيف والتحكم في الإصدار مثل GIT من كتابة التعليمات البرمجية الفعالة القابلة للصيانة التي تعمل وتزدهر في بيئة الفريق. إنه الفرق بين كونك المبرمج ومهندس البرمجيات الماهر .
هنا ، تحتاج إلى معرفة مبادئ مختلفة ، مثل:
مبادئ صلبة :
ولكن أيضا:
موارد :
إنه إطار عمل عبر المنصات ، وعالي الأداء تم تطويره بواسطة Microsoft لإنشاء تطبيقات الويب وواجهات واجهات برمجة التطبيقات والخدمات الدقيقة . يمكنك أيضًا تشغيل تطبيقاتك على Windows أو Linux أو MacOS. تم تصميمه للمرونة وقابلية التوسع مع ميزات مثل حقن التبعية المدمجة ونظام تكوين قوي.
هنا ، تحتاج أيضًا إلى معرفة أساسيات تطوير الويب ، مثل:
موارد :
إذا كنت ترغب في إنشاء واجهة المستخدم في .NET ، فستحتاج إلى هذه الأطر. Razor هو محرك قالب لإنشاء HTML الديناميكي ، بينما يأخذ Blazor من الدرجة الأولى ، مما يتيح لك إنشاء واجهة مستخدمية تفاعلية باستخدام C# بدلاً من JavaScript. Maui هو خليفة Xamarin مصنوعًا لبناء تطبيقات الأجهزة المحمولة عبر المنصات. Foundation Foundation Windows (WPF) هو إطار واجهة المستخدم ينشئ تطبيقات عميل سطح المكتب. UNO Platform هي واجهة مستخدم رسومية مفتوحة المصدر عبر المنصة تتيح رمز Winui و Universal Windows (UWP) - على iOS و MacOS و Linux و Android و WebAssembly.
موارد :
يضمن تصميم قاعدة البيانات الجيدة تخزينًا فعالًا للبيانات واسترجاع سريع ، مما يجعل تطبيقك يعمل أكثر سلاسة وحجم أسهل. تمنحك SQL ، اللغة المنجزة لتفاعل قاعدة البيانات ، القدرة على الاستعلام والتحديث وإدارة البيانات التي صممتها بعناية لتخزينها.
هنا ، تحتاج إلى معرفة:
موارد :
يشبه تعيين الكائنات (ORM) المترجم بين رمز C# الموجهة نحو الكائن وقاعدة البيانات العلائقية ، مما يلغي المهمة الشاقة المتمثلة في كتابة استعلامات SQL لعمليات CRUD الأساسية. باستخدام أطر ORM مثل Entity Framework ، يمكنك معالجة البيانات ككائنات في الكود الخاص بك ، مما يجعلها أكثر قابلية للقراءة وقابلة للصيانة . هذا يسرع التطوير ، ويقلل من الأخطاء ، ويتيح لك التركيز على منطق الأعمال المعقد بدلاً من المصارعة مع بناء جملة قاعدة البيانات.
لإطار الكيان ، تحتاج إلى معرفة ما يلي:
موارد :
يشبه التخزين المؤقت لذاكرة التطبيق على المدى القصير في التطبيق ، وتخزين البيانات التي يتم الوصول إليها بشكل متكرر حتى يمكن استردادها بسرعة دون الوصول إلى قاعدة البيانات الخاصة بك . من خلال تقليل تحميل قاعدة البيانات وتسريع الوصول إلى البيانات ، يمنح التخزين المؤقت لتطبيقك ميزة تنافسية يحتاجها لتلبية متطلبات المستخدم للاستجابة والتوافر.
موارد :
يلتقط التسجيل معلومات وقت التشغيل والأخطاء والبيانات الأساسية الأخرى التي يمكن أن تساعدك بسرعة في تحديد المشكلات وإصلاحها ، مما يجعل تطبيقك أكثر موثوقية وأمانًا. تدمج أطراف التسجيل مثل NLOG أو Serilog بسلاسة في .NET ، مما يتيح لك أداة تشخيصية في الوقت الفعلي لا غنى عنها لمراقبة صحة التطبيق ، ومشاكل استكشاف الأخطاء وإصلاحها ، وحتى جمع رؤى للتنمية في المستقبل.
موارد :
في .NET لدينا ثلاثة أنواع من التواصل: التواصل في الوقت الفعلي ، والتواصل المتزامن ، وغير المتزامن. تتيح تقنيات الاتصال في الوقت الحقيقي ، مثل SignalR في النظام البيئي .NET ، هذه الوظائف من خلال الحفاظ على اتصال ثابت بين الخادم والعميل. يتم التواصل المتزامن بشكل أساسي باستخدام عميل HTTP ، بينما يتم الاتصال غير المتزامن من خلال الرسائل المختلفة والأطر القائمة على الأحداث والمكتبات. تعمل أنظمة المراسلة كطريق بين أجزاء مختلفة من نظامك ، مما يسمح لهم بالتواصل دون توصيله مباشرة. يتم استخدام معالجات الأحداث ، على الجانب الآخر ، للتعامل مع الأحداث داخل تطبيق واحد. إنها تسهل نموذجًا لناشر-حيث يمكن أن يرفع جزء من التطبيق حدثًا يمكن أن يتفاعل معه الأجزاء الأخرى.
موارد :
تعمل هذه الخدمات على تشغيل المهام في الخلفية ، مما يحرر تطبيقك للتركيز على تفاعلات المستخدم. سواء أكان معالجة البيانات أو رسائل البريد الإلكتروني الآلية أو عمليات التنظيف الدورية ، فإن خدمات الخلفية تضمن أن هذه المهام لا تبطئ أو تقاطع تجربة المستخدم.
موارد :
تركز اختبارات الوحدة على الأجزاء المعزولة من التعليمات البرمجية الخاصة بك ، واختبارات التكامل تضمن أن أجزاء مختلفة تلعب بشكل جيد معًا ، والاختبارات الشاملة التحقق من صحة رحلة المستخدم بأكملها داخل التطبيق الخاص بك. معا ، تشكل شبكة أمان ، اصطياد الأخطاء في وقت مبكر ، وبسيط تصحيح الأخطاء ، وجعل قاعدة الكود الخاصة بك قوية ويمكن الحفاظ عليها.
هنا تحتاج إلى معرفة:
موارد :
توفر هذه الأدوات رؤى في الوقت الفعلي في أداء التطبيق الخاص بك وسلوك المستخدم ومعدلات الأخطاء ، مما يتيح لك معالجة المشكلات قبل تصعيدها إلى مشاكل كاملة بشكل استباقي.
تركز المراقبة على صحة وتوافر الخدمات والأنظمة ، وغالبًا ما تؤدي إلى تنبيهات للحالات المحددة مسبقًا.
يجمع القياس عن بعد ، وعمليات ، ونقل البيانات من الأنظمة ، وتمكين تحليل الأنماط والاتجاهات والشذوذ.
موارد :
تتضمن حلول الحاويات تطبيق .NET والمكتبات ووقت التشغيل في حاويات معزولة. يتيح ذلك الاتساق عبر بيئات التطوير والإنتاج المتعددة ، وحل مشكلات التبعية. مع ميزات مثل أنظمة الملفات ذات الطبقات ، يمكنك بسهولة إدارة صور الحاويات لـ ASP.NET أو .NET Core أو خدمات .NET الأخرى ، وتحسين أوقات البناء واستخدام الموارد.
موارد :
يوفر مقدمو الخدمات السحابية طبقة من واجهات برمجة التطبيقات للبنية التحتية المجردة وتوفيرها بناءً على حدود الأمن والفواتير. تعمل السحابة على الخوادم في مراكز البيانات ، لكن التجريدات تعطي بذكاء مظهر التفاعل مع "منصة" واحدة أو تطبيق كبير. كانت القدرة على توفير وتكوين وتأمين الموارد مع مقدمي الخدمات السحابية بسرعة مفتاح النجاح الهائل وتعقيد DevOps الحديثة.
أكثر مزودي السحابة شعبية في السوق هم AWS و Azure ، وكذلك Google Cloud .
هنا ، يجب أن تعرف كيفية إدارة المستخدمين والإدارة والشبكات والخوادم الافتراضية ، إلخ.
موارد :
يعمل CI/CD على أتمتة مراحل البناء والاختبار والنشر في خط أنابيب مبسط مقاوم للأخطاء. هذا يعني الإصدارات بشكل أسرع ، وإصلاحات الأخطاء ، والمزيد من الوقت للتركيز على تطوير الميزات .
هنا تحتاج إلى معرفة كيفية:
موارد :
بعض المكتبات .NET مفيدة. لاحظ أنه لن يتم استخدام جميع المكتبات من قبل الجميع ، فهذا يعتمد بشكل أساسي على مشروع تعمل عليه.
بالإضافة إلى ذلك ، تحتاج أيضًا إلى معرفة ما يلي:
تلعب العروض دورًا أساسيًا في تطبيقات .NET. هنا تحتاج إلى معرفة:
يمكن أن تساعدك هذه الأدوات في تحديد وتصحيح اختناقات الأداء المختلفة التي لديك في الكود الخاص بك. لهذا ، يمكنك استخدام أدوات أخرى ، مثل:
جنبا إلى جنب مع الأدوات ، يجب أن تكون على دراية بأفضل ممارسات الأداء المختلفة لـ .NET:
التخزين المؤقت (ذاكرة التخزين المؤقت للذاكرة في MEM أو redis)
تحسين قاعدة البيانات (تحسين الاستعلامات ، الفهرسة المناسبة ، تجميع الاتصال)
البرمجة ASYNC (قم بإلغاء تحميل جميع عمليات وحدة المعالجة المركزية أو الإدخال/الإخراج إلى DB ، أنظمة الملفات ، EXT. الأنظمة)
استخدم إطار الكيان بحكمة (استخدم التحميل الحريري والتوقعات والتحسينات مثل الاستعلامات المترجمة)
إدارة الذاكرة (استخدم أنواع القيمة وكن حذرًا مع الرسوم البيانية للكائنات الكبيرة. استخدم النمط التخلص من توصيلات DB أو التدفقات. تجنب الملاكمة/unboxing. استخدم StringBuilder بدلاً من السلسلة لعدد كبير من التسلسل.)
HTTP التخزين المؤقت (استخدم etags ، الرؤوس المعدلة الأخيرة)
قلل من الرحلات المستديرة (تقليل عدد طلبات HTTP وروايات قاعدة البيانات)
شبكات توصيل المحتوى (CDNS) (تفريغ الأصول الثابتة (CSS ، JavaScript ، الصور) إلى CDNs للتسليم بشكل أسرع للمستخدمين)
ضغط (تمكين GZIP أو ضغط Brotli لاستجابات HTTP لتقليل حجم نقل البيانات)
التسجيل والتتبع (تجنب التسجيل المفرط في الإنتاج. استخدم التتبع الموزع عبر الخدمات الدقيقة.)
التوازي والتزامن (استخدم التوازي والترابط المتعدد للمهام المرتبطة بوحدة المعالجة المركزية باستخدام فئة متوازية أو مكتبة موازية للمهمة (TPL))
تحسين الموارد (تحسين الصور والأصول للويب لتقليل أوقات التحميل)
HTTP2 عبر SSL (اتخذ الآن قرارات ذكية حول محتوى الصفحة)
قياس ومراقبة الأداء (استخدم أدوات التشخيص أو رؤى التطبيق أو BenchmarkDotnet)
تمثل تمديد المستخدم <> بدلاً من المجموعات (يمكن أن تمثل الفترات قسمًا متجاورة من الذاكرة ؛ وهذا يعني أنه يمكننا استخدامها للعمل على المصفوفات)
يلعب الأمن دورًا أساسيًا في تطوير التطبيقات. الجوانب الأكثر أهمية للأمن في عالم .NET هي:
مفاهيم المصادقة والترخيص :
مفاهيم التشفير وحماية البيانات :
إذا كنت تعتقد أنه يمكن تحسين خريطة الطريق ، فيرجى فتح العلاقات العامة مع أي تحديثات وتقديم أي مشكلات. أيضًا ، سأستمر في تحسين هذا ، لذلك يجب عليك تنظيم هذا المستودع أيضًا.
الدكتور ميلانو ميلانوفيتش - CTO في 3MD و Microsoft MVP لتقنيات المطورين.