Frage

Ich arbeite an einem Projekt, das .NET mit einigem Legacy-ASP-Code über COM-Interop kombiniert. Das Erbe ASP ist in JScript geschrieben -. Dateien wie dieses helloworld.asp Beispiel aussehen

<%@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>

Ich mag wirklich VS2008 verwenden, um das Vermächtnis ASP-Code zusammen mit dem Rest des Projektes zu bearbeiten, aber die Intellisense extrem seltsam verhält. Eine Minute es werde gibt mir die richtig JScript Keywords und Methoden:

JS Intellisense in VS2008 - Arbeits http://www.dylanbeattie.net/vs_js_working.jpg

... also werde ich eine Zeile eingeben, drücken Sie die Eingabetaste, starten Sie die nächste Zeile eingeben, und genau die gleichen Tastenanschläge geben Sie mir, was VBScript Intellisense zu sein scheint statt:

ASP Intellisense in VS2008 - gebrochen http://www.dylanbeattie.net/vs_js_wrong.jpg

Gibt es eine Möglichkeit, VS sagen kann, dass Dateien .asp sind IMMER Javascript-Code, und überhaupt nicht VB-Code zu benutzen? das IDE-turn „var“ in „vArray“ haben, wenn Sie die Eingabetaste drücken erweist sich als ein wenig frustrierend ...

Helfen Sie mir, Stackoverflow. Du bist meine einzige Hoffnung.

War es hilfreich?

Lösung

Classic ASP Intellisense ist, wie Sie beobachtet haben, in VS2008 gebrochen. Microsoft tatsächlich vollständig geschnitten Unterstützung für Classic ASP Syntax-Einfärbung und Intellisense in VS2008 RTM, restauriert es dann in SP1 aufgrund Aufschrei von Kunden. Schauen Sie sich auf diesem Bugreport auf dem Microsoft Connect-Website für weitere Informationen darüber, wie es restauriert wurde.

Wie auch immer, lassen Sie mich Detail genau, wie es kaputt ist. Was Sie sehen, ist nicht wirklich VB intellisense-- stattdessen sind Sie Methoden und Objekte zu sehen, die in einer der folgenden Eigenschaften vorhanden sind:

  • serverseitige Response-Objekt manchmal andere Server -side Objekte wie Session oder anfordern, als ob es für diese Objekte, bevor Sie Ihren Code ein Javascript „mit“ Aussage war. Das macht keinen sense-- es einen Fehler in VS. ist
  • clientseitige Fensterobjekt (!!!!). Das macht keinen Sinn, da diese serverseitige Skript. es ist ein Fehler in VS.
  • JavaScript-Schlüsselwörter und globale Objekte wie String. Dies ist zu erwarten (obwohl, wenn Sie Ihren Skript mit runat = Server definieren, funktioniert es mehr reliably-- wenn ich das Skript mit <%%> definiere ich oft nicht die richtige Stichwort intellisense erhalten.

Beachten Sie, dass keiner von ihnen sind VB Intellisense--, was Sie sehen werden einfach PascalCased Methoden der gültigen integrierten Methoden der Request, Response, usw. gebaut Objekte in klassischen ASP Server-seitiges Script-Objektmodell.

Anecdotally, ich habe Intellisense zu arbeiten viel mehr natürlich in runat = Server-Skriptblöcke gefunden als <%%> Blöcke. Mindestens mit runat = Server, bekomme ich Intellisense für die Eingabe von „Request.“, „Reaktion.“ Usw. und auch jscript Stichwort Intellisense scheint auch in diesen Blöcken besser zu arbeiten.

Es gibt andere Macken in Intellisense, wie wenn Sie eine haben <%%> Script-Block, wenn Sie ein Zeichen eingeben, das Zeichen in der Liste der intellisense Entscheidungen ignorieren Sie zurück. (Dies funktioniert auch besser in runat = Server-Blöcke)

Mit anderen Worten, ist das alles sehr gebrochen. Ich habe keine Insider-Informationen darüber, warum es so kaputt, anders als dies ist ein Feature, das in VS2008 veraltet wurde, in einem Service Pack zurückgebracht, und wahrscheinlich hat weit weniger Tests als andere Teile des VS-- so ist es nicht überrasch es kaputt ist. Vor allem, wenn man bedenkt, dass es ein Feature, die klassische ASP ist die Unterstützung, die Microsoft will wahrscheinlich weg gehen. Das bedeutet nicht, die Redmontonians versuchen, diese aktiv zu sabotieren, aber in einem Team mit begrenzten Ressourcen sind die klassische ASP große Arbeit macht wahrscheinlich nicht das gleiche Maß an Aufmerksamkeit gehen zu gewinnen, wie zum Beispiel ASP.NET MVC.

Das heißt, IMHO auch diese begrenzte Unterstützung ist besser als das, was es in VS2008 RTM, wenn klassische ASP-Dateien wie Notepad sah, wtih keine Intellisense oder Syntaxfärbung überhaupt.

Wenn Sie in diesem beklagenswerten Zustand verärgert sind, dann würde ich vorschlagen, einen Fehlerbericht Hinterlegungen bei https: //connect.microsoft.com/VisualStudio . Genau wie ein Bug-Report Microsoft bekam klassischen ASP Intellisense in VS2008 SP1 wiederherzustellen, könnte es bekommen sie es für SP2 zu beheben und / oder VS2010. Sie könnten auch die neuesten VS2010 Beta überprüfen, um zu sehen möchten, ob das Problem behoben oder schlechter ist.

Sorry, wenn dies nicht die Antwort ist für Sie gewartet. : - (

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top