DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Easy .net magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Avançando com WCF - Revista Easy Net 16

Este artigo continua falando sobre o desenvolvimento de aplicações WCF, iniciado na edição anterior, que são a plataforma para distribuição de software como serviços criada pela Microsoft como um aperfeiçoamento aos Web Services. No texto será d






A grande sacada dos Web Services e do WCF foi possibilitar distribuir o processamento entre computadores separados fisicamente de uma maneira relativamente simples. Qualquer programador que tenha estudado sistemas distribuídos precisou aprender a criar sockets e entender o funcionamento das camadas de rede. Isso sinceramente não é nada fácil, uma vez que muitos problemas precisam ser resolvidos.

A estrutura fornecida pelo WCF, assim como todas do Framework .Net, busca providenciar todos os recursos para o desenvolvedor focar ao máximo na funcionalidade que quer criar e não se preocupar (tanto) com os problemas citados anteriormente.

Boa parte destes recursos está concentrada na forma como altera o comportamento do serviço através das configurações. É possível fazer toda a configuração dos endpoints e do host dentro do código escrito em C#, mas é melhor que isto seja feito através de arquivos de configuração, como nos outros tipos de aplicação do Framework .Net. Estes arquivos já são conhecidos para quem desenvolve projetos Web e Windows e sua estrutura não difere muito nos WCF.

A configuração da aplicação cliente que é a que irá acessar o serviço, também pode ser feita com o uso dos arquivos. Desta forma este tipo de aplicação pode fazer alterações como mudança do endereço do serviço e alguns detalhes do seu acesso sem precisar sofrer nenhuma modificação no seu código.

Também é oferecido para o desenvolvedor uma forma facilitada para hospedar os serviços dentro da infraestrutura oferecida pelo IIS (Internet Information Service) que é o gerenciador padrão dos sistemas Windows para hospedagem de páginas e aplicativos Web.

A hospedagem do WCF no IIS não é tão intuitiva, mas com um pouco de esforço os resultados são satisfatórios. Sempre que se escreve sobre o Framework .Net existe uma tendência de superestimar suas vantagens. Em um primeiro momento, a tendência é achar que tudo deve ser muito simples e rápido, e depois que se conhece um pouco mais da sua arquitetura, tudo acaba ficando assim mesmo, mas primeiro é importante se aprofundar em alguns aspectos.

A arquitetura do WCF

Desde a versão 2.0 do Framework .Net, a base para desenvolvimento de serviços continua a mesma, ou seja, as classes principais são desta versão.

As novidades como WCF, WPF (Windows Presentation Foundation, uma nova plataforma para o desenvolvimento de aplicações desktop), LINQ (Language Integrated Query, uma linguagem de consultas integrada com as linguagens do Framework como VB e C#), são acréscimos feitos a partir das novas versões. O WCF, por exemplo, está embutido na versão 3.0. A Figura 1 dá uma ideia desta arquitetura.

Isto significa que para ativar estes tipos de aplicação, se deve instalar a versão correta do Framework. Um detalhe importante é que as versões Windows 7 para o desktop e Windows 2008 para o servidor já estão com as versões necessárias instaladas. Outro ponto a considerar é que ao instalar a versão 3.5 a 2.0 já é instalada por padrão.

É sempre bom lembrar que as pastas do Framework .Net estão tipicamente em c:\windows\Microsoft.Net. A Figura 2 demonstra uma estrutura destas no Windows 7.

Observe que as versões 1.0, 1.1 e 2.0 também são instaladas para manter compatibilidade. Sabendo desta arquitetura, ao fazer a hospedagem do WCF no IIS, a configuração da aplicação ficará um pouco mais fácil de entender principalmente quando se estiver configurando o pool de aplicações que é como o IIS faz o gerenciamento destas. Em alguns casos, como o WCF, é indicado usar o Classic App que usa a versão 2.0 como base.

Usando o IIS para hospedar o serviço

O IIS está presente em quase todas as versões do Windows, mesmo as Desktop. Atualmente na versão 7 que vem por padrão no Server 2008 e no Windows 7 (a partir da Professional), é a maneira mais indicada para hospedar serviços WCF.

O seu acesso pode ser feito de diversas maneiras sendo as mais simples através das ferramentas administrativas, digitando “IIS” no menu iniciar (Figura 3) ou através da opção “Executar” do menu iniciar do Windows digitando “inetmgr”.

Se o mesmo não estiver instalado, é fácil fazer isto através da opção Adicionar Programas do painel de controle do Windows. Nesta tela, deve se abrir a ferramenta para habilitar ou desabilitar recursos do Windows (Figura 4).


Estes passos foram elaborados a partir do Windows 7, mas devem funcionar com a versão do servidor também. Lembre-se de que será necessário ter permissões do usuário Administrador. Se estiver configurando o IIS, após instalar, não é necessário reiniciar o computador, apenas alguns passos adicionais precisam ser dados. Entre estes deve se instalar o ASP.NET no IIS. Isto é feito no prompt de comandos (aberto como administrador) na pasta c:\windows\microsoft.net\Framework\v2.0.50727 com o comando:

 

> aspnet_regiis –i

 

Após isto, outro passo também deve ser feito ainda no prompt, porém agora na pasta da versão 3,0 c:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation executando o comando:

 

> ServiceModelReg.exe –i

 

Normalmente isto é necessário em máquinas desktop principalmente onde se fez uma instalação manual do Framework .Net ou do Visual Studio.

Novamente não é necessário reiniciar o Windows, apenas o IIS que pode ser feito no próprio prompt de comandos na pasta c:\windows\system32 através do comando:

 

> iisrest –restart

 

Ou na própria interface do IIS.

Como preparar o WCF para o IIS

O IIS precisa ser preparado para hospedar o WCF. Existem muitos exemplos de como criar uma aplicação console para disponibilizar o serviço WCF, inclusive foi tema do artigo anterior. Entretanto, a melhor opção é o IIS, por vários motivos, entre eles a sua capacidade de gerenciamento dos processos e controle de falhas.

Quando se desenvolve um serviço WCF para ser hospedado no IIS duas modificações importantes precisam ser feitas. Uma é criar um arquivo de configurações, como será colocado adiante, e outra é acrescentar um arquivo com a extensão .svc no projeto.

O arquivo .svc pode ser acrescentado no projeto facilmente e consiste basicamente de um documento XML onde se indica o nome do serviço e o namespace e a classe que está sendo exposta. Este conteúdo será muito parecido com o dos arquivos .asmx usados nos Web Services:

 

<%@ ServiceHost Service="InvestServiceDemo.InvestService" %>

 

Através deste código, é possível acessar o WCF passando o nome do serviço a ser acessado. O IIS se encarrega de resolver como será feito o acesso na DLL do WCF que é publicada. Aliás, é importante observar como será feita a publicação do WCF no IIS. Deve-se copiar para a pasta a ser configurada no IIS os seguintes conteúdos:

·        Pasta bin, contendo as dll´s do serviço e acessórias, que forem necessárias. Na pasta bin, somente estes arquivos são copiados;

·        Arquivos “.svc”;

·        Arquivos de configuração, que devem ser renomeados para web.config.

Ao criar uma aplicação do tipo WCF Library o arquivo .svc não é acrescentado por padrão e nem o arquivo de configurações. No exemplo prático será demonstrado como adicionar estes no seu projeto.

Outra questão interessante é que também é possível usar a extensão .asmx em vez do .svc, mas, se for fazer isto, será necessário indicar isso nas configurações.  Uma boa ideia é manter .svc até para poder diferenciar as aplicações Web Services de WCF.

"



ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da Easy .net magazine ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Vladimir Rech

Formado em Tecnologia em desenvolvimento de software pela UTF/PR. Desenvolvedor de software. Palestrante.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03