إن تحويل رمز ASP إلى مكونات ليس فقط تسريع ASP ، ولكن أيضًا لحماية الكود الخاص بك بشكل أفضل. دعنا نكتب برنامجًا تعليميًا عن كتابة ASP في DLLS. دعونا نتبع محرر الخطأ الجديد.
مكونات من جانب الخادم
بادئ ذي بدء ، يجب أن تكون المكونات الموجودة على جانب الخادم مختلفة عن تلك الموجودة على جانب العميل. يتم نقل المكونات الموجودة على جانب العميل عبر الشبكة وتعتمد على HTML للعمل. يمكن أن تكون مفيدة فقط في IE. ومع ذلك ، فإن المكونات الموجودة على جانب الخادم تعمل على الخادم وتنفيذ عمليات مختلفة على الخادم. لذلك ، يمكن لجميع المتصفحات الاستمتاع بها ، وتعتمد على الخادم بدلاً من المتصفح.
عندما يُطلب من IIS تنفيذ برنامج ASP ، ستجد أولاً الرمز بين علامات <٪ ٪> في ملف ASP وتنفيذه (أو الرمز بين <script Runat = server> </script>). إذا تم استدعاء برنامج ASP هذا من قبل ، فسيستخدم البرنامج المترجم في الذاكرة لإرجاع رمز HTML إلى المستخدم. إذا لم يكن كذلك ، فسيتم إعادة ترجمة. هنا ، يتمتع ASP بميزة سرعة أكبر بقليل من CGI ، لأن CGI يستخدم مؤشر ترابط لكل طلب. هذا يستهلك موارد الخادم بشكل كبير.
هل تريد البرنامج الذي كتبته لتشغيله في IIS بمفردك!؟! الآن يمكنك أن تفعل ذلك! باستخدام VB5 (بالطبع هو VB6 الآن) ، يمكنك إنشاء مكتبات مرتبطة ديناميكية (ملف DLL) ، والتي يمكن تشغيلها مباشرة على IIS (إذا كان هناك ملف ASP للطلب).
متطلبات النظام والبرامج
تحتاج إلى نظام تشغيل 32 بت لتشغيل ASP. بالطبع ، عليك أيضًا تثبيت IIS أو PWS. تم تطوير برنامجنا التالي في بيئة Windows95+PWS+VB5.
لنبدأ
ابدأ VB وحدد أيقونة ActiveX. يمكن العثور على هذا الرمز في المشروع الجديد! ستوفر VB اسم مشروع افتراضي (Project1) واسم الفصل (Class1). سوف نغير كلا الاسمين. قبل تغيير الاسم ، يرجى أولاً تأكيد أن لدينا مكتبة كائن Microsoft Active Server ، وهي مفيدة للغاية في برامجنا. حدد "مشروع" من القائمة وحدد "مرجع" فيه ، وسيظهر نافذة "المرجع".
حدد مكتبة كائن صفحات الخادم النشط Microsoft.
اسم المشاريع والفصول الدراسية
الآن دعنا نسمي Project1 و Class1 وفقًا لهواياتنا! تسميةهم أمر مهم للغاية. سوف نستخدم اسم المشروع هذا واسم الفصل لإنشاء مثيل لهذا المكون في المستقبل! سيتم تقديم هذا بالتفصيل لاحقًا.
لا أريد أن أقول المزيد عن كيفية تغيير الاسم!
تم تغيير اسم مشروعنا إلى مثال واسم الفصل هو HelloWord
كيفية استخدام الهندسة والفصول الدراسية
الآن لدينا مشروعنا الخاص (مثال 1) واسم الفصل (HelloWorld). في المستقبل ، سوف نستخدم أسمائهم للإشارة إلى هذا المكون في رمز ASP. في ASP سنشير إليه على هذا النحو ، على النحو التالي:
تعيين objreference = server.createBject ("projectName.ClassName")
اقتباس مشروعنا هو:
تعيين objreference = server.createBject ("example1.helloworld")
الآن يمكننا استخدام Objreference لاستدعاء الوظيفة والروتين الفرعي الذي أنشأناه في المكون. بعد ذلك ، سنكتب روتينًا فرعيًا لـ Sayhello ، ورمزنا لتنفيذه على النحو التالي:
(٪
تعيين objreference = server.createBject ("example1.helloworld")
objreference.Sayhello
٪>
من أجل استخدام أساليب ASP في فئة HelloWord ، يجب عليك كتابة onStartPage في هذا الفصل
وظيفة فرعية. على النحو التالي:
onStartPage العام العام (تم SquarScriptingContext كبرمجة نصية)
اضبط myscriptingContext = passedScriptingContext
نهاية الفرعية
الآن ، بغض النظر عن متى يقوم المستخدم بالوصول إلى ملف ASP مع هذا المكون ، سيرسل IIS النص البرمجي إلى كائننا. يتضمن هذا ScriptingContext جميع أساليب وخصائص ASP. من حيث التنفيذ ، يتيح لنا ذلك الوصول إلى جميع كائنات ASP. انظر الرمز التالي:
onStartPage العام العام (تم SquarScriptingContext كبرمجة نصية)
اضبط myscriptingContext = passedScriptingContext
اضبط myapplication = myscriptingcontext.application
اضبط myrequest = myscriptingcontext.request
تعيين myresponse = myscriptingcontext.response
تعيين myserver = myscriptingcontext.server
تعيين mysession = myscriptingcontext.session
نهاية الفرعية
في المستقبل ، يمكننا استخدام myapplication في VB بدلاً من التطبيق في ASP ، وبنفس الطريقة ، يمكن أن يحل محل الطلب ، الخادم ... ، لكننا نريد إعلان هذه المتغيرات قبل OnStartPage:
MyScriptingContext الخاص كبرمجة نصية
myapplication الخاص كتطبيق
MyRequest الخاص كطلب
MyResponse الخاص كرد
MyServer الخاص كخادم
mysession الخاص كجلسة
الكائنات باستخدام ASP
يمكن الآن استخدام متغيراتنا مثل كائنات ASP القياسية! على سبيل المثال ، غالبًا ما نستخدم Request.Form () في ASP لجمع البيانات لتقديم النماذج. الآن نقوم بتنفيذ هذه الوظيفة في VB لدينا ، الرمز هو كما يلي:
تم تنفيذه في ASP:
(٪
myTempVariable = request.form ("اسم المستخدم")
Response.write ("لقد أدخلت" و MyTempVariable و "كاسم المستخدم الخاص بك")
٪>
تم تنفيذه في VB:
mytempvariable = myrequest.form ("اسم المستخدم")
myresponse.write ("لقد أدخلت" و mytempvariable و "كاسم المستخدم الخاص بك")
باستخدام MyResponse بدلاً من الاستجابة ، يمكننا استخدام جميع طرق الاستجابة. بالطبع ، يمكن استخدام اسم MyResponse عرضيًا ، ويمكنك حتى اختيار الاستجابة.
شيء آخر يجب أن نلاحظه هو أنه يتعين علينا كتابة الوظيفة الفرعية للرجال في الفصل الذي أنشأناه ، وهذا onStartPage هو عكس ذلك! OnStartPage هو إنشاء كائن ، والصفحة الصلية هي تدمير الكائن.
Public Sub -indendpage ()
اضبط myScriptingContext = لا شيء
اضبط myapplication = لا شيء
اضبط myrequest = لا شيء
تعيين myresponse = لا شيء
تعيين myserver = لا شيء
تعيين mysession = لا شيء
نهاية الفرعية
طريقة Sayhello
دعنا ننشئ وظيفة فرعية لعرض "Holle World". طريقة Sayhello هذه مجرد وظيفة فرعية في فئة HelloWorld. سنستخدم الطريقة التالية لعرضها في ASP في المستقبل
(٪
تعيين objreference = server.createBject ("example1.helloworld")
objreference.Sayhello
٪>
برنامج Sayhello بسيط للغاية!
SINHELLO العامة ()
myresponse.write ("Hello World")
نهاية الفرعية
الآن بعد كتابة مكون صغير ، فإن الباقي هو تجميع هذا المكون ، وحفظه في قائمة "Project" ، ويمكنك اختيار أي اسم. دعونا نستخدم example1.vbp! ثم حدد "make example1.dll" في القائمة وتجميعه في ملف DLL. المكون مكتمل حقا!
لاحظ أنه إذا قمت بتجميع هذا المكون ، فيجب عليك إيقاف تشغيل PWS أولاً ثم تجميع هذا المكون. خلاف ذلك ، سيخبرك VB أن بعض المكونات قيد الاستخدام.
استخدم مكوناتنا الخاصة في ASP.
عندما تقوم بتصحيح الخطأ في التجميع وتجميع مشروع Imexam1 بنجاح ، يتعين عليك إخراج محرر HTML المفضل لديك وكتابة البيان التالي وحفظه كملف ASP.
〈HTML>
〈head>
〈title> مثال 1 〈/title>
〈/head>
〈body>
(٪
تعيين objreference = server.createBject ("example1.helloworld")
objreference.Sayhello
٪>
〈/body>
〈/html>
بعد الجري ، يمكنك رؤية النتائج:
مرحبا بالعالم
تسجيل المكونات
إذا كنت ترغب في مشاركة مكوناتك مع أصدقائك وجيرانك ، فيجب عليك تسجيل مكوناتك على نظامك. نستخدم عمومًا REGSVR32.EXE لتسجيل المكونات. بعد التسجيل ، ستظهر مكوناتك في دليل Windows/System لـ Win95/Win98. فيما يلي مثال على التسجيل:
regsvr32.exe c: /example1/example1.dll
في نظامك ، سوف يسجل VB تلقائيًا ، لذلك نادرًا ما تستخدم REGSVR32.EXE
لقد كتبنا فقط مكونًا صغيرًا جدًا هنا. يمكنك كتابة مكوناتك الكبيرة واستخدام العديد من عناصر التحكم في VB.
مفتاح كتابة DLLS بواسطة ASP هو معرفة كيفية تطوير مكونات DLL. إن تطوير مكونات DLL ليس رمزًا معقدًا ، ويتطلب التعلم من خلال جهودك.