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() { { 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 {
DataTable cmbScanner.DataSource = cmbScanner.ValueMember = “mhaId”; cmbScanner.DisplayMember = “mhaNome”;
this._listaMhaUrlInstalacao.Add(Convert.ToInt32(dtRow[“mhaId”]), Convert.ToString(dtRow[“mhaUrlInstalacao”])); } catch (Exception { } } |
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.








