CRM 2011–pierwsze spojrzenie na możliwości Silverlight

W poście poświęconych usługom nowego CRM wspomniałem o dwóch usługach dostępnych pod adresami:

  1. IOrganizationService - http://<servername>/<organizationname>/XRMServices/2011/Organization.svc
  2. IDiscoveryService  - http://<servername>/<organizationname>/XRMServices/2011/Discover.svc

Jest tam jeszcze jedna, o której nie pisałem, a mianowicie http://<servername>/<organizationname>/XRMServices/2011/OrganizationData.svc

Właśnie z tej usługi korzystać należy, jeśli chcemy stworzyć coś fajnego, łącząc CRM z Silverlight czy też Ajax.

Co to jest za usługa ?

Jest to usługa oparta o protokół OData, zbudowana z wykorzystaniem WCF Data Service. Zasada działania tej usługi jest taka, że tworząc żądanie HTTP dostajemy w odpowiedzi dane w postaci feed’u. Po stronie klienta rezultat będzie przekonwertowany na obiekty :) Usługa, którą udostępnia CRM jest zbudowana w oparciu o architekturę REST (Representational State Transfer), które umożliwia dostęp do zasobów poprzez przypisane im unikalne URI. Architektura ta umożliwia wykonywanie operacji synchronicznych oraz asynchronicznych, a dzięki tej drugiej cesze może być w pełni wykorzystana przez Ajax bądź też Silverlight – osobiście bardziej mnie interesuje Silverlight ;)

Usługa jest alternatywą dla usług WCF, jednakże trzeba mieć na uwadze kilka ograniczeń, które ona posiada:

  1. Przy jej pomocy można tylko wykonywać operacje CRUD (Create, Retrieve, Update, Delete) – brak wsparcia dla wiadomości, które wymagają wykorzystania wyłączenie metody Execute w przypadku korzystania ze standardowych usług WCF
  2. Uwierzytelnienie jest możliwe tylko w kontekście aplikacji, chociaż możliwe jest podanie nazwy użytkownika oraz hasła. Jednakże jeśli będziemy komponent Silverlight umieszczać na formatce CRM, to informacje o użytkowniku będą brane z elementu, w którym nasz komponent jest osadzony.
  3. Nie jest zaimplementowany pełny protokół OData – niektóre zapytania nie są możliwe do zrealizowania – więcej informacji w SDK

Jak sprawdzić jak to działa ?

np. wejdz na strone:  http://<servername>/<organizationname>/XRMServices/2011/OrganizationData.svc/AccountSet a w rezultacie otrzymasz listę 50 kont, które masz zdefiniowane w systemie w postaci np. takiej:

image

A jeśli interesuje Cię konkretne konto możesz się do niego dobrać przy pomocy adresu:

http://<servername>/<organizationname>/XRMServices/2011/OrganizationData.svc/AccountSet(guid'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')

W ten sposób “dobierać” się możemy do obiektów standardowych w CRM jak również do obiektów niestandardowych. Ważne jest aby w URI podawać informacje o obiekcie dokładnie, tzn. nawet wielkość liter ma znaczenie.

Sama usługa opisywana jest przez metadane, które dostępne są pod adresem tym samym co końcówka, ale ze specjalnym dodatkiem:

image

Jak wykorzystać te metadane ? O tym w kolejnym odcinku :)