سلسلة محاضرات ASP (7) استخدام المكونات والكائنات
الكاتب:Eve Cole
وقت التحديث:2009-05-30 19:59:15
تعتبر مكونات ActiveX هي المفتاح لبناء تطبيقات ويب قوية. توفر المكونات الكائنات المستخدمة في البرامج النصية لتنفيذ المهام. يوفر ASP أيضًا كائنات مضمنة يمكن استخدامها في البرامج النصية. يناقش هذا الموضوع كيفية استخدام الكائنات التي توفرها المكونات بالإضافة إلى الكائنات المضمنة التي توفرها صفحات الخادم النشطة مباشرة.
حول المكونات
مكون ActiveX هو ملف يحتوي على تعليمات برمجية تؤدي مهمة أو مجموعة من المهام. يمكن للمكونات تنفيذ مهام شائعة بحيث لا يتعين عليك إنشاء التعليمات البرمجية لتنفيذ هذه المهام بنفسك. على سبيل المثال، يمكن لمكون المؤشر عرض أحدث أسعار الأسهم على صفحة ويب. يأتي ASP مزودًا بمكونات جاهزة للاستخدام، مثل مكون الوصول إلى قاعدة البيانات. احصل على المكونات الاختيارية من مطوري الطرف الثالث. أو يمكنك كتابة المكون الخاص بك.
يمكنك الاستفادة من المكونات باعتبارها وحدات البناء الأساسية للبرامج النصية والتطبيقات المستندة إلى الويب. ما عليك سوى معرفة كيفية الوصول إلى الكائن الذي يوفره المكون. حتى كاتب السيناريو المبتدئ يمكنه كتابة البرامج النصية دون فهم كيفية عمل المكونات. باختصار، تمكنك المكونات من كتابة نصوص برمجية قوية دون تعلم البرمجة.
إذا كنت مطور تطبيقات ويب، فيمكنك تغليف منطق الأعمال عن طريق كتابة المكونات. على سبيل المثال، يمكنك كتابة مكون لحساب ضريبة المبيعات على منتج ما. يمكن بعد ذلك استدعاء هذا المكون في البرامج النصية التي تعالج أوامر المبيعات. يتيح لك حساب معدلات الضرائب بشكل مستقل أثناء معالجة الطلب تحديث المكون فقط عندما تتغير ضريبة المبيعات في مكان ما، دون الحاجة إلى تغيير عملية المعالجة بأكملها. يمكن كتابة المكونات بأي لغة تدعم Component Object Model (COM)، مثل C أو C++ أو Java أو Visual Basic. إذا كنت معتادًا على برمجة COM، فإن مكون ActiveX هو خادم التنفيذ التلقائي. للتشغيل على خادم ويب، لا يمكن أن تحتوي مكونات ActiveX على عناصر واجهة المستخدم الرسومية، مثل وظيفة MsgBox الخاصة بـ Visual Basic.
المكونات قابلة لإعادة الاستخدام. بمجرد تثبيت أحد المكونات على خادم ويب، يمكن استدعاؤه من برنامج نصي ASP، أو تطبيق ISAPI، أو مكون آخر على الخادم، أو برنامج مكتوب بلغة أخرى متوافقة مع COM.
مكون المثيل الذي يقوم بإنشاء كائن مكون هو تعليمة برمجية قابلة للتنفيذ موجودة في مكتبة الارتباط الديناميكي (.dll) أو الملف القابل للتنفيذ (.exe). يمكن للمكون توفير كائن واحد أو أكثر وطرقه وخصائصه. لاستخدام كائن يوفره أحد المكونات، قم بإنشاء مثيل للكائن وقم بتعيين اسم متغير لهذا المثيل الجديد. يمكن إنشاء مثيلات الكائنات باستخدام أسلوب Server.CreateObject الخاص بـ ASP. بعد ذلك، استخدم تعليمات تعيين المتغير الخاصة بلغة البرمجة النصية لتسمية مثيل الكائن. عند إنشاء مثيل كائن، يجب عليك توفير الاسم المسجل (PROGID) للمثيل. بالنسبة للمكونات الأساسية التي يوفرها ASP، يمكن الحصول على PROGID الخاص بالكائن من الصفحة المرجعية.
على سبيل المثال، يتكرر مكون Ad Rotator الخاص بـ ASP عبر الإعلانات الرسومية. يوفر مكون Ad Rotator كائنًا يُسمى Ad Rotator، ويكون PROGID الخاص به هو "MSWC.AdRotator". لإنشاء مثيل لكائن Ad Rotator، استخدم الأمر التالي:
فبسكريبت:
<% Set MyAds = Server.CreateObject("MSWC.AdRotator") %>
جسكربت:
<% var MyAds = Server.CreateObject("MSWC.AdRotator") %>
إذا كنت معتادًا على VBScript أو JScript، ستلاحظ أنه لا توجد وظائف لغة برمجة نصية لإنشاء مثيلات كائن جديدة، مثل CreateObject في VBScript أو New في JScript. يجب عليك استخدام أسلوب Server.CreateObject الخاص بـ ASP، وإلا فلن يتمكن ASP من تتبع استخدام الكائنات في لغات البرمجة النصية.
يمكن أيضًا إنشاء مثيلات الكائن باستخدام علامة HTML <OBJECT>. يجب عليك توفير قيمة الخادم للسمة RUNAT وكذلك توفير مجموعة سمات المعرف لاسم المتغير الذي سيتم استخدامه في لغة البرمجة النصية. يمكن التعرف على الكائن باستخدام اسم التسجيل (PROGID) أو رقم التسجيل (CLSID). يقوم المثال التالي بإنشاء مثيل لكائن Ad Rotator باستخدام الاسم المسجل (PROGID):
<OBJECT RUNAT=معرف الخادم=MyAd PROGID="MSWC.AdRotator"></OBJECT>
يقوم المثال التالي بإنشاء مثيل لكائن Ad Rotator باستخدام رقم التسجيل (CLSID):
<OBJECT RUNAT=معرف الخادم=MyAd
CLASSID="Clsid:1621F7C0-60AC-11CF-9427-444553540000"></OBJECT>
يمكن إرسال إنشاء كائن من مكونات Java Class ActiveX المكتوبة بلغة Java كفئات Java بدلاً من ملفات DLL. لاستخدام Server.CreateObject لإنشاء مثيل لكائن فئة Java، يجب تسجيل الفئة كمكون COM باستخدام برنامج Javareg. يمكنك بعد ذلك استخدام Server.CreateObject مع PROGID أو CLSID.
إذا لم يكن مثيل الكائن بحاجة إلى الوصول إلى كائنات ASP المضمنة والمشاركة في المعاملات، فيمكنه استدعاء فئة Java مباشرة باستخدام الآلية الأبسط التي توفرها شاشة Java. يجب عليك استخدام جهاز Microsoft الظاهري لـ Java 2.0 (المقدم من خلال توزيع Internet Information Server وPersonal Web Server) لاستخدام شاشة Java.
إذا كنت تريد استخدام جهاز عرض لإنشاء كائن، فيجب عليك استخدام أمر VBScript أو JScript GetObject وتوفير الاسم الكامل لفئة java في النموذج java:classname. يقوم مثال VBScript التالي بإنشاء مثيل لكائن Java Date.
<%
تاريخ خافت
تعيين التاريخ = GetObject("java:java.util.Date")
%>
<p> التاريخ هو <%= date.toString() %>
لا يمكن للكائنات التي تم إنشاؤها عن طريق استدعاء GetObject بدلاً من Server.CreateObject الوصول إلى كائنات ASP المضمنة ولا يمكنها المشاركة في المعاملات.
استخدام كائنات ASP المضمنة
يوفر ASP كائنات مضمنة تؤدي المهام. على سبيل المثال، يقوم كائن الطلب بتخزين مراجع من جداول HTML.
أساليب استدعاء الكائنات هي أنشطة يمكن تنفيذها على كائن أو استخدامه. بناء الجملة العام لاستدعاء الطريقة هو:
معلمات Object.Method
تختلف المعلمات من طريقة إلى أخرى.
على سبيل المثال، يمكنك استخدام أسلوب الكتابة للكائن المدمج في الاستجابة لإرسال معلومات إلى المتصفح باتباع الإرشادات التالية:
<% Response.اكتب "Hello World" %>
لاحظ أن بعض لغات البرمجة النصية لا تدعم بناء جملة Object.Method. إذا كانت اللغة التي تستخدمها لا تدعم بناء الجملة هذا، فيجب عليك إدخال إدخال في السجل لاستخدام تلك اللغة كلغة البرمجة النصية الأساسية.
ضبط خصائص الكائن: الخصائص هي قيم مميزة تصف كائنًا ما. تحدد الخصائص خصائص الكائن (مثل نوع الكائن) أو حالة الكائن (مثل تمكينه أو تعطيله). بناء الجملة العام هو:
Object.Property
يمكن قراءة قيم الخاصية وتعيينها. بالنسبة لبعض الكائنات، يمكن أيضًا إضافة خصائص جديدة.
على سبيل المثال، يحتوي مكون Ad Rotator على خاصية Border، والتي تحدد ما إذا كان الإعلان له حدود أم لا وسمك الحدود. لا يحدد التعبير التالي أي حدود:
<% MyAds.Border = 0 %>
يمكنك استخدام توجيه إخراج ASP لعرض القيم الحالية لخصائص معينة. على سبيل المثال، سيعيد الأمر التالي القيمة TRUE إذا كان المتصفح لا يزال متصلاً بالخادم:
<%= Response.IsClientConnected %>