ما هو مجال التطبيق (Application Domain)؟

مجال التطبيق هو حد عزل منطقي تم إنشاؤه حول تطبيقات .NET بحيث لا تصل التطبيقات إلى بعضها البعض أو تؤثر على بعضها البعض.
إنها عملية خفيفة الوزن لها مجموعة خاصة بها من التعليمات البرمجية والبيانات وإعدادات التكوين. يتم إنشاء مجالات التطبيق بواسطة مضيفي وقت التشغيل، والتي يتم استدعاؤها بواسطة وقت تشغيل اللغة العامة (CLR) لتحميل التطبيقات التي تحتاج إلى التنفيذ.
قبل .NET، كانت حدود العزل بين التطبيقات هي العمليات التي تم تحميلها فيها. كل عملية لها ذاكرة افتراضية خاصة بها ولا يمكنها الوصول إلى ذاكرة عملية أخرى مباشرة. يحتوي على ميزات مشابهة لتلك الخاصة بالعملية.
تحتوي مجالات التطبيق على الميزات التالية:
- الاستخدام الأمثل لموارد النظام باستخدام عدد أقل من العمليات لتنفيذ تطبيقات متعددة.
- الموثوقية باستخدام عزل المهام في المواقف التي لا يمكن فيها مشاركة البيانات والمهام غير المستقرة التي تحتاج إلى تفريغها دون التأثير على العملية.
- كفاءة أفضل من خلال تنفيذ عمليات طويلة الأمد نادراً ما تستخدم امتدادات كبيرة مع ذاكرة مثالية.
- أمان التطبيق عن طريق تقييد الوصول المباشر إلى التعليمات البرمجية التي تعمل في تطبيق واحد من التعليمات البرمجية أو موارد تطبيق آخر.
- التحكم في الأمان من خلال تحديد تفاصيل التكوين مع كل مجال تطبيق.
إقرأ أيضاً… ما هي إدارة دورة حياة التطبيق؟
ما هو مجال التطبيق؟
يختلف مجال التطبيق في طريقة تحميل CLR وتنفيذ العديد من تطبيقات .NET في عملية واحدة. لا يسمح بالوصول المباشر إلى ذاكرة التطبيقات المحملة.
تتم إدارته بواسطة CLR الخاص بـ .NET Framework بينما تتم إدارة العملية بواسطة نظام التشغيل. يوفر CLR عزلًا للأخطاء بين مجالات التطبيق بأقل عبء من العمليات، نظرًا لميزته المتأصلة في أمان النوع القابل للتحقق من التعليمات البرمجية المُدارة.
أيضًا، يمكن أن توجد خيوط متعددة في مجال التطبيق، فهي حرة في عبور حدوده. على سبيل المثال، يعد ASP.NET مضيفًا لوقت التشغيل يقوم بإنشاء مجالات تطبيق متعددة لكل مستخدم يقوم بالوصول إلى موقع ويب.
يمكن أيضًا إنشاؤها وتهيئتها للتطبيقات التي تحتاج إلى عزل التعليمات البرمجية أو تحميل الامتدادات فقط أثناء استخدامها.
هذه الحقيقة تجعل مجالات التطبيق مفيدة في المواقف التي يتم فيها استخدام المكونات الإضافية والتعليمات البرمجية الأخرى غير الموثوق بها. كما أنها مفيدة في تقليل مجموعة العمل من التطبيقات التي تستخدم مكتبات DLL كبيرة.
لتمكين الاتصال بين الكائنات في مجالات تطبيق مختلفة، يتم استخدام أحد الأنواع الثلاثة التالية من الكائنات:
- Marshal-By-Value: تم تمرير نسخة كاملة من الكائن إلى مجال التطبيق المستدعي. يستخدم هذا عندما يمكن نقل حالة الكائن لأسباب تتعلق بالأداء.
- Marshal-By-Reference-Reference (MBR): يتم تمرير وكيل الكائن إلى العميل؛ تُستخدم عندما يجب أن تظل حالة الكائن داخل مجال التطبيق.
- Context-bound: كائن MBR يُستخدم عبر المجالات أو ضمن سياق مجال التطبيق الخاص به.