يعتمد نجاح تطبيقات ASP عادة على المفاضلة بين الهندسة المعمارية والتصميم. بالنظر إلى مجموعة واسعة من تقنية ASP والتعقيد المتأصل للتطبيقات الحالية ، فإن هذه المفاضلة أمر صعب للغاية. فيما يلي مقدمة موجزة لمبادئ واستخدام ASP في قناة التكنولوجيا الجديدة الخاطئة.
يمكن أن يساعدك إنشاء اتفاقيات التسمية وتوحيد بنية الدليل بشكل كبير على تحسين قابلية قراءة تطبيقات ASP الخاصة بك. على الرغم من عدم وجود معايير رسمية حاليًا لتطبيقات ASP ، فقد أنشأ العديد من المطورين بعض الطرق المشتركة. هنا ، سوف أشارككم بعض الطرق العامة.
نظرًا لأن تقنية ASP تعتمد على محركات البرنامج النصي للعمل ، والبرامج النصية لها طبيعة غير صارمة في النوع ، فإن اتفاقيات التسمية غامضة أيضًا. في اللغات ذات أنواع صارمة للغاية ، سيتم الإعلان عن المتغيرات وفقًا لنوعها الفعلي. عند استخدام تقنية ASP ، عادة ما يتم الإعلان عن المتغيرات في رمز ASP بالطريقة التي تقوم بها بمعالجة المتغيرات ، بدلاً من نوع البيانات الفعلي. على سبيل المثال ، عند استخدام "Visual Basic (R) Scripting Edition (VBScript)" ، على الرغم من أن جميع متغيرات VBScript متغيرة ، إلا أنك تعلن عن علامة النجاح كـ BSUCCESS (B لـ BOOLEAN) بدلاً من VSUCCESS (V للمتغير).
الجدول التالي هو بعض اتفاقيات التسمية الشائعة.
بادئة متغيرة:
| بادئة | المتغيرات المستخدمة | مثال متغير |
|---|---|---|
| ب أو بلن | منطقية | bsuccess |
| ج أو كور | عملة | الصمود |
| D أو DBL | مزدوج | dblquantity |
| DT أو DAT | التاريخ والوقت | dtdate |
| F أو FLT | يطفو | فراتيو |
| L أو LNG | طويل | lmilliseconds |
| أنا أو int | عدد صحيح | آيسونتر |
| S أو Str | خيط | sname |
| A أو ARR | صفيف | Ausers () |
| س أو OBJ | كوم كائن | OpiPeline |
بادئة متغيرة لكائنات قاعدة البيانات:
| بادئة | المتغيرات المستخدمة | مثال متغير |
|---|---|---|
| سي إن إن | اتصال | cnnpubs |
| RST | مجموعة التسجيل | RSStauthors |
| CMD | يأمر | cmdemplyee |
| FLD | مجال | fldlastname |
استخدام النطاق والبادئة:
| بادئة | يوضح |
|---|---|
| G_ | تم إنشاؤها في Global.asa. |
| م _ | بالنسبة لصفحات ASP أو في ملفات ، فهي محلية. |
| (لا بادئة) | المتغيرات غير المتوقفة ، البادئات محلية للعملية |
منشور في قاعدة المعرفة (KB) "Q110264 Info: تقدم Microsoft Consulting Services اتفاقيات التسمية لـ Visual Basic" (باللغة الإنجليزية) نظرة ثاقبة في اتفاقيات التسمية.
استخدم هياكل الدليل حيثما أمكن ذلك لتوفير موقع ثابت لمكونات التطبيق المختلفة. إن بنية الدليل الفعلية لتطبيقك متروك لك بالطبع ، ولكن عادةً ما يكون وضع الصور والمستندات وتضمين الملفات والمكونات في أدلة منفصلة. فيما يلي مثال على هيكل دليل تطبيق ASP بسيط.
مثال بنية الدليل:
/simpleaspapp /docs /images /يشمل
تتيح لك هيكل الدليل الجيد تطبيق أذونات NTFS بشكل انتقائي. يمكنك أيضًا استخدام المسارات النسبية من داخل تطبيق ASP. على سبيل المثال ، يمكنك استخدام الكود التالي للإشارة إلى File Top.asp في الدليل يتضمن من صفحة Default.asp الموجودة في دليل SimpleasPapp:
./includes/top.asp
لاحظ أن تمديد ملف تضمين هو .asp ، وليس .inc. يتم ذلك لأسباب أمنية ، ويستخدم امتداد .asp (بدلاً من.
للحصول على بعض النصائح والنصائح الأخرى حول تطبيقات ASP المهيكلة ، راجع مقالة "اتفاقيات ASP" (باللغة الإنجليزية).
سيتم تشغيل ASP تحت الخدمة. عند تصميم تطبيق ASP ، ستواجه فورًا بيئات الأمان ومشكلات الخيوط التي لن تواجهها في تطبيق سطح المكتب. في بيئة سطح المكتب ، يتم التعامل مع التنفيذ المفرد فقط كمستخدم تفاعلي عادةً ولديه الوصول إلى نظام سطح المكتب الحالي. في خدمات معلومات الإنترنت (IIS) ، يتم محاكاة مؤشرات ترابط العميل المتعددة في بيئات مستخدم مختلفة للاتصال بتطبيقك ، ويقتصر تطبيقك على سطح المكتب "النظام".
ماذا يعني هذا بالنسبة لك؟ يرجى تعلم وضع السلامة من IIS. أذكرك أيضًا: لمجرد أن شيئًا ما يمكن أن يعمل بشكل صحيح تحت IDE Visual Basic لا يعني أنه يمكن أن يعمل بأمان في تقنية ASP. لا يقوم Visual Basic IDE بمحاكاة بيئة وقت التشغيل بدقة. تتضمن أخطاء التصميم الشائعة استخدام عناصر التحكم .OCX التي تتطلب واجهات المستخدم في تقنية ASP ، وذلك باستخدام المكونات غير الآمنة للمواضيع ، واستخدام المكونات التي تتطلب سياقات مستخدم خاصة. واحدة من أسهل المشكلات التي يجب تجنبها هي محاولة الوصول إلى مفتاح التسجيل HKEY_Current_User (HKCU) من التطبيق (على سبيل المثال ، لا تسمي وظائف Visual Basic وحفظها ، وكلاهما يعتمد على HKCU). وبالمثل ، لا تظهر مربعات الرسائل أو مربعات الحوار الأخرى التي تتطلب من المستخدم التفاعل مع الحاسوب البشري.
المقالات التالية هي كتب تمهيدية جيدة حول قضايا الأمن والتحقق في تقنية ASP:
توفر تقنية ASP خدمة تمثيل عن طريق إنشاء إخراج HTML. باختصار ، يقوم بإنشاء واجهة مستخدم. تحتاج إلى فصل منطق العمل عن البرنامج النصي لتمثيل ASP. حتى إذا لم تستخدم مكونات COM لفصل منطق العمل عن رمز ASP ، على الأقل فصل منطق العمل إلى وظائف وتضمين ملفات لتحسين الصيانة ، قابلية القراءة ، وإعادة الاستخدام. يمكنك أيضًا تقدير فوائد طرق التصميم المعياري عند الحاجة إلى استكشاف الأخطاء وإصلاحها مشكلات العزلة.
يمكن لمكالمة وظائف وطرق داخل البرنامج النصي تجنب عبث الرمز وإضافة الهياكل إلى تطبيقات ASP. يوضح المثال التالي كيفية فصل المنطق إلى استدعاءات الطريقة من رمز ASP:
lt ؛ ٪ main () mybizmethod () ... sub main () getData () displayData () end sub ٪>
يمكن تطبيق هذا المبدأ عند استخدام التقنيات التي تتضمن وظيفة ASP. فيما يلي مثال على كيفية استخدام هذا المبدأ عند استخدام فئة الويب Visual Basic:
المشكلة الشائعة هي الانتقال من نظام سطح المكتب إلى الخادم. لم يكن العديد من المطورين الذين لديهم خلفية أنظمة سطح المكتب يشعرون بالقلق من بعض مشاكل الخادم ومشاركة الموارد. في تطبيقات سطح المكتب التقليدية ، يعد الاتصال بالخادم عملية تستغرق وقتًا طويلاً. لتحسين تجربة المستخدم ، عادة ما يتم استخدامه لاكتساب الموارد مبكرًا وتأخير إصدار الموارد. على سبيل المثال ، سيتم توصيل العديد من التطبيقات دائمًا بقاعدة البيانات طوال وقت التشغيل.
تعمل هذه الطريقة بشكل صحيح في تطبيقات سطح المكتب التقليدية. والسبب هو أن عدد المستخدمين واضح للغاية وسهل التحكم فيه ، والواجهة الخلفية والواجهة الأمامية مرتبطة ارتباطًا وثيقًا. ومع ذلك ، بالنسبة لتطبيقات الويب الحالية ، لم يعد هذا النهج ممكنًا لأن موارد الخادم المحدودة ستواجه المزيد والمزيد من المستخدمين. لكي يتعامل تطبيقك مع الزيادة في المستخدمين ، تحتاج إلى الحصول على موارد في وقت متأخر قدر الإمكان وإصدار الموارد في أقرب وقت ممكن.
تساعد المشاركة على زيادة فعالية هذا النهج. من خلال المشاركة ، يمكن للمستخدمين المتعددين مشاركة الموارد ، مع الحد الأدنى لوقت الانتظار والحد الأدنى من التأثير على الخادم. على سبيل المثال ، عند العمل مع قاعدة بيانات ، يمكن لمشاركة اتصالات ODBC ومشاركة موارد OLEDB تمكين تحديد الاتصالات من تجمع مشترك ، مما يقلل من النفقات العامة للاتصال بقاعدة البيانات.
لمزيد من المعلومات حول مشاركة ADO ، راجع "تجميع مكونات الوصول إلى بيانات Microsoft".
على الرغم من أن بروتوكول HTTP عديمي الجنسية ، فإن مطوري ASP غالبًا ما يستخدمون آلية تحريك الدولة المضمنة في وظائف ASP. على سبيل المثال ، باستخدام كائن التطبيق المدمج في تقنية ASP ، يمكن مشاركة الموارد التي يحفظها المطورين من قبل جميع مستخدمي التطبيق. باستخدام كائنات الجلسة المدمجة في ASP ، يقوم المطورون بحفظ الموارد فقط لمستخدم واحد.
على الرغم من أن هذا يبدو وكأنه توفير المعلومات في كائن جلسة من تقنية ASP هو وسيلة مريحة للغاية للحفاظ على الحالة ، فإن هذا النهج مكلف للغاية ويمكن أن يكون أيضًا أحد أكبر العوامل المقيدة في قابلية التوسع. قابلية التوسع في التطبيق هي في الأساس القدرة على الاستمرار في الحفاظ على أدائها مع زيادة عدد المستخدمين. لكل مستخدم ، يستهلك كائن الجلسة موارد الخادم قبل توقيت الجلسة أو تم التخلي عنه. تربطك الجلسات أيضًا بخادم ، مما يحد من قدرتك على الاستفادة من مجموعة الويب. يرجى عدم استخدام كائنات جلسة ASP لإدارة الدولة قدر الإمكان. إذا كنت لا تستخدم جلسة على الإطلاق ، فيمكنك تعطيل حالة جلسة تطبيق الويب الخاصة بك (انظر وثائق IIS). خلاف ذلك ، يمكنك تعطيل حالة الجلسة لكل صفحة باستخدام العبارة التالية:
<٪@enlabesessionState = false ٪>
بالنسبة لبعض البيانات البسيطة ، يمكنك استخدام ملف تعريف الارتباط QueryString أو مجال النماذج المخفية للحفاظ على الحالة بين طلبات ASP. ثم ، للحصول على معلومات أكثر تعقيدًا ، يوصى عادةً باستخدام قاعدة بيانات. يتمثل النهج العام في إنشاء معرف فريد ، ثم إرساله إلى كل عميل يطلب ، وحفظه كحقل نموذج مخفي. في الطلبات اللاحقة ، يتم استخدام هذا المعرف الفريد للبحث عن معلومات الحالة المتعلقة بالمستخدم في قاعدة البيانات. يوفر هذا النهج قابلية التوسع أعلى ورمز أكثر إيجازًا وواضحًا.
لمزيد من المعلومات حول استخدام ملفات تعريف الارتباط QueryString وحقول النماذج المخفية ، راجع "Q175167 Howto: قيم مستمرة بدون جلسات".
عند إنشاء كائن تقنية ASP ، يمكنك الاختيار
فيما يلي استثناء محتمل: عند إجراء مكالمة من خلال جدار الحماية ، قد تحتاج إلى استدعاء CreateObject بدلاً من server.createBject . لمزيد من المعلومات ، راجع "Q193230 - PRB: Server.CreateBject فشل عندما يكون الكائن وراء جدار الحماية" (اللغة الإنجليزية).
تأكد من تضمين معالجة الأخطاء في جميع تطبيقات ASP الخاصة بك. وتأكد من تقديم معلومات تشخيصية مفيدة. لم أواجه أي شخص يشكو من أن رسالة الخطأ توضيحية للغاية. تأكد من تضمين المعلومات التالية في سجل الخطأ:
نظرًا لأنه سيتم تشغيله تحت ASP ، فقد ترغب في كتابة هذه المعلومات إلى ملف أو سجل حدث NT. يمكنك أيضًا إنشاء سجلات أحداث التطبيق التي تسجل أحداث التطبيق الحرجة للاستخدام عند تشخيص أخطاء التطبيق.
توفر المقالة التالية معلومات مفصلة عن تقنيات معالجة الأخطاء:
المتصفح ليس هو الطريقة الدقيقة لاختباره ، يمكن أن يوضح لك الاستخدامات المحتملة للتطبيق فقط. يرجى تعيين أهداف أداء محددة لتطبيقك واستخدام أدوات التحميل مثل أداة إجهاد تطبيق الويب لاختبار الإجهاد. تحتاج إلى أن تقرر بنفسك ما يمكن أن تقبله بيئتك ، وإليك بعض الإرشادات الشائعة لمساعدتك في بدء عملية الاختبار الخاصة بك:
تطابق بيئة الاختبار مع البيئة الجري الفعلية ، وحتى جدار الحماية ليس استثناء. هذا يبدو مكلفًا ، لكنني سمعت أن المطورين يفقدون وظائفهم لأنهم لا يأخذون جدار الحماية في الاعتبار.
لمزيد من المعلومات حول اختبار تطبيق ASP باستخدام أداة إجهاد تطبيق الويب ، راجع "لا يمكنني التأكيد عليه بما فيه الكفاية - قم بتحميل اختبار تطبيق ASP الخاص بك".
يمكن أن تعزز حماية عملية التطبيق الخاصة بك مع العزلة استقرار الخادم بشكل كبير. عندما يتعلق الأمر بتطبيقات الإنترنت ، يمكن أن تختلف عواقب استخدام العزلة بشكل كبير: أحدهما هو تعطل التطبيق والآخر هو تعطل الخادم. عادة ما تكون حماية عملية IIS الأولية (inetinfo.exe) في قائمة أولوية أعلى. هذا بارز بشكل خاص عند استخدام المكونات.
تتمثل التقنية الشائعة الاستخدام لحماية عملية ISS الرئيسية في تمكين تطبيقات الويب من التشغيل في مساحات الذاكرة الخاصة بها. في مدير خدمات الإنترنت ، يمكنك تعيين هذا الخيار لكل ويب. على الرغم من أن موارد النظام التي تغمرها عمليات تنظيم العمليات سيكون لها تأثير بسيط على الأداء ، فإن تأثير الحماية على التطبيقات يستحق التكلفة. بموجب IIS 4.0 ، يمكنك تشغيل التطبيق الخاص بك في العملية وخارج العملية (OOP). يعمل تطبيق OOP في مثيل MTX.exe الجديد. تحت IIS 5.0 ، يمكنك استخدام خيارات العزل الأخرى. يمكن تعيين مستوى العزلة على "منخفض" (تطبيق في العملية لـ InetInfo.exe) أو "متوسطة" (مثيل مشترك dllhost.exe) أو "High" (مثيل غير مشترك لـ dllhost.exe).
بالإضافة إلى عزل تطبيقات الويب في مساحة الذاكرة الخاصة بهم ، قد ترغب أيضًا في عزل مكونات غير موثوق بها. عادة ما تكون المكونات غير المستقرة مكونات لا تمر وقت الاختبار في البيئة الفعلية. يمكنك تشغيل هذه المكونات في حزمة الخادم بحيث يتم تشغيلها في مثيل dllhost.exe الجديد.
بشكل عام ، إذا كنت ترغب في اتباع نهج معتدل بين الأداء والحماية ، فإن ما يلي هو الطريق: قم بتشغيل تطبيق الويب في حالة العزل "العالية" وتشغيل المكونات في حزمة المكتبة. يقلل هذا النهج من النفقات الماردة مع توفير أقوى حماية بين العمليات.
لمزيد من المعلومات ، راجع المقالة "موثوقية الخادم من خلال عزل العملية".
بموجب IIS 4.0 ، فإن المجموعة المشتركة الافتراضية من ASP هي 10 مؤشرات ترابط لكل معالج تديره MTS. في IIS 5.0 ، تكون القيمة الافتراضية 20. وهذا يعني أن كل مؤشر ترابط هو مورد يحتمل أن يكون يمكن أن يتعامل مع طلبات العميل المتعددة. تحتاج أيضًا إلى تجنب حظر الأساليب التي قد تحدث ، مثل إجراء مكالمات قاعدة بيانات كبيرة. إذا كان لديك وظيفة للقيام بذلك ، فسيمنع ذلك تطبيق ASP من إعادة الاستجابة إلى العميل بسرعة ، فكر في استخدام ميزة قائمة الانتظار. على سبيل المثال ، في NT 4.0 ، يمكن استخدام MSMQ. في Windows 2000 ، يمكن استخدام المكونات في قائمة الانتظار.
أحد العيوب الشائعة المتمثلة في عدم تخزين مكونات الشقة المفردة (STA) في الجلسة هو أنها تملأ الكائنات Visual Basic في نطاق الجلسة. سوف يغلق المستخدم إلى مؤشر ترابط ، والذي سيعمل على عكس الغرض من مشاركة مجموعة بواسطة مؤشرات الترابط. سيتم حظر المستخدمين المحتملين خلف المستخدمين الآخرين ، في انتظار مؤشرات الترابط التي تنشئ مكوناتهم لتصبح صالحة. يجب عليك استخدام طرق أخرى لتصميم مكونات عديمة الجنسية يمكن إنشاؤها وتدميرها بناءً على كل صفحة.
نصائح سريعة: تأكد من تعطيل ميزة تصحيح الأخطاء النصي ASP على الخادم (باستخدام مدير خدمات الإنترنت). إذا تم تمكين تصحيح الأخطاء النصي ASP ، فسيتم قفل تنفيذ ASP على مؤشر ترابط.
لمزيد من المعلومات ، يرجى الرجوع إلى المقالة التالية:
يتطلب إنشاء تطبيق ASP مجموعة كبيرة من المعرفة. يتمثل أحد التحديات التي تواجه طلبات ASP في حاليًا عدم وجود قواعد مشتركة (وهي جزء من المرح أيضًا). مشكلة أخرى هي أن العديد من المطورين قد شاركوا في تطوير نظام سطح المكتب قبل الاتصال بتطوير الإنترنت. من خلال تطبيق القواعد المذكورة أعلاه في جهود تطوير ASP الخاصة بك ، لديك أمل في تجنب الأخطاء المكلفة وتكون قادرًا على تطوير تطبيقات ASP جيدة جدًا.
ولد JD Meier ونشأ على الساحل الشرقي للولايات المتحدة. بعد نصيحة Horace Greeley ، أصبح مهندس دعم المطورين ، مع التركيز على مكونات من جانب الخادم بما في ذلك تقنيات MTS و ASP وكذلك تطبيقات Windows DNA.
من خلال المحتوى الذي أدخله محرر قناة التكنولوجيا الجديدة ، أعتقد أن كل شخص لديه فهم معين. إذا كنت ترغب في معرفة المزيد من المحتوى التقني ، فيرجى الاستمرار في الانتباه إلى قناة التكنولوجيا الجديدة!