سؤال

أنا أعمل على المشروع الذي يجمع بين .صافي مع بعض تراث التعليمات البرمجية لـ ASP عبر COM إمكانية التشغيل المتداخل.إرث ASP هو مكتوب في JScript ملفات تبدو هذه helloworld.asp سبيل المثال.

<%@Language="JScript"%>
<html>
<head>
  <title>Jscript ASP Page</title>
</head>
<body>
  <h1>JScript ASP</h1>
  <p>This is JScript ASP at <%=new Date()%></p>
  <%
  var helloWorld = Server.CreateObject("Interop.HelloWorld")
  helloWorld.Name = "Dylan"
  %>
  <%=helloWorld.SayHello() %>
  </body>
</html>

أود حقا أن استخدام VS2008 إلى تحرير تركة التعليمات البرمجية لـ ASP جنبا إلى جنب مع بقية المشروع ، ولكن التحسس يتصرف بشكل غريب للغاية.دقيقة واحدة سيكون إعطائي الصحيح JScript كلمات وأساليب:

شبيبة التحسس في VS2008 العمل http://www.dylanbeattie.net/vs_js_working.jpg

لذا سوف اكتب الخط ، اضغط Enter البدء بكتابة السطر التالي و نفس المفاتيح سوف تعطيني ما يبدو أن VBScript التحسس بدلا من ذلك:

ASP التحسس في VS2008 محطم http://www.dylanbeattie.net/vs_js_wrong.jpg

هل هناك أي طريقة أستطيع أن أقول مقابل ذلك .ملفات asp دائما شفرة جافا سكريبت ، وعدم استخدام التعليمات البرمجية VB ؟ وجود IDE بدوره "فار" في "vArray" عند الضغط على Enter يتم إثبات محبطا قليلا...

مساعدتي ستاكوفيرفلوو.أنت أملي الوحيد.

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

المحلول

الكلاسيكية ASP التحسس ، كما كنت قد لاحظت, كسر في VS2008.مايكروسوفت في الواقع تماما خفض دعم ASP الكلاسيكية التلوين اللغوي و التحسس في VS2008 RTM, ثم استعادته في SP1 بسبب احتجاج من العملاء.نلقي نظرة على هذا تقرير الشوائب في Microsoft ربط الموقع لمزيد من المعلومات حول كيف حصلت على استعادتها.

على أي حال دعني التفاصيل بالضبط كيف أنها مكسورة.ما ترونه ليس في الواقع VB التحسس-- بدلا من ذلك ، أنت ترى الطرق والأشياء التي هي موجودة في أي من الحالات التالية:

  • على من جانب الملقم استجابة الكائن وأحيانا أخرى من جانب الخادم الكائنات مثل الدورة أو طلب ، كما لو كانت هناك جافا سكريبت "مع" بيان لهذه الكائنات قبل أي من التعليمات البرمجية الخاصة بك.هذا لا معنى له-- انه الخلل في مقابل.
  • على العميل نافذة كائن (!!!!).هذا لا معنى له لأن هذا هو برنامج نصي من جانب الخادم.انها علة في مقابل.
  • جافا سكريبت الكلمات الرئيسية العالمية الكائنات مثل السلسلة.هذا هو المتوقع (على الرغم من أن إذا قمت بتعريف البرنامج النصي الخاص بك باستخدام runat=server يعمل أكثر موثوق بها-إذا لم تحدد النصي مع <% %> أنا في كثير من الأحيان لا يحصلون على الكلمات الرئيسية المناسبة التحسس الذكي.

ملاحظة أن أيا من هذه VB التحسس-- ما ترونه هي ببساطة PascalCased طرق صالحة المدمج في أساليب الطلب, استجابة, الخ.الكائنات المضمنة في الكلاسيكية ASP برنامج نصي من جانب الخادم طراز الكائن.

الروايات المتناقلة, لقد وجدت التحسس إلى الكثير من العمل بشكل طبيعي في runat=server كتل البرنامج النصي من <% %> كتل.على الأقل مع runat=server, أحصل على التحسس من أجل كتابة "طلب.", "ردا على ذلك.", الخ.و أيضا jscript الكلمة التحسس يبدو للعمل بشكل أفضل في تلك الكتل جدا.

وهناك غيرها من المراوغات في التحسس ، مثل عندما يكون لديك <% %> كتلة البرنامج النصي عندما كنت اكتب حرف, الحرف هو تجاهلها في قائمة التحسس الخيارات تحصل مرة أخرى.(هذا أيضا يعمل بشكل أفضل في runat=server بنات)

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

وقال IMHO حتى هذا الدعم المحدود هو أفضل من ما كان هناك في VS2008 RTM, عندما الكلاسيكية ملفات ASP بدا مثل المفكرة فتح أي التحسس أو التلوين اللغوي على الإطلاق.

إذا كنت منزعجا من هذا الوضع المؤسف ، أود أن اقترح تقديم تقرير الشوائب في https://connect.microsoft.com/VisualStudio.تماما مثل تقرير الشوائب حصلت مايكروسوفت على استعادة ASP الكلاسيكية التحسس في VS2008 المزود بحزمة الخدمة SP1 قد حملهم على إصلاحه بالنسبة SP2 و/أو VS2010.قد تحتاج أيضا إلى التحقق من أحدث VS2010 بيتا لمعرفة ما إذا كان يتم إصلاح المشكلة أو ما هو أسوأ.

آسف إذا كان هذا ليس الجواب الذي كانوا يأملون.:-(

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