Dynamics 365 CE i język TypeScript To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Piotr Gaszewski 15.02.2016
TypeScript Język w pełni obiektowy (klasy, interfejsy, itp.) Posiada typowanie statyczne „Nadzbiór” języka JavaScript Moduły Udostępniany jako OpenSource na licencji Apache2
module TypeScriptDyn365Demo { interface IMessage { send(message: string): boolean; }; class Activity { private startDate: Date; private enddate: Date; constructor() { console.log("Activity created"); } public start(startDate: Date) { this.startDate = startDate; public close() { this.enddate = new Date(); class TextMessage extends Activity implements IMessage { private from: string; private to: string; constructor(from: string, to: string) { super(); console.log("Text message created"); send(message: string): boolean { return true; var message = new TextMessage("pg@wp.pl", "ewa@gmail.com"); message.start(new Date()); var result = message.send("Hello message!"); if (result) { message.close();
Kompilacja Wersje ECMA Script: Module Systems: 3 5 6 (2015) 2016 2017 ES.Next Module Systems: CommonJS AMD UMD System ES2015
Pliki definicji (*.d.ts) Umożliwiają sprawdzanie poprawności typów w procesie kompilacji Wykorzystywane przez mechanizm IntelliSense Visual Studio Dostępne dla wielu popularnych bibliotek JS za pośrednictwem repozytorium DefinitelyTyped (https://github.com/DefinitelyTyped)
XRM Definitely Typed Generator plików deklaracji dla modelu danych Dynamics CRM/365 Generator deklaracji dla typu OptionSet API umożliwiające dostęp do usług sieciowych Metadane (SDK.Metadata.js) Web API (XrmQuery) Dostępny jako OpenSource pakiet Nuget, repozytorium GitHub: https://github.com/delegateas/XrmDefinitelyTyped
Dynamics 365 CE – client API
Dynamics 365 CE – client API
Przykładowa architektura aplikacji
Testy jednostkowe Możliwe wykorzystanie popularnych frameworków np. Jasmine, Mocha, Qunit, Sinon.JS TSUnit – dedykowany dla języka TypeScript Integracja z Visual Studio Test Exporer za pomocą Chutzpah
INFO TypeScript – specyfikacja języka: https://www.typescriptlang.org/docs/home.html XRM Definitely Typed: http://delegateas.github.io/Delegate.XrmDefinitelyTyped/ Przykładowy kod wykorzystany w czasie prezentacji: https://github.com/gashupl/dyn365ce-typescript-demo/