Desenvolvimento - ASP. NET

URL do WebService Dinâmica

Olá Internautas, hoje gostaria de falar sobre um código importante para quem usa URL dinâmica no WebService. Para quem trabalha com vários ambientes de software, essa solução pode valer muito a pena.

por Mauricio Junior



Brasília, 30 de julho de 2010

         Olá Internautas, hoje gostaria de falar sobre um código importante para quem usa URL dinâmica no WebService. Para quem trabalha com vários ambientes de software, essa solução pode valer muito à pena.

Requisitos:

Ferramenta de desenvolvimento: Visual Studio.NET (qualquer versão)

Linguagem: C#

.NET Framework 3.5 pra cima

         Para quem tem os ambientes devidamente separados, é necessário utilizar alguns dados dinâmicos para evitar re-trabalho no momento da compilação. Isto é, alterar só no arquivo de configuração de acordo com o ambiente de desenvolvimento, homologação e produção.

        

Imagina que exista um webservice dentro da ferramenta referenciada, naquela pasta Web References. A URL desse webservice aponta diretamente para o ambiente de desenvolvimento, porém, é necessário publicar a aplicação no ambiente de homologação.

        

         Lógico que o webservice já está no ambiente de homologação e a idéia não é referenciar uma nova url dentro da ferramenta. (Figura 1)

Figura 1

        

         Eu preciso que esse apontamento de url seja dinâmico e de acordo com o ambiente que o aplicativo for publicado, isto é, para homologação pegar a url de “hom”, para “produção” e assim por diante.

         Se não for colocado dinamicamente, para cada ambiente é necessário alterar a url na ferramenta, compilar novamente e publicar no ambiente. Veja a url (Figura 2) Esse ambiente é de desenvolvimento.

Figura 2

         No terceiro campo (Web Reference URL) é o que preciso mudar.

         A primeira coisa é declarar a variável no início do código. (Tabela 1)

private WSRetaguarda.Retaguarda wsRetaguarda; //variavel do webservice

Tabela 1

         O próximo passo é gerar um método para verificar a variável e atribuir o valor. (Code 1)

private void InicializarWebService()

{

    if (wsRetaguarda == null)

    {

       wsRetaguarda = new WSRetaguarda.Retaguarda();

       wsRetaguarda.Url = pathWebService;

    }

     else

       wsRetaguarda.Url = pathWebService;

    }

Code 1

         Esse code 1 verifica primeiramente se a variável é null, se for ele gera uma nova instância e atribui a variável URL passando o path do webservice dinâmico. Esse path dinâmico pode estar dentro do arquivo web.config.

         Para quem usa a ferramenta Visual Studio .NET 2010, fica bem simples porque o arquivo de configuração é dinâmico para cada ambiente. Veja o vídeo abaixo e se informe mais.

Vídeo:

http://aspneti.com/video+inovacao+visual+studio+net+2010+parte+4+60,5.aspx

         Depois de criar o método e colocar a variável pegando do web.config, basta chamar sempre este método (inicializarWebService()) antes de chamar qualquer outro método do webservice. Veja o exemplo, Code 2.

private void carregarDados()

        {

            try

            {

                InicializarWebService();

                DataTable dtResultado = wsRetaguarda.buscaModeloHardware();

                cmbScanner.DataSource = dtResultado;

                cmbScanner.ValueMember = "mhaId";

                cmbScanner.DisplayMember = "mhaNome";

                if (dtResultado.Rows.Count > 0)

                {

                    foreach (DataRow dtRow in dtResultado.Rows)

                    {

this._listaMhaUrlInstalacao.Add(Convert.ToInt32(dtRow["mhaId"]), Convert.ToString(dtRow["mhaUrlInstalacao"]));

                    } 

                }

            }

            catch (Exception ex)

            {

                throw ex;

            }

        }

Code 2

         É bem simples e fácil, pois agora não precisarei compilar os dados para atribuir a URL de acordo com o ambiente. Caso você use um new chamando o webservice, essa url se perde e volta a apontar para desenvolvimento. Isso porque é a primeira da ferramenta do Visual Studio.NET.

Bom, fico por aqui, qualquer coisa pode entrar em contato pelo site.

Mauricio Junior

Mauricio Junior - Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; . Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna e sou editor do Linha de Código.
Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A.
Blog:
blog.mauriciojunior.org
Site pessoal: www.mauriciojunior.org