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# / 0 Comments

Aplicação C# Asp.Net MVC com vue.js/vuetify

Tive essa brilhante ideia de criar o novo projeto aqui da empresa usando como backend uma aplicação C# com Asp.Net MVC e como frontend vuefity. Que dor de cabeça, não no sentido de desenvolvimento, isso é simples, as duas tecnologias possuem uma boa documentação, encontrei o problema na integração das duas, queria que elas agissem com um único projeto, já que ambas são compiladas tive que pensar em uma maneira de automatizar o processo, porque toda vez que eu atualizava a interface estava precisando copiar os arquivos do diretório /dist do projeto vuetify para o diretório /Content/frontend do projeto C#, isso depois de umas quatro vezes encheu minha paciência.

Para resolver esse problema tive que modificar o projeto vuetify de forma que ele automaticamente exporta-se o diretório de distribuição para o projeto C#, para isso eu criei um script para ser executado no postbuild configurado no package.json. Vou deixar as configurações e o script abaixo.

Essa alteração configura para executar automaticamente o script postbuild.js quando executado o comando yarn build (no meu caso) ou npm build for executado.

O script postbuild.js possui duas funções, uma para limpar o diretório de destino e a outra para copiar os arquivos do diretório de distribuição. Define duas constantes para configurar o script, a work_dir que define o diretório atual de trabalho (não precisa ser alterada) e a dest_dir que define o diretório Content do projeto C#.

No projeto C# o arquivo HomeController.cs somente retorna a função File com o arquivo index.html.

Depois de aplicada esse solução trabalhar no projeto ficou muito mais fácil, por mais que seja simples fazer chamadas ajax da aplicação vuetify para o projeto C# no ambiente de testes eu sempre gostei de fazer testes com a versão compilada do projeto, principalmente para testar em dispositivos móveis.

pablo / 24 de agosto de 2020 / C#, Node.js, Vue.js / 0 Comments