Dev (Back & Front)ARTIGO

URL do WebService dinâmico

Hoje vamos 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.

Usado:

  • 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 retrabalho 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.

Imagine que exista um webservice dentro da ferramenta referenciada, na 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.

O webservice já está no ambiente de homologação e a ideia não é referenciar uma nova URL dentro da ferramenta. (Figura 1)


Figura 1.

É preciso que esse apontamento de URL seja dinâmico e esteja 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) está 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:
link do vídeo

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 é preciso
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 dúvida ou opinião 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