C# Banco de Dados de Desenvolvimento e Produção

Esse é uma dica para quem assim como eu é programador de sistemas que usam banco de dados em empresas corporativas, quando iniciei meus primeiros projetos no Visual Studio sofri bastante com o processo de publicação do aplicativo, principalmente depois de alguns meses em produção. Tive problemas bestas como publicar o aplicativo e esquecer de configurar a string de conexão com o banco de dados para produção e o pessoal ficou umas três horas usando a sandbox.

Inicialmente invés de pesquisar uma solução para o problema, acabei criando uma, funcionou, mas não da forma ideal. Minha solução foi criar uma classe estática com uma única função para instanciar o banco de dados, para isso eu usei o pré-compilador do C# e uma modificação da classe do banco de dados.

Projeto\Classes Projeto\Models

Essa solução realmente funciona, mas eu queria algo mais integrador com o Visual Studio. Em outro projeto resolvi pesquisar uma solução. Encontrei um recurso do Visual Studio que permiti criar transformações para os arquivos do projeto de configuração agindo como uma extensão do original para debug e release. Esse recurso foi lançado na versão 2010 e funcionando tanto em aplicações desktop App.config e aplicações web Web.config.

Usando esse recurso basta configurar as strings de conexão para serem incluídas (no meu caso achei mais simples) ou substituídas. Para isso é só adicionar a string nos sub-arquivos .Release.config e .Debug.config com o código xdt:Transform=”Insert”.

App.Debug.config App.Release.config

As duas soluções funcionam, resolvi ficar com a segunda porque é um recurso padrão.

Para mais informações tem esse post do Scott Hanselman que explica com mais detalhes como usar o recurso nativo.

Link: https://blog.elmah.io/web-config-transformations-the-definitive-syntax-guide/

pablo / 26 de agosto de 2020 / C#
Tags:, , , , ,

Deixe uma resposta

Your email address will not be published / Required fields are marked *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.