Em soluções que envolvam vários projetos no Visual Studio as referencias a serviços podem ficar perdidas. A associação a um service é feita com “Add Web Reference” ou com “Add Service Reference”. Com isto o Visual Studio obtém o WSDL do serviço e gera o código em C#, VB, etc. É fácil atualizar a referência, útil quando está desenvolvendo a aplicação cliente e o WebService.
Existe um alternativa interessante. Com as aplicações WSDL e CSC pode-se utilizar os webservices como referencias comuns no projeto. Isto pode ser útil:
- É mais fácil estender funcionalidades do WebService no cliente
- É mais flexível de utilizar a referência entre os projetos
Gerando o DLL a partir do webservice?
Considero um cenário em que o WebService está sendo criado manualmente.
Para criar uma DLL a partir de um webservice, siga os passos:
1. Crie um projeto do tipo WebService |
2. Adicione os webmethods que desejar |
3. Compile o webservice |
4. Abra o prompt de comando do Visual Studio |
5. Execute a linha de comando com WSDL |
wsdl /language:cs /out:c:projetosfinanceiroservice.cs /namespace:FinanceiroService http://localhost:1974/Service1.asmx?WSDL
6. Execute a linha de comando com CSC |
csc /target:library /out:c:projetosfinanceiroservice.dll c:projetosfinanceiroservice.cs
7. Crie outra aplicação cliente |
8. Adione uma referencia |
9. Selecione a DLL gerada no passo 6 |
10. Utilize o serviço no cliente |
11. Adicione a referencia de System.Web.Services |
12. Voilà! Pronto. |
Thiago Anselme - Gerente de TI - Arquiteto de Soluções
Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.
Outros posts para você:
Como funciona a criação bitcoins ‘do nada’?
Utilizando computação paralela massiva para cálculos pesados (C++ AMP)
O Desenvolvedor acabou! Será?
O Essencial do Hadoop
Gossip Protocol e a manutenção do estado em sistemas distribuídos
Modelando o Context map do zero
Instalando o Docker no WSL2
Princípios e Acrônimos: SPOT, DRY, AHA, etc.