Die beste Weg, Verbindungszeichenfolgen in einem Projekt zu verwalten, die sowohl klassische ASP und ASP.Net 1.1-Code?

StackOverflow https://stackoverflow.com/questions/1610061

Frage

Ich habe ein Projekt, das ich geerbt habe, dass in erster Linie eine klassischen ASP-Anwendung ist; jedoch vermischte in der Anwendung sind eine Handvoll von ASP.net Seiten. Einige der ASP.net Seiten sind 1.1 und keinen Code hinter Modell verwenden.

Die klassischen ASP-Seiten haben eine Reihe von / include Verzeichnissen, in denen es eine Datei für Datenbankverbindungen. Die ASP.Net-Seiten haben die Verbindungszeichenfolge hart in ihrem Code codiert.

Ich versuche, dieses Durcheinander von Verbindungszeichenfolgen zu bereinigen, so ist es einfacher für Entwicklungsumgebungen zu verwalten.

Hat jemand irgendwelche Empfehlungen, wie ich in der Lage sein kann, um dies effektiv zu tun, die für beiden klassischen ASP und ASP.Net-Seiten funktionieren?

Danke

War es hilfreich?

Lösung

Setzen Sie eine web.config-Datei an der Wurzel der asp klassischen Website. ASP.net Seiten ohne Code hinter (und unter der Annahme, keine virtuellen Verzeichnisse / Anwendungen überall) werden diese Datei web.config verwenden. Sie können Verbindungszeichenfolgen in dort setzen. Sie werden wahrscheinlich nach oben mit zwei Sätzen von Saiten enden, aber das ist besser als viele mehr. Und wenn Sie wirklich wollen, können Sie einige asp classic Code schreiben, um diese Konfigurationsdatei zu lesen.

Andere Tipps

Auf diese Weise konzentriert sich auf Verbindungszeichenfolge-Datei von Webroot Isolierung für Quellcode-Versionskontrollsystem (wie SVN).

Dateien:

c:\inetpub\config\config.xml
c:\inetpub\wwwroot\global.asa
c:\inetpub\wwwroot\onInit.asp

config.xml:

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <database
      ip="XXXX"
      catalog="XXXX"
      id="XXXX"
      password="XXXX"
    />
</root>

global.asa:

<script runat="Server" language="VBScript">
    Sub Application_OnStart()        
        server.execute("/onInit.asp")
    End Sub

    Sub Application_OnEnd()
    End Sub
</script>

onInit.asp:

<% 

    dim xmlDoc, xmlPath, objNodes
    set xmlDoc = server.CreateObject("microsoft.xmldom")
    xmlDoc.async = false        
    xmlPath = Server.MapPath("/")
    xmlPath = left(xmlPath, inStrRev(xmlPath, "\")) & "config\config.xml"
    xmlDoc.load xmlPath

    set objNodes = xmlDoc.selectNodes("//database") 

    application("connectionString") = "Provider=SQLOLEDB.1;Persist Security Info=True;"_
        & "Data Source="     & objNodes.item(0).getAttribute("ip") & ";"_ 
        & "Initial Catalog=" & objNodes.item(0).getAttribute("catalog") & ";"_
        & "User ID="         & objNodes.item(0).getAttribute("id") & ";"_
        & "Password="        & objNodes.item(0).getAttribute("password")

    set objNodes = nothing
    set xmlDoc = nothing  

%>

Hmm. Ich glaube, ich bin nicht der einzige mit einem Durcheinander wie diese zu reinigen.

Ich habe keine sehr nützliche Antwort für Sie, aber hier ist die Strategie, die wir mit kam. Es geht über Ihre Frage, aber hoffentlich beantwortet es Fragen, die Sie nicht gedacht, noch zu fragen. Die Aufgabe, bevor Sie ist riesig, und ich möchte, dass Sie so viele Tipps geben, wie ich kann auf den gesamten Prozess, nicht nur die Verbindungszeichenfolgen.

  • vollständig reorganisieren unser Quellcode
  • Komplett neu organisieren die Dateistruktur auf unserer Web
  • Fixcode , wie wir es ändern müssen, anstatt alles auf einmal als ein großes Projekt zu tun versuchen.
  • es ein erklärtes Ziel macht klassische Asp zu asp.net (und bekam Buy-in von unserem Manager durch das Projekt mit Arbeitseinsparungen durch schnellere Entwicklung / Wartung zu rechtfertigen.) Zu konvertieren
  • erstellt und dokumentierten Standards für die Speicherung von Verbindungszeichenfolgen, gemeinsame Dateien, gemeinsame CSS-Dateien, etc.
  • als Teil unserer Reorganisation haben wir einen globalen freigegebenen Ordner, den wir von jedem unserer Projekte verweisen können. Diese enthält allgemeine Bilder, CSS, etc, die über mehrere einzelne Projekt Web-Sites verwendet wird, etc.
  • wir auch angegeben, dass jede Website einen gemeinsamen Ordner mit einem CSS, Skript und img Unterordner, so dass jedes Projekt haben, werden wir arbeiten im Einklang steht.
  • , sobald wir unser ersten Web-App neu zu schreiben abgeschlossen bekamen, haben wir eine Projektvorlage erstellt, um ein neues Website-Projekt sehr einfach zu machen zu starten.

Als Nebeneffekt der ganzen Arbeit, die wir gemacht haben, haben wir mit Hilfe der Conversion-Assistenten sehr schmerzlos einfach durch zwei Upgrades in Visual Studio gegangen. Wenn man von VS 2003 VS 2005, und dann zu VS2008 war kurz und schmerzlos.

Auch unsere Wahl in der Quellcodeverwaltung wurde auf der Basis getroffen, wie wir den Schlamassel beheben wollten. Wir waren TFS verwendet, wurden aber durch die Beziehung zwischen TFS-Projekten und der VS-Lösungen beschränkt. Wir fanden, dass Subversion mit uns erlaubt, eine größere Flexibilität als TFS, so konnten wir unser Quellcode-Verzeichnisstruktur legen, in einem viel besser verwaltbare Weise als TFS erlaubt hätte.

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