سؤال

الشيء الوحيد الذي كان يجعل الحياة صعبة في الحصول على ما يصل الى سرعة على تعليمات البرمجة الأساسية في ASP classic المشروع أن يتضمن ملف الحالة هو نوع من الفوضى.أنا في بعض الأحيان في العثور على وظيفة كنت تبحث عن إدراجها في ملف التضمين التي لا علاقة لها تماما.هل من أحد لديه أي نصيحة حول كيفية ريفاكتور هذا واحد يمكن بسهولة معرفة أين الوظيفة إذا كانوا بحاجة إلى العثور عليه ؟

تحرير: شيء واحد لقد نسيت أن أسأل:لا vbscript لديك أي نوع من آلية منع الملف من كونها شملت مرتين ؟ تشبه #ifndef من C ؟

هل كانت مفيدة؟

المحلول

هناك عدد قليل من الأشياء الأساسية التي يمكنك القيام به عندما أخذ أكثر من الكلاسيكية تطبيق ASP, ولكن سوف الأرجح في نهاية المطاف الندم القيام بها.

  1. القضاء على تضمين الملفات المكررة.كل ASP الكلاسيكية التطبيق رأيت من أي وقت مضى كان 5 "تسجيل الدخول.asp" صفحة 7 "datepicker.js" الملفات وما إلى ذلك.مطاردة و إزالة جميع التكرارات ثم تغيير المراجع في بقية التطبيق عند الضرورة.كن حذرا أن لا فرق الاختيار على كل ملف وإزالة أنها - في كثير من الأحيان الملفات المكررة مع فروق طفيفة لأن المؤلف الأصلي نسخها ثم تغير فقط نسخ.هذا شيء عظيم بالنسبة التطور, ولكن ليس الكثير من التعليمات البرمجية.
  2. إنشاء الرشيد بنية المجلد و نقل جميع الملفات إلى ذلك.هذا واحد واضح ، ولكن هذا واحد سوف تندم على فعل.إذا كانت الروابط في تطبيق النسبية أو المطلقة, سوف تضطر إلى تغيير أكثر منهم.
  3. الجمع بين كل من إدراج الملفات إلى ملف واحد كبير.ثم يمكنك إعادة ترتيب جميع وظائف منطقيا في منفصلة ، بشكل معقول-تسمية الملفات.ثم عليك أن تذهب من خلال التطبيق صفحة صفحة و معرفة ما تشمل البيانات في كل صفحة تحتاج إلى أن تكون (أو عصا مع ملف واحد فقط في كل صفحة - لا أستطيع أن أتذكر ما إذا كان أو لا هذا هو فكرة جيدة في ASP).لا أستطيع فهم الألم المستوى المعنية هنا ، هذا على افتراض أن القائمة تشمل الملفات لا تجعل الاستخدام المكثف نفس المسمى globals.

وأنا لن تفعل أي شيء من هذا.على حد تعبير ستيف Yegge (على ما أظن)،"لا يوجد شيء خاطئ مع الكلاسيكية تطبيق ASP لا يمكن أن تكون ثابتة مع المجموع كتابة".أنا جادة جدا حول هذا - أنا لا أعتقد أن هناك أكبر النفايات من مبرمج الوقت في هذا العالم من الحفاظ على ASP التطبيق, و المشكلة فقط تزداد سوءا كما ASP يحصل على المزيد والمزيد من خارج التاريخ.

نصائح أخرى

@MusiGenisis لائحة النقطة هي نصيحة جيدة لمتابعة لكني أختلف مع -

"أنا لن أفعل أي شيء من هذا.على حد تعبير ستيف Yegge (على ما أظن), "لا يوجد شيء خاطئ مع الكلاسيكية تطبيق ASP لا يمكن أن تكون ثابتة مع المجموع كتابة".أنا جادة جدا حول هذا - أنا لا أعتقد أن هناك أكبر النفايات من مبرمج الوقت في هذا العالم من الحفاظ على ASP التطبيق, و المشكلة فقط تزداد سوءا كما ASP يحصل على المزيد والمزيد من خارج التاريخ".

كل شيء جيد جدا, ولكن إذا كان لا بأس به إرث التطبيق بشكل كامل إعادة يكتب هو في كثير من الأحيان غير ممكن بسبب عدم المطور الوقت/الموارد.

لدينا إلى حد كبير ASP الكلاسيكية التطبيق التي نمت الذراعين والساقين على مر السنين ، إنها ليست جميلة ولكنها تخدم احتياجات الأعمال التجارية.ليس لدينا الوقت لقضاء الأشهر الستة المقبلة القيام استكمال إعادة كتابة ، سيكون لطيفا, ولكن فقط غير ممكن.نهجنا هو -

  1. حيث هناك وظائف جديدة مطلوب تنفيذه في ASP.NET.هذا يحدث في 95% من الوقت.5% حافة الحالات عادة ما يجري أن هناك عدد كبير من النقاط حيث التطبيق الجديد اللمسات رمز التطبيق القديمة التي تتطلب منا أن نفعل الكثير من الكلاسيكية ASP إعادة العمل قد يجعل التطبيق أكثر هشاشة.

  2. حيث هناك تغيير في وظائف نقوم بتقييم ما إذا كان يمكننا أن ريفاكتور إلى ASP.NET مع الحد الأدنى من التأثير.إذا لم يكن ذلك ممكنا ثم سنقوم بتنفيذ التغيير في ASP الكلاسيكية ويرتبوا البرمجية الموجودة ونحن نمضي على طول مثلاتبسيط تضمين ملف التعشيش, استبدال جافا سكريبت مع أكثر عبر متصفح ودية رمز هذا الشيء.

في الإجابة على سؤالك حول #ifndef ، ليس هناك ما يعادل أخشى.

  1. استخدام ملف واحد إلى عناوين العالمية ويشمل (يتيح اسم t-رئيس.asp).يتم تضمين هذا الملف في جميع ملفات asp.
  2. استخدام ملف واحد لجعل الموقع البصرية رأس العالمية (الشعارات, القوائم, الخ) وإدراجه خلف .دعونا نسميها t-تبدأ.asp
  3. استخدام ملف واحد لجعل الموقع البصرية تذييل العالمية (حقوق الطبع والنشر, جوجل تحليلات, الخ.) وإغلاق جميع divs أو الجداول فتح t-تبدأ.asp.يتيح استدعاء هذا الملف t-نهاية.asp
  4. استخدام مجلد واحد لوضع منطق الأعمال الملفات ، ودعا الحافلة.الملفات الموجودة في هذا المجلد لا يمكن أن يكون تشمل.كل وظيفة داخل الملف يجب أن يسبقها اسم وحدة المنطق (أي:كل وظيفة في المنتجات.asp يجب أن تبدأ مع product_*)
  5. استخدام مجلد واحد إلى وضع بعض استخدامها في واجهة المستخدم رمز واجهة المستخدم.الملفات الموجودة في هذا المجلد لا يمكن أن يكون تشمل.

على سبيل المثال:

<%@  Language=VBScript %>
<% Option Explicit %>
<% Response.Buffer = true%>
<html>
<head>
<!--#include file="../general/t-head.asp"-->
<!--#include file="../bus/product.asp"-->
<title>Products page</title>
</head>
<body>
<!--#include file="../general/t-begin.asp"-->

   <% 'all your code  %>

<!--#include file="../general/t-end.asp"--> 
</body>
</html>

نجاح باهر.ومن مفاجآت باستمرار لي كيف كثير من الناس لديهم أكره ASP.اللائق في أيدي انها قادرة تماما على لغة تصميم تطبيقات الويب.

إلا أنني أعترف أن طريقة إدراج ملفات تدار في ASP يمكن أن يكون قليلا من brainache-لأن (اعتمادا على كيفية استخدامها) أنها يجب أن تكون محملة تحليل حتى لو كنت لا تستخدم نصف الوظائف الواردة ضمن.

كنت تميل إلى أن تكون واحدة تشمل الملف (initialise.asp أو بعض من هذا القبيل) هذا في حد ذاته يتضمن وصلات إلى العديد من وظائف المكتبات (lib_http.asp, lib_mssql.asp أو ما شابه ذلك) و جميع وظائف المكتبة هي بذاتها لذلك ليس هناك قلق حول عبور المتغيرات.أي فأر يعلن عنها في الملف الرئيسي.هذا يعني أنني يمكن استخدام وظيفة في أي مكان, في أي وقت و لا تقلق حيث كان يعرف انه هناك فقط للاستخدام.و ايديس مثل Visual Studio و Primalscript لديها القدرة على "الانتقال إلى تعريف" عندما تجد استدعاء دالة التي لا تعترف.

ثم أي سيناريو محدد يشمل مدرجة في البرنامج النصي بعد استدعاء هذا الماجستير تشمل الملف.

أعترف أن هذه الذاكرة جائع النهج جميع الوظائف في جميع المكتبات التي تم جمعها عن كل سكربت الاتصال ، لذلك يحتاج طريقة تكرير لكل موقع تقوم بتطوير -- تقرر ما إلى الدعوة عن طريق سيد تشمل ما هو أكثر من صفحة محددة.سيكون من الجميل أن تكون قادرة على تحميل فقط ما تحتاجه -- ولكن هذا هو DLL النهج و هو لا يتوفر على أغلبية في العالم الحقيقي التطورات, و أيضا عليك أن تزن ما يصل المعالج تكلفة تجميع البرامج النصية الصغيرة مقابل التحميل المكونات.

موجز بنية الدليل هو المطلوب و سهولة المتقدمة, ولكن يمكن أن يكون واجبا لويد من خلال جميع البرمجية في موقع موجود و تغيير أي روابط أو mappath المكالمات.أيضا ، أن تدرك أن بعض IIS المسؤولين عدم السماح '..\' طريقة تعبر الدلائل عبر VBScript ، إذن كل ملف المراجع يجب أن تكون مسارات مطلقة.

أعتقد أن عليك أن تنظر في نقل التعليمات البرمجية الخاصة بك من ASP VBScript إلى Dll COM Visual Basic.سيخفف هذا على وجود الكثير من يتضمن.

أنا لا أعرف من وسيلة لمنع مزدوج إدراج الأخرى من الحصول على رسالة خطأ.هل ترى يشمل وضعت في جميع أنحاء الصفحة ، مما يجعل من الصعب المكان ؟

فقط بوصفها جانبا, هل تعمل مع نسخة من رمز قاعدة البيانات على الخادم التنمية?من تجربتي, أول شيء فعله هو فصل نفسك من الموقع مباشرة في اسرع وقت ممكن.في حين المتاعب في البداية سوف تعطي لك الحرية في إجراء تغييرات دون لخبطة في الموقع مباشرة.فإنه من السهل أن تجعل واحدة صغيرة تغيير في تشمل بام!الموقع كله يذهب إلى أسفل.

لقد عملت من خلال عدد قليل من المشاريع مثل كنت قد وصف استخدام الاستراتيجيات التالية:

إعادة كتابة كاملة مثالية عندما يكون هناك الوقت/المال ، ولكن عادة ما لا تحصل على مكالمة عندما يكون هناك شيء ما خطأ والنتائج المطلوبة في اسرع وقت ممكن.

المشاريع الصغيرة - لا تفتح كل شيء في IDE و أبدأ البحث في جميع ملفات المشروع عن وظائف/sub, من أجل بناء المعرفة وتشمل المنطق.تقريبا في كل مرة ، كل ما هو انتشرت في كل مكان ، حتى البدء في إعادة بناء يشمل تنظمها منطق الأعمال.لقد تعمل أيضا عبر مضمنة رمز (الخام رمز, لا الغواصات أو وظائف) ألقيت في تضمين لذا سوف عادة فقط سحب رمز العودة إلى صفحة إعادة بيع ديون في وقت لاحق.

أكبر المشاريع سوف استخدم بعض التعليمات البرمجية لدي حول زرع تحليل يتضمن الخطوط الفرعية/وظيفة رؤوس تفريغ تلك إلى ملف نصي إلى بناء قائمة ما الروتينية حيث تشير إلى ذلك.هذا يأتي في متناول اليدين عندما كنت قد حصلت على طن من يشمل على كل صفحة و لا يمكن الحصول على رأسك حول تعليمات البرمجة الأساسية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top