Zazwyczaj informowałem o nowych wersjach SDK za pomocą krótkiego opisu. W przypadku CRM SDK 4.0.12 opis nie może być krótki. Takie SDK u innych producentów systemów CRM nazywałoby się „major platform upgrade” i kosztowałoby tyle, co kolejna wersja systemu. SDK 4.0.12 to zmiana spojrzenia na platformę Microsoft Dynamics CRM! To również totalne przełączenie na koncepcję xRM! Ja osobiście jestem w szoku :). Nowe SDK przygotowuje nas po prostu do gładkiego przejścia do CRM 5 i daje już teraz dostęp do funkcjonalności SDK CRM 5.
David Jennaway już sporo opisał na swoim blogu, ale myślę, że można by napisać ciągle więcej o tej rewolucji po polsku. Tak więc… ;P:

SDK 4.0.12 wprowadza pojęcia „Advanced Developer Extensions” czyli „Zaawansowanych rozszerzeń programistycznych”, które technicznie nazwane są po prostu xRM’em. W skrócie polegają na tym, że możemy korzystać z platformy Dynamics CRM w zupełnie nowy sposób. I tak:

  • nowe SDK pozwala na korzystanie z danych w Dynamics CRM za pomocą LINQ!!! Niech ten piękny kod powie sam za siebie:
    var marketingListsWithCalculations =
    from marketingList in crm.lists
    select new { marketingList.listname, Cost = marketingList.cost + 100 };
  • nowe SDK pozwala na używanie natywnych typów .NET!!! W tym typów nullowalnych (o których nota bene pisałem ostatni projekt w szkole 😉 ), czyli np. short? a nie short, dzięki czemu unikamy konieczności ustawiania IsNullSpecified
  • możemy budować źródła danych za pomocą klasy DataContext
  • nowe SDK dostarcza narzędzie CrmSvcUtil, które pozwala budować lokalne i silnie typowane odzwierciedlenia bazy CRM, czyli klasy reprezentujące obiekty i DTO (Data Transfer Object). Dzięki temu można pisać kod oparty o LINQ
  • nowe SDK daje wsparcie dla WCF! poprzez generowanie klas kontekstowych za pomocą CrmSvcUtil
  • z nowym SDK możemy robić tzw. batch updates!!! To z kolei znaczy, że nie musimy już robić tysiąca wywołań Update(). Zamiast tego możemy modyfikować dane „lokalnie”, cache’ować je i dopiero za jednym wywołaniem aktualizować wszystkie na raz! Tutaj przykład:

    contact.Email emailaddress1 = "janko@x.com";
    contact.contact_customer_accountsParentCustomerAccount = account;
    contact1.Firstname firstname = "Jakub";

    crm.UpdateObject(contact);
    crm.UpdateObject(contact1);

    // zapisywanie do bazy
    crm.SaveChanges();

  • nowe SDK pozwala pobierać obiekty powiązane za pomocą gotowych metod. Dzięki temu zamiast budować QueryExpression i podawać GUID’y możemy po prostu wywołać metodę GetRelatedEntities()
  • nowe SDK daje zupełnie nowe możliwości budowania relacji między obiektami z poziomu kodu (poprzez metodę SetLink() albo aktuzalizację klucza obcego). Wystarczy zerknąć na przykłady poniżej, żeby zobaczyć dlaczego mówię o rewolucji :):
    crm.SetLink(contact, "contact_customer_accounts", account);
    crm.SaveChanges();

    albo:

    contact.contact_customer_accounts = account;
    crm.UpdateObject(contact);
    crm.SaveChanges();
  • nowe SDK zawiera informacje o budowaniu tzw. Visual Charts, czyli dynamicznych wykresów z danych w CRM. W CRM 5 wykresy te będą mogły być wyświetlane na listach rekordów, aktualnie udostępnia je w ograniczonej postaci tylko CRM Online R4.
  • nowe SDK zawiera zupełnie nowe rozdziały o uwierzytelnianiu w modelach serwer-serwer i impersonacji
  • nowe SDK zawiera mnóstwo nowych rozdziałów, w tym rozdziały opisujące dokładnie dlaczego należy korzystać z DynamicEntity, z klasy IsvReadiness i kilkunastu innych
  • nowe SDK zawiera rozdziały o dobrych praktykach w pisaniu zewnętrznych aplikacji korzystających z CRM i o sugestiach związanych z wydajnością takich aplikacji

Na razie nikt nie wie, czy ukaże się CRM SDK 4.0.13. A to dlatego, że 4.0.12 zbliża nas wielkimi krokami do CRM 5. Już teraz Microsoft przyzwyczaja programistów do rozwiązań, które w gotowej platformie zobaczymy za kilka miesięcy. SDK 4.0.12 to jest coś pięknego. To dla takich chwil warto kochać Dynamics CRM’a! I w takich chwilach wiem, czemu kocham MS a nie Google’a, który za major update uważa nowy kształt guzika „szukaj” :D.

PS. SDK 4.0.12 jest do ściągnięcia tutaj: http://www.microsoft.com/downloads/details.aspx?FamilyID=82E632A7-FAF9-41E0-8EC1-A2662AAE9DFB&displaylang=en

Reklamy