Olá pessoal sejam bem vindos, no artigo de hoje vou ensinar como consumir WCF com Ajax utilizando jQuery.

Quem freqüenta o blog deve ter percebido que nos últimos POST do blog venho explicando outras formas de consumir informações do servidor com Ajax e hoje vamos aprender consumir o WCF.

Vamos iniciar nosso exemplo criando um projeto do tipo Web, e criar uma pasta com nome Service.

Agora o próximo passo é adicionar dentro da pasta Service, um novo item do tipo: AJAX-enabled WCF Service, com nome WcfUser.

Depois que adicionar o WCF remova as referencias que criaram na Web.config dentro do nó

System.webServer e adicione dentro da tag ServiceHost do arquivo WcfUser.svc a linha abaixo para não precisar ficar configurando o WCF toda vez, assim simplificando nosso trabalho.

Factory="System.ServiceModel.Activation.WebServiceHostFactory"

 

O próximo passo é começar criar os métodos que vamos consumir no WCF como mostra abaixo.

 public class ServiceResult

        {

            #region Properties

 

            public string Title { get; set; }

            public string Description { get; set; }

 

            #endregion

        }

 

        [OperationContract]

        [WebGet(UriTemplate = "GetUserNameJSON", ResponseFormat = WebMessageFormat.Json)]

        public ServiceResult GetUserNameJSON()

        {

            return new ServiceResult { Title = "JSON Result", Description = "Nome do usuário : Emerson" };

        }

 

       

        [OperationContract]

        [WebGet(UriTemplate = "GetUserNameJSONById/{pId}", ResponseFormat = WebMessageFormat.Json)]

        public ServiceResult GetUserNameJSONById(string pId)

        {

            if (pId == "1")

            {

                return new ServiceResult { Title = "JSON Result", Description = "Nome do usuário : Emerson" };

            }

            else if (pId == "2")

            {

                return new ServiceResult { Title = "JSON Result", Description = "Nome do usuário : Angelica" };

            }

            else

            {

                return new ServiceResult { Title = "JSON Result", Description = "Nome do usuário : Eder" };

            }

        }

 

 

Descrição: No serviço que criamos como exemplo vai conter 2 métodos recebendo um atributo WebGet que contem duas propriedades:

UriTemplate: propriedade responsável por customizar o nome do nosso método que vai ser invocado no nosso serviço, minha dica é sempre colocar o nome do nosso método para evitar confusão.

ResponseFormat: propriedade responsável por definir o retorno do nosso serviço que pode ser XML ou objeto JSON.

No nosso serviço também criei uma classe para customizar objeto de retorno do nosso JSON.

O próximo passo é criar as funções Ajax para consumir o nosso WCF como mostra abaixo.

 

        function GetUserName() {

            $.getJSON('/Service/WcfUser.svc/GetUserNameJSON', LoadUserName);

        }

 

 

        function GetUserNameJSONById(Id) {

            $.getJSON('/Service/WcfUser.svc/GetUserNameJSONById/'+Id, LoadUserName);

        }

       

       

        function LoadUserName(Result) {

            alert(Result.Title +':'+ Result.Description);

        }

 

        GetUserName();

        GetUserNameJSONById(1);

 

Descrição: Depois de adicionar a biblioteca jQuery adicione essas 3 funções JavaScript,nas duas funções temos o método getJSON, que pede dois parâmetros o primeiro a URL o segundo uma função que vai receber o resultado da nossa  requisição, a segunda função contém um parâmetro a mais um Id.

Agora execute as duas funções para ver como é pequeno o tempo de requisição e resposta do WCF.

Espero que tenham gostado até a próxima.