Dev (Back & Front)ARTIGO

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.

 

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 InicialzarWebService()

{

   
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

            {

               
InicialzarWebService();

 

                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, ficou por
aqui qualquer coisa pode entrar em contato pelo site.

Com mais de 20 anos trabalhando no mercado de tecnologia. Mestre em Engenharia Elétrica voltada para o mundo mobile, com mais de 20 livros publicados e cerca de 700 artigos publicados com intuito de ajudar àqueles que querem aprender a programar (site, software, desktop, serviços, api e mobile). Site pessoal: https://www.mauriciojunior.net - MVP, MCAD, MCP Microsoft

Ver perfil