سؤال

لدي بضعة أسئلة بخصوص VBScript و ASP Classic:

  1. ما هي أفضل طريقة للوصول إلى MS SQL Server قاعدة البيانات في VBScript/ASP ؟

  2. ما هي أفضل الممارسات في ما يتعلق فصل نموذج من عرض من تحكم ؟

  3. أي أمور أخرى يجب أن أعرف عن أي VBScript أو ASP ؟

إذا لم تكن قد لاحظت أنا جديد في VBScript الترميز.أدرك أرقام 2 و 3 هي نوع من العملاقة "الثقب الأسود" الأسئلة التي هي أكثر من اللازم العامة ، لذلك لا أعتقد أنني أتوقع أن تعلم كل شيء هناك لتعرف عن هذه الأسئلة من هنا.

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

المحلول

ADO هو وسيلة ممتازة للوصول إلى قاعدة بيانات في VBScript/ASP الكلاسيكية.

Dim db: Set db = Server.CreateObject("ADODB.Connection")
db.Open "yourconnectionstring -> see connectionstrings.com"
Dim rs: Set rs = db.Execute("SELECT firstName from Employees")
While Not rs.EOF
    Response.Write rs("firstName")
    rs.MoveNext
Wend
rs.Close

مزيد من المعلومات هنا: http://www.technowledgebase.com/2007/06/12/vbscript-how-to-create-an-ado-connection-and-run-a-query/

التحذير واحد هو أنه إذا كنت العودة حقل "مذكرة" في مجموعة سجلات تأكد من اختيار واحد فقط حقل "المذكرة" في وقت واحد ، وتأكد من أنه هو العمود الأخير في الاستعلام الخاص بك.وإلا واجهت المشاكل.(المرجع: http://lists.evolt.org/archive/Week-of-Mon-20040329/157305.html )

نصائح أخرى

اضطررت إلى السير بعيدا عن جهاز الكمبيوتر الخاص بي عندما رأيت أول الجواب ، وأنا لا تزال المتعثرة التي تم الموافقة عليها من قبل الكثير من الناس.إنه مثال مؤسف على أسوأ نوع من التعليمات البرمجية لـ ASP النوع الذي من شأنه ضمان موقع الويب الخاص بك SQL عن طريق الحقن ، إذا كنت الاستمرار في استخدام هذا الرمز عبر الموقع ، hackable في شبر واحد من الحياة.

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

  1. لم تكشف عن سلسلة الاتصال في التعليمات البرمجية الخاصة بك كما أنه يحتوي على اسم المستخدم وكلمة المرور لقاعدة البيانات الخاصة بك.استخدام ملف UDL بدلا من ذلك, أو على الأقل على أمل أن تكون أعلن في أماكن أخرى تستخدم في جميع أنحاء الموقع.

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

  3. تأخر إعلان المتغيرات يمكن أن يؤدي إلى الترميز قذرة.استخدام خيار "صريحة" و تعريف المتغيرات في الجزء العلوي من وظيفة.هذا هو أفضل الممارسات بدلا من الحقيقي WTF, ولكن من الأفضل أن تبدأ تقصده.

  4. أي تلميحات إلى قاعدة البيانات ما نوع الاتصال هذا هو -- هو للقراءة فقط أو سوف يكون المستخدم تحديث السجلات ؟ الاتصال يمكن أن يكون الأمثل قاعدة البيانات يمكن التعامل مع قفل بكفاءة عالية إذا بفعالية قال ما يمكن توقعه.

  5. اتصال قاعدة البيانات ليست مغلقة بعد استخدام كائن مجموعة السجلات ليست تدميرها بالكامل.

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

أيضا ، حيث هو "مذكرة" الميدان ؟ هو الوصول هذه التسميات ، أو ربما الخلية ؟ أنا أسأل هذه الحقول تم استدعاء نص أو NTEXT الحقول في MS-SQL لمدة عشر سنوات.

تذكر أن برنامج في اللغة بدلا من البرنامج في ذلك.فقط لأنك باستخدام محدودة مجموعة أداة لا يعني أنك تحتاج إلى برنامج مثل ذلك في عام 1999.

أنا أتفق مع JasonS عن الطبقات.هذا صحيح لا يمكنك أن تفعل أشياء مثل الميراث ولكن يمكنك بسهولة أنها وهمية

Class Dog
    Private Parent

    Private Sub Class_Initialize()
        Set Parent = New Animal
    End Sub

    Public Function Walk()
        Walk = Parent.Walk
    End Function

    Public Function Bark()
        Response.Write("Woof! Woof!")
    End Function
End Class

في مشاريع ASP الصفحة التالية:INC-التطبيق-CommonIncludes.asp - وهذا يشمل أشياء مثل المكتبات العامة (قاعدة بيانات Access الملف وظائف, الخ) و يضع الأمن و يشمل أي ملفات التكوين (مثل سلاسل اتصال, دليل المواقع, إلخ) و المشتركة فصول (المستخدم, إذن, الخ) و يتم تضمينها في كل صفحة.

وحدات/ModuleName/صفحة.vb.asp - نوع من مثل الكود خلف الصفحة.يتضمن صفحة خاصة بو ، BLL الدال فئات و مجموعات البيانات المطلوبة في الصفحة/يتلقى بيانات النموذج المقدم ، وما إلى ذلك

وحدات/ModuleName/عرض/INC-ديس-الصفحة.asp - يعرض مجموعة البيانات في الصفحة.vb.asp.

مرددا بعض الأفكار وإضافة عدد قليل من بلدي:

1) أفضل طريقة للوصول إلى قاعدة بيانات مجردة بعيدا في مكون COM من نوع التي يمكنك الوصول إليها من VBScript.

2) إذا كنت تريد حقا أن كنت يمكن أن يكتب تحكم في VBScript ثم الوصول إلى ذلك في الصفحة.تشبه به صفحة تحكم نمط و لا تحكم الجبهة أن ترى في ASP.NET MVC أو القطار الكهربائي

3) لماذا تفعل هذا بنفسك ؟ معظم الأدوات اللازمة للقيام بهذا النوع من العمل ليست متوفرة حتى الآن.

فاس - Asp إكستريم التطور هو MVC إطار ASP classic

هناك بعض المحاولات في اتخاذ اختبار أطر asp:aspUnit جيدة ، ولكن لم يعد الحفاظ عليها.

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

على عدد 2, أعتقد أن لديك عدد قليل من الخيارات...

1) يمكنك استخدام مكونات COM المتقدمة في VB6 أو ما شابه ذلك فصل بعض الأعمال التجارية الخاصة بك المنطق من واجهة المستخدم الخاصة بك.

2) يمكنك إنشاء دروس في VBScript.لا يوجد مفهوم الميراث وغيرها من الميزات المتقدمة مفقودة من التنفيذ ، ولكن هل يمكن أن تلخص منطق في الطبقات أن يساعد على الحد من spagehtti نيس من التطبيق الخاص بك.تحقق من هذا: http://www.4guysfromrolla.com/webtech/092399-1.shtml

أنا أتفق مع @Cirieno ، أن اختيار الجواب لن يكون من الحكمة أن تستخدم في إنتاج البرمجية لجميع الأسباب يذكر.أنه قال: إذا كان لديك فقط القليل من الخبرة في هذا الجواب هو نقطة انطلاق جيدة كما أن الأساسيات.

في ASP خبرة, فضلت أن أكتب بلدي طبقة الوصول إلى قاعدة البيانات باستخدام VB تجميع أسفل إلى DLL و الرجوع DLL عبر VBScript.صعبة التصحيح مباشرة من خلال ASP ولكن كانت طريقة لطيفة لتغليف جميع البيانات رمز الوصول بعيدا عن التعليمات البرمجية لـ ASP.

الطريقة الطريقة مرة في اليوم عندما VBScript/ASP كانت لا تزال بخير عملت في شركة المرافق مع مختلطة جدا DB envrionment ، اعتدت أن أقسم هذا الموقع: http://www.connectionstrings.com/

@michealpryor حصلت على حق

لقد كان عالقة بناء على ASP, و لا تشعر بالألم.

1) أفضل طريقة الاستعلام SQL Server مع استعلامات بمعلمات;وهذا سوف يساعد في منع ضد هجمات حقن SQL.

البرنامج التعليمي (لا بلدي بلوق):
http://www.nomadpete.com/2007/03/23/classic-asp-which-is-still-alive-and-parametised-queries/

2) أنا لم أر أي شيء بخصوص MVC موجهة تحديدا نحو ASP, ولكن أنا مهتم بالتأكيد لأنه شيء أواجه صعوبة في فهم.عموما أنا حاولت على الأقل تحتوي على الأشياء التي هي عرض مثل الأشياء التي تحكم مثل في مهام منفصلة.أنا افترض أنك يمكن أن كتابة التعليمات البرمجية في ملفات منفصلة ومن ثم استخدام ملقم يحتوي جانب للانضمام لهم جميعا معا مرة أخرى.

3) ربما كنت قادمة من اللغة التي لديها المزيد من الوظائف التي بنيت في.في البداية بعض الأشياء قد تبدو مفقودة ، ولكن في كثير من الأحيان مجرد مسألة كتابة الكثير من الأسطر من التعليمات البرمجية مما كنت تستخدم ل.

أيضا من أجل الوصول إلى قاعدة البيانات لدي مجموعة من الوظائف - GetSingleRecord, GetRecordset و UpdateDatabase التي لديها وظيفة مماثلة لما مايكل ذكر أعلاه

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