أفضل 40 سؤالاً وإجابةً في مقابلات .Net (2026)

يتطلب التحضير لمقابلة .Net الوضوح بشأن ما قد تواجهه، وفهم المفاهيم الأساسية أمر ضروري لأن الجملة الثانية يجب أن تتضمن "أسئلة مقابلة .Net" لتحديد الصلة الفورية.
يتيح استكشاف مقابلات .Net فرصًا وظيفية واعدة، مدعومة بتوجهات القطاع، وتطبيقات عملية، وخبرة تقنية عميقة. يستفيد المحترفون ذوو الخبرة في هذا المجال، وخبرة واسعة في مجالهم، ومهارات تحليلية قوية، من أسئلة وأجوبة قيّمة تُساعد المرشحين الجدد وذوي الخبرة على تعزيز مهاراتهم في المناقشات التقنية الأساسية، والمتقدمة، والمتوسطة، والعليا، والشفوية. اقرأ أكثر…
👉 تحميل ملف PDF مجاني: أسئلة وأجوبة مقابلة .Net
1) ما هو إطار عمل .NET وما هي مكوناته الرئيسية؟
.NET Framework عبارة عن منصة تطوير برمجيات تم تطويرها بواسطة Microsoft يوفر بيئة مُتحكم بها لبناء التطبيقات ونشرها وتشغيلها. يدعم لغات برمجة متعددة مثل C# وVB.NET وF#. يضمن الإطار توافق اللغات وإدارة الذاكرة من خلال وقت تشغيل اللغة المشتركة (CLR).
المكونات الرئيسية:
| مكون | الوصف |
|---|---|
| CLR (وقت تشغيل اللغة العامة) | إدارة الذاكرة والأمان وتنفيذ التعليمات البرمجية. |
| FCL (مكتبة فئة الإطار) | مجموعة كبيرة من الفئات والواجهات وأنواع القيم القابلة لإعادة الاستخدام. |
| ASP.NET | تمكين تطوير تطبيقات الويب الديناميكية. |
| ADO.NET | يوفر إمكانية الوصول إلى البيانات من مصادر بيانات مختلفة. |
على سبيل المثال: يمكن لتطبيق AC# استخدام ADO.NET للاتصال بقاعدة بيانات SQL Server من خلال بيئة مُدارة، مما يضمن الأمان وقابلية التوسع.
2) اشرح الفرق بين .NET Framework، و.NET Core، و.NET 5/6/7.
Microsoft لقد تطور .NET إلى منصة موحدة لدعم التطوير عبر الأنظمة الأساسية.
الإطار. NET is Windows-فقط، بينما .NET Core مفتوح المصدر ومتعدد المنصات. من .NET 5 فصاعدا، Microsoft دمجهم في وقت تشغيل موحد واحد.
| الميزات | الإطار. NET | .NET Core | .NET 5/6/7+ |
|---|---|---|---|
| دعم النظام الأساسي | Windows فقط | عبر منصة | عبر منصة |
| مفتوحة المصدر | لا | نعم | نعم |
| هاملت | معتدل | مرتفع | عالي جدا |
| التنفيذ | على مستوى النظام | مستقل | موعد تقديم مرن |
| استخدام المثال | تطبيقات المؤسسة القديمة | السحابة والخدمات المصغرة | تطبيقات متعددة المنصات الحديثة |
3) كيف يقوم Common Language Runtime (CLR) بإدارة تنفيذ التعليمات البرمجية؟
يعمل CLR كمحرك تنفيذ لتطبيقات .NET. فهو يحوّل شيفرة لغة البرمجة الوسيطة (IL) إلى شيفرة الآلة الأصلية عبر التجميع الفوري (JIT). كما يوفر إدارة تلقائية للذاكرة باستخدام جمع البيانات المهملة.
الوظائف الرئيسية لـ CLR:
- إدارة الذاكرة - تخصيص وإلغاء تخصيص الذاكرة تلقائيًا.
- إدارة الأمن - التحقق من أمان الوصول إلى الكود والأمان القائم على الأدوار.
- معالجة الاستثناء - التأكد من اكتشاف أخطاء وقت التشغيل وإدارتها بشكل صحيح.
- إدارة المواضيع - يوفر تنفيذًا فعالًا للكود متعدد الخيوط.
على سبيل المثال: عند تشغيل برنامج .NET، يقوم CLR بتجميع كود IL إلى كود أصلي عند الطلب، مما يضمن التنفيذ الأمثل.
4) ما هي أنواع مُجمِّعات JIT المختلفة في .NET؟
يوفر CLR ثلاثة أنواع من المترجمين في الوقت المناسب (JIT):
| النوع | الوصف | الحلول المقترحة |
|---|---|---|
| ما قبل JIT (NGen) | يتم تجميع الكود بأكمله مرة واحدة في وقت النشر. | يقلل من وقت بدء التشغيل. |
| إيكونو-جيت | يقوم بتجميع الأساليب التي تم استدعاؤها وقت التشغيل فقط ويتخلص منها بعد ذلك. | البيئات المقيدة بالذاكرة. |
| JIT العادي | يقوم بتجميع التعليمات البرمجية طريقة تلو الأخرى أثناء التنفيذ. | نموذج التنفيذ القياسي. |
يوازن كل نهج JIT بين أداء و إستخدام الموارد بناءً على سياق النشر.
5) ما هي التجميعات في .NET وكيف تختلف عن مساحات الأسماء؟
An جمعية هي أصغر وحدة قابلة للنشر في تطبيق .NET، وتحتوي على الكود المترجم والبيانات الوصفية والموارد. مساحة الاسممن ناحية أخرى، هي مجموعة منطقيةping من الفئات المستخدمة لتنظيم التعليمات البرمجية.
| مقارنة | Assembly | مساحة الاسم |
|---|---|---|
| الطبيعة | الملف المادي (DLL/EXE) | مجموعة منطقيةping |
| الهدف | النشر والإصدارات | Code منظمة |
| يحتوي | بيانات، بيان، MSIL | الفئات والواجهات |
| مثال | System.Data.dll |
System.Data.SqlClient |
على سبيل المثال: System.Data.dll يمكن أن يحتوي التجميع على مساحات أسماء متعددة مثل System.Data و System.Data.SqlClient.
6) ما هو الفرق بين أنواع القيمة وأنواع المرجع في .NET؟
في .NET، أنواع القيمة تخزين البيانات مباشرة، بينما أنواع المراجع تخزين المراجع إلى عنوان ذاكرة البيانات.
| قاعدة | نوع القيمة | نوع مرجع |
|---|---|---|
| التخزين | كومة | كومة |
| أنواع الأمثلة | int، float، bool، struct | الصف، المصفوفة، السلسلة |
| نسخ | نسخ القيمة الفعلية | نسخ المرجع |
| مسموح بالعدم | لا | نعم |
على سبيل المثال:
int a = 5; int b = a; → كلاهما يحملان نسخًا منفصلة.
ClassObj x = new ClassObj(); ClassObj y = x; → كلاهما يشيران إلى نفس الكائن.
7) كيف تعمل عملية جمع القمامة في .NET؟
يقوم نظام Garbage Collector (GC) في .NET بإدارة الذاكرة تلقائيًا عن طريق استعادة الكائنات غير المستخدمة. يعمل هذا النظام في أجيال لتحسين الأداء.
GC الجيل:
- الجيل 0: الأشياء قصيرة العمر (على سبيل المثال، المتغيرات المؤقتة).
- الجيل 1: الأشياء متوسطة العمر التي تمت ترقيتها من الجيل 0.
- الجيل 2: الأشياء طويلة العمر (على سبيل المثال، البيانات الثابتة).
الفوائد :
- يمنع تسرب الذاكرة.
- تحسين أداء التطبيق.
- يُبسط التعامل مع الذاكرة للمطورين.
على سبيل المثال: عندما لا تتم الإشارة إلى كائن بعد الآن، يقوم GC بإزالته من الكومة، مما يحرر الذاكرة لإعادة الاستخدام.
8) ما هو المندوب وكيف يختلف عن الأحداث؟
A مندوب هو نوع يمثل مراجع للطرق، في حين أن حدث هي آلية تمكن التواصل بين الفصول الدراسية عبر المندوبين.
| البعد | مندوب | الحدث/الفعالية |
|---|---|---|
| تعريف | كائن يشير إلى طريقة | آلية الإخطار |
| استدعاء | يمكن الاتصال مباشرة | تم استدعاؤها من خلال المشتركين |
| مثال | Action<int> myDelegate; |
event EventHandler myEvent; |
على سبيل المثال:
public delegate void Notify(); public event Notify OnProcessCompleted;
هنا، OnProcessCompleted هو حدث يعتمد على Notify مندوب.
9) ما هي المزايا والعيوب الرئيسية لاستخدام .NET Core؟
| المزايا | عيوب |
|---|---|
| دعم عبر الأنظمة الأساسية | منحنى التعلم أكثر حدة للمبتدئين |
| المصدر المفتوح والدفع المجتمعي | دعم محدود للأطر القديمة |
| أداء عالي مع خادم Kestrel | تحديات الهجرة للمشاريع القديمة |
| حقن التبعية المضمنة | بعض واجهات برمجة التطبيقات لا تزال في طور التطور |
على سبيل المثال: .NET Core مثالي لبناء خدمات صغيرة تعمل على حاويات Docker عبر Linux و Windows الملقمات.
10) اشرح دورة حياة صفحة ASP.NET.
تُحدد دورة حياة صفحة ASP.NET كيفية تهيئة الصفحة ومعالجتها وعرضها. تُوفر كل مرحلة أحداثًا يُمكن للمطورين التعامل معها لتنفيذ منطق مُخصص.
| المرحلة | الوصف |
|---|---|
| طلب الصفحة | يطلب المستخدم الصفحة للمرة الأولى. |
| بالبداية | يحدد ما إذا كان الطلب هو إعادة النشر. |
| التهيئة | تمت تهيئة كافة عناصر التحكم. |
| حمل | تم تحميل بيانات الصفحة وعناصر التحكم. |
| معالجة حدث الارتداد | يتعامل مع الأحداث التي يتم تشغيلها بواسطة عناصر التحكم. |
| أداء | تمت تحويل الصفحة إلى HTML. |
| تفريغ | مرحلة التنظيف بعد إرسال الاستجابة. |
على سبيل المثال: المطورين يستخدمون في كثير من الأحيان Page_Load or Page_Init الأحداث لتهيئة عناصر التحكم أو تعيين ارتباطات البيانات.
11) ما هو إطار الكيان (EF) وكيف يعمل على تبسيط عمليات قاعدة البيانات؟
إطار الكيان (EF) هو Microsoftالصورة مُعيِّن الكائنات والعلاقات (ORM) يُغني ذلك عن الحاجة إلى معظم أكواد الوصول إلى البيانات، إذ يسمح للمطورين بالتفاعل مع قاعدة البيانات باستخدام كائنات .NET. كما أنه يتولى تلقائيًا إنشاء استعلامات SQL ورسم خرائط البيانات.pingوإدارة العلاقات.
الميزات الرئيسية:
- الدعم LINQ-to-Entities استفسار.
- العروض تغيير تلقائي tracملك و تحميل كسول.
- يوفر Code- أولاً، قاعدة البيانات أولاًو النموذج أولاً اقتراب.
على سبيل المثال:
using (var context = new AppDbContext())
{
var employees = context.Employees.Where(e => e.Salary > 50000).ToList();
}
هنا، تقوم EF بترجمة استعلام LINQ إلى SQL، واسترجاع النتائج، وربطها بـ Employee الكائنات تلقائيا.
12) اشرح الفرق بين Code-الأساليب الأولى، وقواعد البيانات أولاً، والنماذج أولاً في إطار عمل الكيانات.
| النهج | الوصف | الحلول المقترحة |
|---|---|---|
| Code-أولاً | قم بتعريف الفئات واترك لـ EF إنشاء قاعدة البيانات. | مشاريع جديدة. |
| قاعدة البيانات أولاً | قم بإنشاء قاعدة البيانات أولاً وسيقوم EF بإنشاء فئات الكيان. | قواعد البيانات الموجودة. |
| النموذج أولاً | قم بتصميم الكيانات بصريًا، ويقوم EF بإنشاء كل من قاعدة البيانات والفئات. | التصميم الموجه بالرسم التخطيطي. |
على سبيل المثال: في باقة Code- في النهج الأول، يقوم المطورون بإنشاء فئات C# مثل Customer و Orderويقوم EF ببناء الجداول المقابلة في SQL Server تلقائيًا.
13) ما هو LINQ وما هي مميزاته في تطوير .NET؟
استعلام لغة متكامل (LINQ) يسمح بالاستعلام عن البيانات من مصادر مختلفة (كائنات، XML، قواعد البيانات) باستخدام بناء جملة متسق مباشرة داخل C# أو VB.NET.
يعزز قراءة, سلامة النوعو التحقق وقت التجميع.
مزايا LINQ:
- بناء جملة موحد لمصادر البيانات المختلفة.
- يقلل من تعقيد الكود.
- يوفر IntelliSense والتحقق في وقت التجميع.
- يدعم التنفيذ المؤجل لتحسين الأداء.
على سبيل المثال:
var highSalaries = employees.Where(e => e.Salary > 70000)
.OrderBy(e => e.Name)
.ToList();
14) ما هو الفرق بين IEnumerable وICollection وIQueryable في .NET؟
| السطح البيني | نوع التنفيذ | الحلول المقترحة | الفرق الرئيسي |
|---|---|---|---|
| لا تعد | التكرار في الذاكرة | المجموعات المحلية | يتم تنفيذه على جانب العميل. |
| جمع | في الذاكرة، يدعم الإضافة/الإزالة | تعديل المجموعات | يمتد IEnumerable مع إدارة المجموعة. |
| جيد | التنفيذ المؤجل (عن بعد) | LINQ إلى SQL/EF | يتم التنفيذ على مستوى قاعدة البيانات. |
على سبيل المثال: باستخدام IQueryable في Entity Framework، يتم تمكين التصفية على جانب قاعدة البيانات، وهو أكثر كفاءة بكثير من استخدام IEnumerable في الذاكرة.
15) ما هي البرمجة غير المتزامنة وكيف تعمل async وawait في .NET؟
تسمح البرمجة غير المتزامنة في .NET بتنفيذ عمليات متعددة دون حظر الخيط الرئيسي، مما يحسن الاستجابة في تطبيقات الويب وسطح المكتب.
القفل Concepts:
asyncيحدد الطريقة على أنها غير متزامنة.awaitيقوم بتعليق تنفيذ الطريقة حتى اكتمال المهمة المنتظرة.- يمنع تجويع الخيوط وتجميد واجهة المستخدم.
على سبيل المثال:
public async Task<int> GetDataAsync()
{
var data = await httpClient.GetStringAsync("https://api.example.com");
return data.Length;
}
الاستفادة: يظل الخيط الرئيسي حرًا للتعامل مع مهام أخرى أثناء تنفيذ عملية الإدخال/الإخراج في الخلفية.
16) ما هو حقن التبعية (DI) ولماذا هو مهم في .NET Core؟
حقن التبعية (DI) هو نمط تصميم يمكّن اقتران فضفاض بين الفئات عن طريق حقن التبعيات بدلاً من إنشائها داخليًا.
المزايا:
- تحسين إمكانية الاختبار.
- Promoتصميم معياري.
- يُبسط إدارة التكوين.
على سبيل المثال:
public class OrderService
{
private readonly IEmailService _emailService;
public OrderService(IEmailService emailService)
{
_emailService = emailService;
}
}
في .NET Core، تم دمج DI في الإطار من خلال IServiceCollection الحاوية المستخدمة في Startup.cs.
17) كيف تتعامل مع الاستثناءات في تطبيقات .NET بشكل فعال؟
تضمن معالجة الاستثناءات إدارة أخطاء وقت التشغيل بشكل صحيح دون تعطل التطبيق. الآلية الأساسية هي حاول الإمساك أخيرًا منع.
على سبيل المثال:
try
{
int result = 10 / divisor;
}
catch (DivideByZeroException ex)
{
Console.WriteLine("Cannot divide by zero.");
}
finally
{
Console.WriteLine("Operation completed.");
}
أفضل الممارسات:
- قم دائمًا بإلتقاط الاستثناءات المحددة أولاً.
- استعمل
finallyلمنطق التنظيف - تجنب كتل الصيد الفارغة.
- استخدام معالجة الاستثناءات العالمية في ASP.NET Core (
UseExceptionHandler()(الوسيط).
18) ما هي ممارسات الأمان الأساسية في تطبيقات .NET؟
الأمن والحماية يتضمن .NET طبقات متعددة بما في ذلك المصادقة والتفويض وتشفير البيانات والتحقق من صحة الإدخال.
الممارسات الرئيسية:
- استعمل هوية ASP.NET للمصادقة وإدارة الأدوار.
- تفعيل HTTPS (SSL/TLS) لتشفير البيانات.
- تطبيق التحقق من صحة البيانات والاستعلامات المعلمية لمنع حقن SQL.
- استعمل واجهات برمجة تطبيقات حماية البيانات لتأمين ملفات تعريف الارتباط والرموز.
- تطبيق JWT (رموز الويب JSON) للمصادقة بدون جنسية في واجهات برمجة التطبيقات.
على سبيل المثال: يتم استخدام المصادقة المستندة إلى JWT بشكل شائع في الخدمات المصغرة للتحقق من هوية المستخدم دون الحفاظ على حالة الجلسة.
19) اشرح الفرق بين القيمة المطلقةtracالفئات والواجهات في لغة C#.
| الميزات | ABStracفئة t | السطح البيني |
|---|---|---|
| تطبيق | يمكن أن تحتوي على تنفيذات الطريقة | الإعلانات فقط (C# 8 يسمح بالإعدادات الافتراضية) |
| وراثة متعددة | غير معتمد | عائلات |
| الصانعين | يمكن أن يكون لها منشئين | لا يمكن أن يكون هناك منشئين |
| الحلول المقترحة | الفئة الأساسية مع الكود المشترك | معtract لفئات متعددة غير مترابطة |
على سبيل المثال:
abstract class Animal { public abstract void Speak(); }
interface IPet { void Play(); }
A Dog يمكن للفئة أن ترث من Animal وتنفيذها IPet في وقت واحد.
20) ما هي أنماط التصميم المستخدمة بشكل شائع في .NET وما هي فوائدها؟
أنماط التصميم هي حلول مثبتة لمشاكل تصميم البرمجيات المتكررة. فهي تعزز إمكانية الصيانة، وقابلية التوسع، وقابلية القراءة.
| نمط التصميم | مثال | الوصف |
|---|---|---|
| إبداعي | سينجلتون، المصنع | إدارة إنشاء الكائن. |
| بنيوي | محول، ديكور | دمج الفئات أو الكائنات. |
| السلوكية | المراقب، الاستراتيجية | تعريف التواصل الموضوعي. |
على سبيل المثال: في .NET Core، نمط سينجلتون يتم استخدامه غالبًا للخدمات المشتركة (على سبيل المثال، التسجيل) عن طريق تسجيلها مع AddSingleton() في حقن التبعية.
21) ما هو .NET MAUI وكيف يختلف عن Xamarin?
.NET MAUI (واجهة مستخدم التطبيق متعددة المنصات) هو تطور Xamarin.النماذج. إنها تمكن المطورين من بناء تطبيقات متعددة المنصات لـ Android، IOS، macOSو Windows من قاعدة بيانات مشتركة واحدة.
| الميزات | Xamarin.النماذج | NET MAUI |
|---|---|---|
| قاعدة الإطار | .NET Framework / Mono | موحد .NET 6+ |
| معمار | مشاريع خاصة بالمنصة | هيكل المشروع الفردي |
| هاملت | معتدل | تم التحسين مع وقت تشغيل .NET |
| تحديث ساخن | محدود | دعم إعادة التحميل الساخنة الكامل |
على سبيل المثال: A واحد .NET MAUI يمكن أن يتضمن المشروع كودًا خاصًا بالمنصة ضمن مجلدات مثل Platforms/Android or Platforms/iOS، مع مشاركة مكونات واجهة المستخدم المشتركة عبر الأنظمة الأساسية.
الاستفادة: يُبسط تطوير الأنظمة الأساسية المتعددة ويُحسّن إمكانية الصيانة.
22) ما هو Blazor وما هي نماذج الاستضافة المختلفة الخاصة به؟
Blazor هو إطار عمل لبناء واجهات مستخدم ويب تفاعلية باستخدام C# بدلاً من Javaبرنامج نصي. يُمكّن من تطوير الويب الكامل باستخدام .NET.
| نموذج الاستضافة | الوصف | مكان التنفيذ |
|---|---|---|
| خادم Blazor | يتم تشغيله على الخادم، ويرسل تحديثات واجهة المستخدم عبر SignalR | المخدم |
| شبكة بلازورAssembly | يتم تشغيله على جانب العميل في المتصفح باستخدام الويبAssembly | المتصفح |
| بلازور هايبرد (MAUI) | يجمع بين واجهة المستخدم على الويب وتطبيق سطح المكتب/الهاتف المحمول الأصلي | تطبيق محلي |
على سبيل المثال: تطبيقات Blazor Server مناسبة للوحات معلومات المؤسسات التي تتطلب تحكمًا مركزيًا آمنًا، في حين أن Blazor WebAssembly يناسب التطبيقات القادرة على العمل دون اتصال بالإنترنت.
23) ما هي الخدمات المصغرة في .NET وما هي المزايا التي تقدمها مقارنة بالهندسة المعمارية المتجانسة؟
تقوم هندسة الخدمات المصغرة بتحليل التطبيق إلى خدمات مستقلة وقابلة للنشر، كل منها يتعامل مع قدرة تجارية محددة.
| البعد | متكشف عن وحدة متراصة | Microservices |
|---|---|---|
| التنفيذ | وحدة مفردة | الخدمات المستقلة |
| التوسعة | تطبيق كامل قابل للقياس | المقياس لكل خدمة |
| كومة التكنولوجيا | ثابت | دعم متعدد اللغات |
| العزل الخطأ | منخفض | مرتفع |
المزايا:
- النشر والتوسع المستقل.
- عزل الخطأ بشكل أسهل واسترداد أسرع.
- تمكين خطوط أنابيب CI/CD وممارسات DevOps.
على سبيل المثال: قد يفصل نظام التجارة الإلكترونية المستند إلى .NET OrderService, InventoryServiceو PaymentService كخدمات REST أو gRPC فردية.
24) كيف يعمل gRPC على تحسين الاتصال في خدمات .NET المصغرة مقارنة بواجهات برمجة التطبيقات REST؟
gRPC (Google مكالمة إجراء عن بعد) هو إطار عمل اتصال عالي الأداء يستخدم بروتوكول Bufferس (بروتوبوف) لتسلسل الرسائل.
| الميزات | REST API | جي آر بي سي |
|---|---|---|
| شكل | JSON | ثنائي (بروتوبوف) |
| سرعة | أبطأ بسبب تحليل JSON | أسرع بكثير |
| التواصل | HTTP 1.1 | HTTP/2 (ثنائي الاتجاه) |
| نوع العقد | واجهة برمجة التطبيقات المفتوحة | ملفات .proto |
| الحلول المقترحة | تطبيقات الويب | اتصالات الخدمة الداخلية |
على سبيل المثال: في .NET، يتم تعريف خدمات gRPC باستخدام .proto يتم تجميع الملفات وتنسيقها في كود C#، مما يوفر رسائل أسرع وأكثر إحكاما مثالية للخدمات المصغرة وإنترنت الأشياء.
25) ما هي بعض أفضل الممارسات لتحسين الأداء في تطبيقات .NET؟
يُعدّ ضبط الأداء مهارةً أساسيةً للمطورين الكبار. ينبغي أن يُركّز التحسين على كفاءة الكود، وإدارة الذاكرة، وتفاعلات قواعد البيانات.
أفضل الممارسات:
- استخدام البرمجة غير المتزامنة (
async/await) لمنع الحظر. - تخزين البيانات المستخدمة بشكل متكرر باستخدام MemoryCache أو Redis.
- تقليل التخصيصات واستخدامها
Span<T>أو تجميع البيانات الكبيرة. - رمز الملف الشخصي باستخدام أدوات مثل النقطةTrace أو PerfView.
- تحسين استعلامات EF مع
AsNoTracking()للبيانات للقراءة فقط.
على سبيل المثال:
var users = context.Users.AsNoTracking().ToList();
وهذا يتجنب tracتقليل النفقات العامة، وتحسين الأداء لمجموعات النتائج الكبيرة.
26) ما هي تقنيات التخزين المؤقت المتوفرة في .NET Core؟
يعمل التخزين المؤقت على تحسين الأداء من خلال تخزين البيانات مؤقتًا لإعادة استخدامها.
| نوع ذاكرة التخزين المؤقت | الوصف | مثال للاستخدام |
|---|---|---|
| ذاكرة التخزين المؤقت في الذاكرة | يخزن البيانات في ذاكرة الخادم. | IMemoryCache |
| ذاكرة التخزين المؤقت الموزعة | ذاكرة تخزين مؤقتة مشتركة بين الخوادم. | IDistributedCache، ريديس |
| استجابة التخزين المؤقت | تخزين استجابات HTTP مؤقتًا. | ResponseCache السمة |
| إخراج التخزين المؤقت | إعادة استخدام الناتج المقدم بالكامل. | برنامج ASP.NET Core الوسيط |
على سبيل المثال:
_cache.Set("EmployeeList", employeeData, TimeSpan.FromMinutes(30));
بالنسبة للتخزين المؤقت الموزع، يتم استخدام Redis غالبًا في البيئات المتوازنة التحميل.
27) كيف تقوم بتنفيذ التسجيل والمراقبة في تطبيقات .NET Core؟
يُعدّ تسجيل البيانات أمرًا ضروريًا لـ tracيُعنى .NET Core بمعالجة المشكلات الرئيسية ومراقبة سلامة النظام، كما يوفر تسجيلًا مدمجًا.tracالأنظمة التي يمكنها التكامل مع مزودي خدمات الطرف الثالث.
تقنية:
- استعمل اي لوجر واجهة للتسجيل المنظم.
- بالتكامل مع سيريلوج, سجل أو رؤى التطبيق.
- تخزين السجلات في أنظمة مركزية مثل ELK (المكدس المرن).
على سبيل المثال:
public class UserController
{
private readonly ILogger<UserController> _logger;
public UserController(ILogger<UserController> logger)
{
_logger = logger;
}
}
أدوات المراقبة:
- Azure رؤى التطبيق
- بروميثيوس + جرافانا
- نيو ريليك / داتادوغ
28) ما هي خيارات النشر الرئيسية المتاحة لتطبيقات .NET؟
يمكن نشر تطبيقات .NET باستخدام عدة طرق مرنة:
| نوع النشر | الوصف | الحلول المقترحة |
|---|---|---|
| النشر المعتمد على الإطار (FDD) | يتطلب تثبيت وقت تشغيل .NET على المضيف. | خوادم مشتركة. |
| النشر الذاتي (SCD) | يتضمن وقت تشغيل .NET في الحزمة. | تطبيقات سحابية معزولة. |
| حاويات دوكر | حزم التطبيق مع التبعيات. | الخدمات المصغرة و CI/CD. |
| Azure خدمة التطبيقات | استضافة سحابية لتطبيقات الويب. | تطبيقات SaaS القابلة للتطوير. |
على سبيل المثال: يؤدي نشر واجهة برمجة تطبيقات الويب .NET 8 كحاوية Docker إلى تحسين قابلية النقل وأتمتة CI/CD.
29) كيف Azure التكامل مع تطبيقات .NET لتطوير السحابة؟
Azure يوفر تكاملاً من الدرجة الأولى مع .NET لبناء ونشر وإدارة التطبيقات السحابية الأصلية.
القفل Azure الخدمات لـ .NET:
- Azure خدمة التطبيقات - استضافة تطبيقات الويب.
- Azure وظائف - الحوسبة بدون خادم للمهام الخلفية.
- Azure قاعدة بيانات سكل - قاعدة بيانات علائقية مُدارة بالكامل.
- Azure حافلة الخدمة - وضع الرسائل في قائمة انتظار للأنظمة الموزعة.
- Azure القفل Vault - تأمين الأسرار وبيانات الاعتماد.
على سبيل المثال: قد تستخدم خدمة .NET المصغرة Azure القفل Vault لتخزين سلاسل اتصال قاعدة البيانات بشكل آمن أثناء نشرها من خلال Azure خط أنابيب DevOps CI/CD.
30) ما هي أطر الاختبار المستخدمة بشكل شائع في .NET وكيف تختلف؟
يضمن الاختبار موثوقية التطبيق وإمكانية صيانته. يدعم .NET إطارات عمل اختبار متعددة.
| الإطار | الوصف | الميزات الرئيسية |
|---|---|---|
| xUnit | أداة اختبار حديثة مفتوحة المصدر. | تنفيذ الاختبار المتوازي. |
| NUnit | ناضجة، تستخدم على نطاق واسع في المؤسسات. | الاختبار الموجه بالسمات. |
| MSTest | Microsoftإطار عمل الاختبار الأصلي. | التكامل مع Visual Studio. |
على سبيل المثال:
[Fact]
public void Add_ReturnsSum()
{
Assert.Equal(4, Calculator.Add(2, 2));
}
أفضل الممارسات:
- استعمل السخرية (موك) للتبعيات.
- صيانة تغطية اختبار عالية مع تكامل CI/CD.
- تضمن اختبارات التكامل للتحقق من صحة واجهة برمجة التطبيقات.
31) ما هي الميزات الجديدة الرئيسية التي تم تقديمها في .NET 8؟
يقدم .NET 8 تحسينات الأداء, AOT الأصلي، وتحسن سحابة أصلية القدرات. ويستمر Microsoftهدفنا هو إنشاء نظام بيئي موحد ومتعدد المنصات.
النقاط الرئيسية:
- التجميع المسبق (AOT) الأصلي: يقلل من وقت بدء التشغيل ومساحة الذاكرة.
- تحسينات ASP.NET Core: توجيه أسرع ودعم HTTP/3 المحسّن.
- بلازور يونايتد: يجمع بين جانب الخادم والويبAssembly نماذج للتطبيقات الهجينة.
- تعزيز الأداء: عمليات EF Core وLINQ أسرع بنسبة 20-30%.
- دعم MAUI الموسع: تم تحسين الأدوات لواجهة المستخدم متعددة الأنظمة الأساسية.
على سبيل المثال: يتيح Native AOT إمكانية تنفيذ ملفات صغيرة مستقلة مثالية للخدمات المصغرة والنشر في حاويات.
32) ما هو التجميع المسبق (AOT) في .NET، ومتى يجب استخدامه؟
تجميع AOT يقوم بتجميع لغة .NET Intermediate Language (IL) مسبقًا إلى كود أصلي قبل وقت التشغيل، مما يحسن أداء بدء التشغيل ويقلل الاعتماد على مُجمِّع JIT.
| النوع | الوصف | أفضل حالة استخدام |
|---|---|---|
| JIT (في الوقت المناسب) | يقوم بتجميع IL في وقت التشغيل. | تطبيقات سطح المكتب أو الخادم. |
| AOT (قبل الموعد المحدد) | يقوم بتجميع IL قبل وقت التشغيل. | الخدمات المصغرة، وإنترنت الأشياء، والأنظمة ذات زمن الوصول المنخفض. |
المزايا:
- وقت بدء تشغيل أسرع.
- بصمة ذاكرة أصغر.
- أداء أفضل للحاوية.
على سبيل المثال:
dotnet publish -r linux-x64 -p:PublishAot=true
يقوم هذا الأمر بإنتاج ملف ثنائي مُجمّع بواسطة AOT أصلي لنظام Linux.
33) كيف يمكن لمطوري .NET دمج قدرات الذكاء الاصطناعي أو التعلم الآلي في التطبيقات؟
يمكن تحقيق تكامل الذكاء الاصطناعي في .NET باستخدام ML.NET, Azure الخدمات المعرفيةأو المكتبات الخارجية.
اقتراب:
- ML.NET: إنشاء نماذج التعلم الآلي وتدريبها مباشرة في .NET.
- Azure الخدمات المعرفية: استخدم واجهات برمجة التطبيقات المدربة مسبقًا للرؤية والكلام واللغة.
- وقت تشغيل ONNX: تشغيل النماذج المدربة في Python/TensorFlow داخل تطبيقات .NET.
- تكامل واجهة برمجة تطبيقات OpenAI: قم بالوصول إلى الذكاء الاصطناعي التوليدي (على سبيل المثال، نماذج GPT) بشكل آمن عبر REST.
مثال (ML.NET):
var mlContext = new MLContext();
var model = mlContext.Model.Load("model.zip", out _);
حالة الاستخدام: التنبؤ بانخفاض عدد المستخدمين، أو اكتشاف الشذوذ، أو التوصيات الذكية في أنظمة المؤسسة.
34) ما هي الاختلافات الرئيسية بين واجهات برمجة التطبيقات REST وواجهات برمجة التطبيقات Minimal في .NET 8؟
واجهات برمجة التطبيقات البسيطة توفير طريقة خفيفة الوزن لبناء واجهات برمجة التطبيقات HTTP مع الحد الأدنى من التعليمات البرمجية النمطية.
| الميزات | واجهة برمجة التطبيقات REST (المبنية على وحدة التحكم) | الحد الأدنى من API |
|---|---|---|
| الهيكلية | يستخدم وحدات التحكم والتوجيه | تعريفات المسارات المضمنة |
| اقامة | يتطلب السمات والبرامج الوسيطة | أسرع وأبسط |
| هاملت | معتدل | أسرع قليلاً (أقل تكلفة) |
| الحلول المقترحة | واجهات برمجة التطبيقات المعقدة للمؤسسات | الخدمات المصغرة أو واجهات برمجة التطبيقات الصغيرة |
على سبيل المثال:
app.MapGet("/hello", () => "Hello, World!");
تُعد واجهات برمجة التطبيقات البسيطة مثالية للخدمات المصغرة والتطبيقات الخالية من الخوادم نظرًا لبساطتها وأدائها.
35) ما هي المبادئ الرئيسية للترميز الآمن في تطبيقات .NET؟
يجب فرض الأمان منذ مرحلة التطوير. يوفر .NET آليات مدمجة وأفضل الممارسات للترميز الآمن.
المبادئ الرئيسية:
- التحقق من صحة جميع المدخلات: منع هجمات الحقن.
- استخدم الاستعلامات المعلمة: تجنب حقن SQL.
- تشفير البيانات الحساسة: استعمل
System.Security.Cryptography. - حفظ الأسرار بشكل آمن: استعمل Azure القفل Vault أو أسرار المستخدم.
- تطبيق المصادقة والتفويض: تطبيق
ASP.NET Identityأو رموز JWT. - استخدم سياسات HTTPS وCORS: منع تسرب البيانات والوصول غير المصرح به.
على سبيل المثال:
using (var cmd = new SqlCommand("SELECT * FROM Users WHERE Id = @id", conn))
{
cmd.Parameters.AddWithValue("@id", userId);
}
36) كيف تستخدم أدوات التشخيص والتحليل لتحسين أداء .NET؟
يساعد إنشاء ملف التعريف على تحديد الاختناقات في الأداء في وحدة المعالجة المركزية أو الذاكرة أو الإدخال/الإخراج.
الأدوات الشائعة:
| أداة | الهدف |
|---|---|
| نقطةTrace / dotMemory | إنشاء ملف تعريف واكتشاف تسرب الذاكرة |
| بيرفيو | تحليل الأداء منخفض المستوى |
| دوت نت-trace | سطر الأوامر tracجي |
| رؤى التطبيق | القياس عن بعد في الوقت الحقيقي في الإنتاج |
النهج:
- تحديد الاختناقات باستخدام عدادات الأداء.
- مسارات كود الملف الشخصي وتخصيصات الذاكرة.
- تحسين استعلامات LINQ وتقليل إنشاء الكائنات.
على سبيل المثال: استعمل dotnet-counters monitor إلى track مقاييس في الوقت الحقيقي مثل نشاط وحدة المعالجة المركزية ونشاط جامع البيانات المهملة.
37) ما هي بعض ممارسات DevOps الفعالة لتطبيقات .NET؟
تكامل DevOps يضمن تسليمًا أسرع وجودة أفضل من خلال الأتمتة والتعاون.
الممارسات الرئيسية:
- خطوط أنابيب CI/CD: استخدم إجراءات GitHub أو Azure DevOps للبناءات والنشر التلقائي.
- البنية التحتية كـ Code (IaC): النشر باستخدام قوالب ARM أو Terraform أو Bicep.
- الاختبار الآلي: دمج xUnit/NUnit في سير عمل CI.
- الحاوية: استخدم صور Docker وKubernetes (AKS).
- رصد: القياس عن بعد المستمر مع Application Insights.
على سبيل المثال: خط أنابيب CI/CD في Azure يمكن لـ DevOps إنشاء واختبار ونشر واجهة برمجة تطبيقات .NET Azure خدمة التطبيق تلقائيًا عند الالتزام بـ Git.
38) كيف يمكنك ضمان قابلية التوسع والتسامح مع الأخطاء في الأنظمة الموزعة المستندة إلى .NET؟
يمكن تحقيق قابلية التوسع والتسامح مع الأخطاء باستخدام مبادئ التصميم الموزعة والأنماط المرنة.
الاستراتيجيات:
- التحجيم الأفقي: نشر مثيلات متعددة خلف موازن التحميل.
- نمط قاطع الدائرة: استخدم مكتبة Polly للتعامل مع الأخطاء المؤقتة.
- التخزين المؤقت والانتظار: استخدم Redis و Azure حافلة الخدمة للمعالجة غير المتزامنة.
- تجزئة قاعدة البيانات: توزيع مجموعات البيانات الكبيرة.
- فحوصات طبية: استعمل
AddHealthChecks()البرامج الوسيطة في .NET Core.
مثال (قاطع الدائرة):
Policy.Handle<HttpRequestException>()
.CircuitBreaker(3, TimeSpan.FromMinutes(1));
39) ما هو الدور الذي تلعبه الحاويات في عمليات نشر .NET الحديثة؟
الحاويات، في المقام الأول من خلال عامل في حوض السفنيعزل التطبيقات وتبعياتها، مما يضمن الاتساق عبر البيئات.
الفوائد :
- نشر يمكن التنبؤ به (يعمل على أي مضيف).
- التوسع المبسط مع Kubernetes (AKS).
- خفيف الوزن وأسرع من الأجهزة الافتراضية.
- يتكامل بسهولة مع سير عمل CI/CD.
مثال (Dockerfile):
FROM mcr.microsoft.com/dotnet/aspnet:8.0 WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "MyApp.dll"]
حالة الاستخدام: يؤدي نشر مجموعة خدمات .NET المصغرة في Kubernetes إلى تحسين قابلية التوسع وعزل الأخطاء.
40) كيف يمكنك تصميم نظام .NET قابل للتطوير لملايين المستخدمين؟
يتطلب تصميم النظام في .NET استشرافًا معماريًا يجمع بين الأداء والتوافر وإمكانية الصيانة.
القفل Archiالقرارات الهيكلية:
- استخدم الخدمات المصغرة: كل خدمة قابلة للنشر بشكل مستقل.
- اعتماد CQRS + مصدر الحدث: نماذج منفصلة للقراءة/الكتابة.
- الرسائل غير المتزامنة: استعمل Azure حافلة الخدمة أو كافكا.
- بوابة API: إدارة حركة المرور والأمن.
- طبقة التخزين المؤقت: Redis أو MemoryCache للوصول بسرعة عالية.
- قابلية توسيع قاعدة البيانات: استعمل Azure Cosmos DB أو SQL المقسم.
- القياس التلقائي: التكوين من خلال Azure خدمة التطبيق أو AKS.
مثال على تدفق التصميم:
المستخدمون → بوابة API → موازن التحميل → الخدمات المصغرة (واجهات برمجة تطبيقات .NET 8) → قاعدة البيانات + ذاكرة التخزين المؤقت Redis → القياس عن بعد عبر Application Insights.
🔍 أفضل أسئلة مقابلة .NET مع سيناريوهات واقعية واستجابات استراتيجية
فيما يلي ١٠ أسئلة واقعية وشائعة في مقابلات .NET، مع شروحات استراتيجية وإجابات نموذجية. تتضمن المجموعة مزيجًا من الأسئلة المعرفية والسلوكية والمواقفية.
لقد تم استخدام العبارات المطلوبة مرة واحدة لكل منها.
1) هل يمكنك توضيح الفرق بين .NET Framework، و.NET Core، و.NET 6/7/8؟
المتوقع من المرشح: فهم تطور نظام .NET البيئي والقدرات متعددة الأنظمة الأساسية والدعم طويل الأمد.
مثال للإجابة: ".NET Framework هو الإصدار الأصلي" Windowsإطار عمل مخصص فقط، بينما قدم .NET Core إمكانيات متعددة الأنظمة وأداءً أفضل. وحدت .NET 6 والإصدارات الأحدث النظام البيئي تحت مجموعة تطوير برمجيات واحدة حديثة ومتعددة الأنظمة مع تحسينات كبيرة في الأداء وجاهزية السحابة وسرعة التطوير.
2) كيف تقوم بتنفيذ حقن التبعية في .NET، ولماذا هو مفيد؟
المتوقع من المرشح: فهم الفصل، والقدرة على الصيانة، والقدرة على الاختبار.
مثال للإجابة: "يتم تنفيذ حقن التبعية في .NET عادةً من خلال الحاوية المضمنة في Microsoft.Extensions.DependencyInjection مساحة الاسم. فهي تُساعد على تقليل الترابط الوثيق، وتُحسّن قابلية الاختبار، وتُبسّط إدارة دورة الحياة من خلال السماح بحلّ التبعيات وقت التشغيل.
3) قم بوصف مشروع .NET الصعب الذي عملت عليه وكيف ساهمت في نجاحه.
المتوقع من المرشح: المساهمة في العالم الحقيقي، وحل المشاكل، والملكية.
مثال للإجابة: في وظيفتي السابقة، ساعدتُ في تحسين تطبيق .NET قديم من خلال إعادة تصميم طبقات الوصول إلى البيانات وإدخال التخزين المؤقت لتقليل أوقات الاستجابة. وقد أدى ذلك إلى تحسين الأداء بأكثر من ثلاثين بالمائة، وحسّن تجربة المستخدم بشكل ملحوظ.
4) كيف يمكنك ضمان أداء وقابلية التوسع لتطبيق .NET؟
المتوقع من المرشح: استخدام أدوات تحديد الملف الشخصي وأنماط الهندسة المعمارية وأفضل ممارسات الترميز.
مثال للإجابة: أقوم بمراقبة الأداء باستخدام أدوات تحليل الأداء مثل dotTrac"فيما يتعلق بـ e و Application Insights، قم بتطبيق البرمجة غير المتزامنة عند الاقتضاء، وقم بتنفيذ التخزين المؤقت، واستخدم أنماطًا معمارية قابلة للتوسع مثل الخدمات المصغرة عند الحاجة."
5) اشرح الفرق بين async/await وmultithreading في .NET.
المتوقع من المرشح: فهم نماذج التزامن.
مثال للإجابة: تُمكّن ميزتا Async وwait العمليات غير الحاجزة بالاستفادة من نمط المهام غير المتزامن، بينما تتضمن تعدد الخيوط إنشاء خيوط منفصلة تعمل بالتوازي. تُعدّ البرمجة غير المتزامنة مثالية للمهام المرتبطة بالإدخال/الإخراج، بينما تُعدّ تعدد الخيوط مفيدة للعمليات المرتبطة بوحدة المعالجة المركزية.
٦) أخبرني عن موقفٍ اضطررتَ فيه لتعلم تقنية .NET جديدة بسرعة. كيف تعاملتَ مع الأمر؟
المتوقع من المرشح: القدرة على التكيف والتعلم المستمر.
مثال للإجابة: في منصب سابق، كنتُ بحاجة إلى تعلم Blazor بسرعة لمشروع عميل. خصصتُ وقتًا للمسؤوليات الرسمية Microsoft "التوثيق، والتدرب على مشاريع صغيرة الحجم، والتعاون مع أعضاء الفريق لضمان تقديم نتائج عالية الجودة في الوقت المحدد."
٧) كيف تصمم واجهة برمجة تطبيقات RESTful في ASP.NET Core؟ ما هي المبادئ الأساسية التي تتبعها؟
المتوقع من المرشح: معرفة طرق HTTP والتوجيه والإصدارات وأفضل الممارسات.
مثال للإجابة: أتبع مبادئ REST، مثل التسمية الصحيحة للموارد، وعدم وجود جنسية، والاستخدام الصحيح لأفعال HTTP. كما أطبق التحقق من صحة النموذج، ورموز الحالة الصحيحة، وإدارة الإصدارات، وآليات المصادقة مثل JWT.
8) كيف تتعامل مع المواعيد النهائية الضيقة عند العمل على مشاريع .NET متعددة في نفس الوقت؟
المتوقع من المرشح: تحديد الأولويات والتنظيم والتواصل.
مثال للإجابة: "في وظيفتي السابقة، كنت أتعامل مع المواعيد النهائية الضيقة من خلال تقسيم المهام إلى مكونات قابلة للإدارة، وإعطاء الأولوية للميزات المهمة، والحفاظ على التواصل المستمر مع أصحاب المصلحة لتحديد توقعات واقعية."
9) كيف تحافظ على جودة الكود في تطبيقات .NET؟
المتوقع من المرشح: المعرفة بالاختبار والمراجعة والأدوات.
مثال للإجابة: أحافظ على جودة الكود من خلال اختبار الوحدات باستخدام xUnit، ومراجعة الكود، وتحليل الكود الثابت، والالتزام بمبادئ SOLID. تضمن هذه الخطوات إمكانية الصيانة والموثوقية على المدى الطويل.
١٠) لنفترض أن واجهة برمجة تطبيقات .NET الإنتاجية تُرجع ٥٠٠ خطأ بشكل متقطع. كيف يُمكنك تشخيص المشكلة؟
المتوقع من المرشح: التصحيح المنظم، واستخدام الأدوات، والهدوء تحت الضغط.
مثال للإجابة: في وظيفتي الأخيرة، كنت أبدأ بمراجعة السجلات، والتحقق من سلامة التبعيات، واستخدام Application Insights أو أدوات مماثلة لـ tracبعد حدوث الأعطال، سأقوم بتحديد ما إذا كانت المشكلة متعلقة بقاعدة البيانات، أو بالتكوين، أو بالبرمجة، وسأقوم بتطبيق الإصلاحات المستهدفة بعد النسخ والتحقق.
