Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais
Utilizando WCF com JQuery–Parte 2
Data:4/13/2011

Translate this page now :





Categories: ASP.NET , JQuery , WCF

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :
Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon

Veja Também


WCF2_2No exemplo anterior já vimos como fazer a comunicação entre o JQuery e o WCF funcionar. Agora vamos ver alguns métodos alternativos de fazer essa comunicação.

Analisar esses métodos alternativos são importantes primeiramente para compreendermos melhor o funcionamento do WCF, mas também pelo fato de que podemos encontrar na web diversas soluções equivalentes feitas de forma diferente e só compreendendo bem essa estrura do WCF poderemos analisa-las sem nos perder.

EnableWebScript

O EnableWebScript é um behavior – um comportamento – dos endPoints, ou seja, determina a forma de funcionamento dos endPoints.

Porém este behavior nada mais faz do que agregar algumas funcionalidades que já existem no WCF, simplificando a configuração do serviço.

Poderíamos, perfeitamente, não utilizar o EnableWebScript e configurar no serviço cada uma das características que nos levarão a ter a comunicação JSON da forma como desejamos.

Partindo de onde paramos no artigo anterior, faça o seguinte :

  • Troque o enableWebScript por webHttp
   1: <endpointBehaviors>
   2:   <behavior name="WebApplication1.srvCalculosAspNetAjaxBehavior">
   3:     <webHttp />
   4:   </behavior>
   5: </endpointBehaviors>
  • Acrescente o atributo webInvoke no método Calcular, da seguinte forma :
   1: [OperationContract,WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, 
   2: RequestFormat = WebMessageFormat.Json, ResponseFormat=WebMessageFormat.Json)]
   3: public resultado Calcular(int v1, int v2)
   4: {
   5:     return new resultado() { valor1 = v1 * v2, valor2 = v1 / v2 };
   6: }
  • Teste a aplicação utilizando o fiddler para visualizar a comunicação

SNAG-0033

Resultado

A comunicação continua sendo JSON, apesar de com esta configuração o formato de retorno ser um pouco mais estruturado do que com o enableWebScript.

A diferença é mínima e o enableWebScript é bem mais simples, vale a pena apenas conhecer este método para sabermos o que o enableWebScript faz por nós e não nos perdermos em diferentes exemplos na web.

Factories

As Factories são classes que quando aplicadas em um serviço “fabricam” um endpoint com protocolos e características muito específicas para uma determinada finalidade.

Desta forma as Factories funcionam como um grande atalho para muitas funcionalidades existentes no WCF.

No caso de serviços de script, temos a WebScriptServiceHostFactory, que uma vez aplicada a um serviço gera um endpoint com webHttpBinding e enableWebScript.

Vamos então aplicar a Factory a partir do ponto em que paramos em nosso projeto.

Aplicando a Factory

  • Remova do serviço o atributo webInvoke
  • Remova do web.config todo o serviceModel
  • Clique com o botão direito sobre o arquivo .svc, selecione “open with…” e escolha XML Editor

SNAG-0034SNAG-0035

  • Na única tag existente no arquivo, acrescente o atributo Factory, fazendo-a ficar da seguinte forma :
   1: <%@ ServiceHost Language="C#" Debug="true" 
   2:     Service="WebApplication1.srvCalculos" 
   3:     CodeBehind="srvCalculos.svc.cs"
   4:     Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
   5:     %>
  • Teste a aplicação


Categories: ASP.NET , JQuery , WCF


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br