CRM 2011 – Acessar WCF (OnPremises)


Informação obsoleta, ver o post: CRM 2011 – Acessar WCF (Multi Autenticações)

Nas versões anteriores do CRM, tínhamos extensões denominadas ISV’s (Independent Software Vendor), assim, incluíamos funcionalidades adicionais como projetos de Web Application e as funções eram agregadas. Deste modo, pouca coisa mudava na rotina dos profissionais de .Net pois no final era C# ou VB.Net consumindo o CRM. Porém na versão 2011 a Microsoft optou por novos rumos, parte disto pelo “boom” das aplicações em nuvem.

A decisão acabou aprimorando os meios de desenvolvimentos para empresas e profissionais ISV’s como, o surgimento do Azure, a adoção definitiva do Silverlight e o Sandbox são exemplos claros da preocupação e aprimoramento do desenvolvimento avançado para o CRM, em contra partida, as antigas pastas ISV’s e Web Application não são mais suportados.

Porém, em alguns casos ainda necessitamos da velha Web Application e seus .aspx’s, ou ainda um serviço em Windows Service que precisa consumir diretamente o Web Service (WCF) do CRM para realizar algumas ações. Para isso faço este post! Teremos um exemplo de uma classe com um método estático que retorna um IOrganizationService, contendo as funções do Web Service para a interação com o CRM.

Crie uma Web Application e adicione na classe as dll’s do CRM (existentes na pasta Bin do SDK) Microsoft.Xrm.Sdk.Client e Microsoft.Xrm.Sdk, depois copie e cole o código abaixo, altere os valores para acessar o seu CRM e pronto!

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel.Description;
using Microsoft.Xrm.Sdk.Client;
using System.Net;
using Microsoft.Xrm.Sdk;

namespace Authentication
{
public class Authentication
{
public IOrganizationService GetAuthentication()
{
ClientCredentials Credentials = new ClientCredentials();
//Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
Credentials.Windows.ClientCredential = new NetworkCredential(
"LOGIN", "PASSWORD", "DOMAIN");

Uri OrganizationUri = new Uri("http://SERVER/ORGANIZATION/XRMServices/2011/Organization.svc");
Uri HomeRealmUri = null;

OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null);

return (IOrganizationService)serviceProxy;
}
}
}

Para usar, veja um exemplo:

Entity contato = new Entity("contact");

contato["firstname"] = "Tiago";
contato["lastname"] = "Cardoso";

new Authentication().GetAuthentication().Create(contato);

Como eu disse é apenas um exemplo, pode ser otimizado e melhorado facilmente por vocês!   Em breve farei outro post com a autenticação em CRM 2011 Online.

Referências:

http://msdn.microsoft.com/en-us/library/microsoft.xrm.sdk.client.organizationserviceproxy.aspx

http://msdn.microsoft.com/en-us/library/gg328350.aspx

2 comentários em “CRM 2011 – Acessar WCF (OnPremises)

  1. Tiago, boa tarde!
    Me ajuda !!!
    Preciso de uma orientação pois preciso criar um webservice para buscar os dados do banco de dados do “XRMS” que é um CRM open source, e através desse webservice enviar os dados para o dynamics crm online.

    Se puder por favor me ajuda! …
    Criar um webservice básico eu sei, o problema é integrar com o dynamics online.
    Me ajuda! Dá uma dica!

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.