**أحداث التطبيقات **
& قد تجعل أحداث التطبيق في ASP.NET العديد من المهام أسهل حيث توفر الأحداث أساليب جيدة من أجل التحكم بتنفيذ النص البرمجي و تنظيمه. كما نستطيع استعمال أحداث التطبيق بإحدى طريقتين:
- استخدام النموذج الأولي في ملف GIobaI.asax :
كما سوف نقوم في هذه الحالة ببساطة بإضافة ملف النموذج الأولي للأحداث. تشبه هذه الطريقة لما ما كان يتم في Asp سلف Asp.Net حيث كانت تتم كتابة معالجات لأحداث مثل Application_OnStart أو Session_OnEnd.
- تحرير وحدات Http النمطية:
تعطينا وحدة Http النمطية المدى للعمل على طلب Http قبل تخديمه من قبل ASP.NET نستطيع استعمال هذه الوحدات النمطية لتحرير حلول مخصصة لتطبيق ASP.Net معين.
ملاحظة:
- يمكن أن يكون هناك استجابة من Global.asax و وحدة Http النمطية على نفس الحدث.
- تدعم ASP.NET، 18 حدث خاص بالتطبيق كما تسمح لنا بإضافة أحداثنا المخصصة عن الحاجة. &
**صيغة أحداث التطبيق و النموذج الأولي **
& تأخذ أحداث التطبيق في Global.asax الصيغة :
في VB.NET
أما في# C: يحدد المعامل التي قمنا باستخدامه الغرض الذي قام بإطلاق الحدث إضافة إلى المعامل EventArgs الذي يتيح المجال للغرض الذي أطلق الحدث بتزويدنا بمعلومات و تفاصيل عن هذا الحدث.
صيغة أحداث التطبيق و النموذج الأولي بالإضافة لما سبق يمكننا استخدام الصيغة السريعة دون تحديد أسماء المعاملات
و في C#:
لا يمكننا في الصيغة السابقة الوصول إلى EventArgs أو Sender لذلك يفضل استخدام الصيغة المفصلة لأنها تمكننا من تحكم أفضل.
يمكننا تصنيف أحداث التطبيق إلى تصنيفين أساسيين:
- أحداث يتم اطلاقها عند كل طلب .
- أحداث شرطية يتم اطلاقها عند تحقق شرط مثل الأحداث التي تم اطلاقها عند حدوث خطأ ما.&
**الأحداث السابقة للطلب**
& لقد عرفت أحداث التطبيق المذكورة اّنفا للطلب بأنها الأحداث التي يتم إنشاؤها و إطلاقها خلال كل طلب يجري تحويله إلى تطبيق ASP.NET كأحداث بداية و نهاية الطلب:
- حدث AppIication_OnBeginRequest : يتم انشاء و إطلاق هذا الحدث مع كل طلب تجري معالجته من قبل ASP.NET. حيث يتغير و يختلف هذا الحدث عن الحدث المألوف AppIication_OnStart في نسخة ASP الذي يتم إطلاقه مرة واحدة عند تشغيل التطبيق.
حيث يمكننا استعمال هذا الحدث لتشغيل نص برمجي قبل أي صفحة أو خدمة وب أو قبل أن يتمكن أي معالج طلب HTTP من بدء العمل على أي طلب.
- الحدث AppIication_OnAuthenticateRequest : يجري إطلاق هذا الحدث عندما تصبح ASP.NET جاهزة للتحقق من الطلب. يسهل هذا الحدث بناء و تطبيق نظام تحقق حيث نستطيع فحص الطلب و تنفيذ النص البرمجي الذي يحدد فيما إذا كان الطلب مقبولاً أم لا.
- الحدث AppIication_OnAuthorizationRequest : إن هذ الحدث يعمل بصورة شبيهة لحدث التحقق حيث يتم إطلاق هذا الحدث عندما يصبح الطلب جاهزاً ليجري إعطاءه السماحيات على مصدر ما.
يمكننا هذا الحدث من إنشاء وتنفيذ نصوص برمجية تحدد السماحيات الخاصة بالطلبات.
- الحدث AppIication_OnResoIveRequestCache : تملك ASP.NET أساليب و آليات تخزين صفحات و خدمات الوب. أي بدلاً من تنفيذ الصفحة لكل طلب يمكن أن يتم تنفيذ الصفحة لمرة و تخديم طلبات أخرى بالنسخة الستاتيكية الناتجة.
ينطلق هذا الحدث عندما تصبح ASP.NET جاهزة لتحديد كون الطلب سيتم تخديمه أم لا. &
** Application-OnAcquest state **
& يجري إطلاق هذا الحدث عندما تصبح ASP.NET جاهزة من أجل تلقي داتا الجلسة من داخل إجراء ASP.NET من خارجه أو من SQLServer. حيث إذا قررنا استعمال غرض Session مخصص كغرض XMLSession مثلاً، يمكننا تحضير و تأهيل قيم ذلك الغرض من خلال هذا الحدث.
حيث أنه عند تسليم الطلب للصفحة أو لخدمة الوب سيكون الغرض XmlSession مؤهلاً بالقيم.
- الحدث AppIication_OnPreRequestHandIerExecute: يجري إطلاق هذا الحدث قبل استدعاء معالج تخديم الطلب. و في الكثير من الحالات يكون هذا المعالج هو معالج Page.
كما أنه بعد إطلاق الحدث Application_OnPreRequestHandIerExecute يتسلم معالج HTTP الطلب.
يتم إطلاق الحدث التالي بعد الإنتهاء من معالجة الطلب.
- الحدث AppIication_OnPostRequestHandIerExecute : كما يجري إطلاق هذا الحدث عند الإنتهاء من معالجة الطلب. في هذه المرحلة يكون لدى الغرض Response معطيات و معلومات يتم إرسالها إلى الزبون.
- الحدث AppIication_OnReIeaseRequestState إن هذا الحدث يقوم بتحرير معلومات الجلسة و تحديث المعلومات المخزنة عند اللزوم. بعد إطلاق هذا الحدث لا يمكن تحديث معلومات الجلسة.
- الحدث AppIication_On_UpdateRequestCache :أيضاً يجري إطلاق هذا الحدث عندما تقوم ASP.NET بتحديث خرج الذاكرة الخبيئة بالطلب الحالي .
- الحدث AppIication_OnEndRequest: هذا هو الحدث الأخير الذي سيتم إطلاقه ويسمح لنا التحكم باستجابة التطبيق قبل إرسال ترويسات