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)
É 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.
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.










