Melhor maneira de gerenciar cadeias de conexão em um projeto contendo tanto ASP clássico e ASP.Net 1.1 código?

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

Pergunta

Eu tenho um projeto que eu tenha herdado que é essencialmente um aplicativo ASP clássico; no entanto, misturados na aplicação são um punhado de páginas ASP.NET. Algumas das páginas ASP.NET são 1.1 e não usar um código por trás do modelo.

As páginas ASP clássicas têm um número de / include onde há um arquivo para conexões de banco de dados. As páginas ASP.NET tem a seqüência de conexão codificado em em seu código.

Eu estou tentando limpar essa bagunça de seqüências de conexão por isso é mais fácil de gerir em ambientes de desenvolvimento.

Alguém tem alguma recomendação sobre como eu posso ser capaz de efetivamente fazer isso que vai trabalhar para ambas as páginas do clássico ASP e ASP.NET?

Graças

Foi útil?

Solução

Coloque um arquivo web.config na raiz do site asp clássico. páginas ASP.NET sem por trás de código (e assumindo que não há diretórios / aplicativos virtuais em qualquer lugar) vai usar esse arquivo web.config. Você pode colocar seqüências de conexão lá. Você provavelmente vai acabar tendo dois conjuntos de cordas, mas isso é melhor do que muitos mais. E se você realmente quiser, você pode escrever algum código asp clássico para ler esse arquivo de configuração.

Outras dicas

Desta forma, está se concentrando em isolar arquivo seqüência de conexão de webroot para o sistema de código-fonte controle de versão (como svn).

Files:

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. Acho que não sou o único com uma bagunça como este para limpar.

Eu não tenho muito resposta útil para você, mas aqui é a estratégia que surgiu com. Ele vai além da sua pergunta, mas espero que ele responde a perguntas que você não tenha pensado para perguntar ainda. A tarefa diante de você é enorme, e eu gostaria de dar-lhe como muitas dicas que eu puder sobre todo o processo, e não apenas as seqüências de conexão.

  • completamente reorganizar nosso código fonte
  • Completamente reorganizar a estrutura de arquivos em nosso web
  • código de correção como precisamos modificá-lo , em vez de tentar fazer tudo de uma vez como um grande projeto.
  • torná-lo um objectivo declarado de converter asp clássico para asp.net (e tem buy-in do nosso gerente, justificando o projeto com economia de trabalho através de mais rápido desenvolvimento / manutenção.)
  • criado e padrões documentados para armazenar seqüências de conexão, arquivos comuns, arquivos CSS compartilhados, etc.
  • como uma parte de nossa reorganização, temos uma pasta compartilhada global que podemos fazer referência a partir de qualquer de nossos projetos. Este contém imagens comuns, CSS, etc, que é usado em vários sites de projetos individuais, etc.
  • nós também especificou que cada site terá uma pasta comum com a CSS, script e sub-pasta img para que cada projeto que trabalhar é consistente.
  • Uma vez que nós temos o nosso primeiro Web App re-escrever concluída, criamos um modelo de projeto para fazer iniciando um novo projeto web site muito simples.

Como um efeito colateral de todo o trabalho que fizemos, nós passamos dois upgrades em Visual Studio muito indolor simplesmente usando os assistentes de conversão. Indo de VS 2003 para VS 2005, e depois para VS2008 foi indolor.

Além disso, a nossa escolha no controle de origem foi feito com base em como queríamos corrigir a bagunça. Nós utilizando TFS, mas foram limitados pela relação entre os projectos TFS e soluções VS. Nós descobrimos que o uso do Subversion permitiu-nos uma maior flexibilidade do que TFS, por isso fomos capazes de colocar a nossa estrutura de diretórios de código-fonte de uma forma muito mais manejável do que TFS teria permitido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top