A combination of SharePoint and CRM to ensure atomic transactions (Travel Agency example)

Agenda • • •

Matching of expectations Introduction: Speaker and Delegate A/S SharePoint and CRM • SharePoint Online + CRM Online = Match made in heaven



Travel Agency • DDD/TDD approach • Demo (+code)

• • •

Why TypeScript is a better choice (+code) Summary Q&A

Matching of expectations



Our expectations are to show that it is possible to develop in the Cloud what you were able to do On-Premise. It might require that SharePoint development involve CRM since as it has the possibility to upload assembly files.



The goal for this talk is to showcase that you can still code in the same way once you move to the Cloud. Code will be shown, because it is a technical talk, but the focus should be on the implemented business logic and less on the used tools.

Intro – Ramón Soto Mathiesen •

Delegate A/S: 2013  Position: CTO of CRM Department  I am responsible for the department’s technical vision and solutions, as well

as the implementation of these visions and solutions to our customer projects.  CRM Projects: Schultz Information, William Demant Holding, Konica Minolta, Danske Fragtmænd, Radiometer, Jyske Bank, BRFkredit, Brüel & Kjær, ISS, … •

Education: 2005 - 2010  M.Sc. in Computer Science, with minors in Mathematics (DIKU/HCØ/Pisa)  Microsoft certified: MCP + MCSA + MCSE + MCDBA + MCTS



Founder and organizer of F#unctional Copenhageners Meetup Group  http://www.meetup.com/MoedegruppeFunktionelleKoebenhavnere/



Blog  http://blog.stermon.com/

Intro – Delegate A/S



IT-Consultancy known for their SharePoint solutions and established in 2006



The CRM department was established in February 1, 2013 when I arrived. The head of our Department is Kaspar Bøgh Christensen, former Dynamics CRM director at Avanade, and we are a total of 13 consultants working at our two locations: Aarhus and Copenhagen



The company's motto: "We must be the best, not necessarily the biggest"

Intro – Delegate A/S



Open Source Tools @ GitHub: http://delegateas.github.io/ (I blog about Daxif, Twitter #HowToDaxif)

SharePoint and CRM Unstructured & Semistructured Data

Social Engagement & Collaboration

Information Evolution & Storage

Informal Rules

Enterprise Search

Across Teams & Domains

Structured Relational Data

Interactions, Activities & Tasks

Information Generation & Analytics

Formalized Processes

Data Query & Filter

Within Teams & Domains

SharePoint

CRM

SharePoint and CRM

• Out-of-the-box (OOB):  SharePoint Document Management in CRM. Two Step Setup:  Install SharePoint WSP  Configure CRM Locations & Entities

SharePoint and CRM

SharePoint and CRM

But as the ”good old Microsoft” we are not very prone to collaborate … until now

SharePoint Online and CRM Online • Match made in heaven  As SharePoint Online can’t upload assemblies we can fallback on MS CRM Online, which does  MS CRM is built-in on top of a relational database and we can expand it’s kernel by hooking into pre-

or post- events. This allows us to perform atomic transactions (either all succeed or we rollback): begin trans begin trans // our pre events commit/rollback trans begin trans // Microsoft events commit/rollback trans begin trans // our post events commit/rollback trans commit/rollback trans  Lightweight communication between the systems is done by using MS CRM new WebAPI and Single Page Applications (SPA) combined with adal.js and Cross-origin Resource Sharing (CORS) support  We would love to show this with TypeScript but … (more on this, later on)

Travel Agency

• •

DDD/TDD approach Demo  SharePoint Online for known UI  CRM Online for backend consistency

Domain represented as an ER diagram

Domain represented as types type Booking = | Basic of Plane | Combo of Combo | FullPack of Plane * Hotel * Car and Plane = { Outbound: DateTime; and Combo = | ``With Hotel`` of Plane * Hotel | ``With Car`` of Plane * Car and Hotel = { Arrival: DateTime; and Car = { From: DateTime; and Country = { Name: String;

Return:

DateTime; Destination: Country }

Departure: DateTime; Location: To: DateTime; Location: ``ISO 3166-1``: char * char }

Country } Country }

SharePoint Online for known UI

CRM Online for backend consistency

Working with JavaScript

Experiencing a lot of pain …

Expectations …

Working with JavaScript

… what is being delivered

And whom to blame

Working with JavaScript



Very funny NDC London 2016 Keynote by Scott Hanselman (go watch, but not now ):  Vimeo: https://vimeo.com/153120762

Working with TypeScript • • •

To the more serious part, Scott Hanselman defines TypeScript as: “How JavaScript should have been done, from a C# perspective” Since most of us work with C# on a daily basis and we love to find our errors at compile time (happy customers) and not runtime (less happy customers) So what is TypeScript? TypeScript is an open-source, typed superset of JavaScript that compiles to plain JavaScript. It provides static typing, classes and interfaces. One of the big benefits is to enable IDEs to provide a richer environment for spotting common errors as you type the code by generating TypeScript declaration files (.d.ts) based on a specific domain. As it will not add any additional JavaScript code, therefore, the new TypeScript code will be just as efficient as your old JavaScript code

Working with TypeScript



We have a tool (OS) to generate declaration files based on MS CRM OData v3 interface:  Delegate.XrmDefinitelyTyped: http://delegateas.github.io/Delegate.XrmDefinitelyTyped/



But the new OData v4 it’s a bit more complex to work with. One of our co-workers have made a tools that is in pre-alpha (use it at your own risk) :  SJKP.ODataToTypeScript: https://github.com/sjkp/SJKP.ODataToTypeScript



We might have to wait until Microsoft provides “something” to get inspired 

Working with TypeScript

Note: TypeScript is designed by Anders Hejlsberg who is a Technical Fellow at Microsoft. Anders, fellow Dane, also designed C#, but most of you probably already know this 

Summary •



We wanted to show that it is possible to develop in the Cloud what you were able to do On-Premise. By following MSDN articles it’s very easy to get a simple Single Page Applications (SPA) up and running in no time  Note: An Azure subscription must be used to bind the SP SPA to CRM



Complexity of the new WebAPI made us not show TypeScript in code, but I hope we have convinced you to begin to use it.  Note: We are working on tools that will auto generate declaration files for OData v4 as we

have done for OData v3



Code available @Github: https://github.com/delegateas

Thanks to our sponsors

Supporting the community

A combination of SharePoint and CRM to ensure atomic transactions ...

structured Data. Social. Engagement & ... Data. Interactions,. Activities &. Tasks. Information. Generation &. Analytics. Formalized ... One of the big benefits is to ...

3MB Sizes 3 Downloads 268 Views

Recommend Documents

Combination of NH2OH·HCl and NaIO4: a new and mild ... - Arkivoc
reactions1 as well as the carbon-metal atom bond formation such as Grignard's reagent,2-5 .... Chalcone containing electron donating –OMe group on the.

a winning combination
The principles of building an effective hybrid monetization strategy . . . . . . . . . . . . .12. A framework for segmenting users . ... Read this paper to learn: B What an effective hybrid monetization model looks like ... earn approximately 117% mo

Ahmed Magdy - SharePoint, MS CRM, BPM & .NET Architect ...
Ahmed Magdy - SharePoint, MS CRM, BPM & .NET Architect, Consultant, Team Lead and Software Engineer.pdf. Ahmed Magdy - SharePoint, MS CRM, BPM & ...

SELECTION AND COMBINATION OF ... - Research at Google
Columbia University, Computer Science Department, New York. † Google Inc., Languages Modeling Group, New York. ABSTRACT. While research has often ...

Activity Recognition Using a Combination of ... - ee.washington.edu
Aug 29, 2008 - work was supported in part by the Army Research Office under PECASE Grant. W911NF-05-1-0491 and MURI Grant W 911 NF 0710287. This paper was ... Z. Zhang is with Microsoft Research, Microsoft Corporation, Redmond, WA. 98052 USA (e-mail:

Combination of Trastuzumab and Radiotherapy ... - OMICS International
Feb 28, 2018 - Overall Survival (OS) [1]. Many clinical trials and meta-analyzes have standardized the use of anthracyclines and Taxanes in the adjuvant.

a winning combination Services
Read this paper to learn: B What an effective hybrid monetization model ... B How AdMob's in-app purchase house ads can help you use hybrid monetization with minimal effort. Key findings: ... model to look at non-game apps, ads revenue could make up

A Simple and Effective Method of Evaluating Atomic Force Microscopy ...
London, Ontario N6A 5B7, Canada. Received July ... the contaminant are observed to dominate the image. ... the sample surface and the tip and result in images.

applying situational prevention principles to ensure child ... - angelhands
The application of situational crime prevention concepts and methods to the ... Cost: $480 per person (incl. GST). Location: City West. 45 Plaistowe Mews.

Comparison and Combination of BPEL and SCA
entry points or binding specific endpoint addresses, while the targets of the wires ... http://zouzhile.googlepages.com/webservices, including source code, as-.

On a Probabilistic Combination of Prediction Sources - Springer Link
method individually. Keywords: Recommender Systems, Collaborative Filtering, Personalization,. Data Mining. 1 Introduction. Nowadays, most of the popular ...

A Demspter-Shafer Theory based combination of ...
Jul 24, 2014 - and the reliability of a HMM based handwriting recognition system, by the use of Dempster-Shafer Theory (DST). ..... (presented in the previous section) to select the best one to use in the final global system. 15 ..... Rejection perfo

A Procedure of Adaptive Kernel Combination with ...
tion problems, it is necessary to combine information from ... example, in object classification, color information is not relevant for the car ..... train tvmonitor. Figure 1: Example images of the VOC 2008 data set. An image can contain multiple ob

Combination of conflicting visual and non-visual ...
non-linearity were detected when the data corresponding to the day on which ..... a big amplitude error (in absolute value) could be ... Individual data analysis.

A Dempster-Shafer Theory based combination of ...
1 Gipsa-Lab, Institut National Polytechnique de Grenoble, 46 av. Felix Viallet, Grenoble,. France. - {firstname}.{lastname}@gipsa-lab.inpg.fr -. 2 Dep. of Comp. ... Fourier descriptors, and Curvature Scale Space (CSS) descriptors. Region descriptors

On a Probabilistic Combination of Prediction Sources - Springer Link
On a Probabilistic Combination of Prediction Sources ... 2 Prediction Techniques ...... Heckerman, D., Kadie, C.: Empirical Analysis of Predictive Algorithms for.

Trial Court Has A Duty To Ensure Availability Of Diligent Defence ...
brother Omveer was injured in consequence of the assault, and, while .... Has A Duty To Ensure Availability Of Diligent Defence Counsel For The Accused.pdf.

SITE MEASUREMENT WITH COMBINATION OF POCKET PC AND ...
paper we propose low cost devices that give information precise enough to use in ... preliminary design, create concept, layout and master plan, but the accuracy.

Ensure Free and Fair Election; Towards Abolishing ... -
governments. However, on the other hand, we strongly believe that this presidential election offers a window of opportunity to re-establish democracy, the rule of ...

SITE MEASUREMENT WITH COMBINATION OF POCKET PC AND ...
In present day, GPS technology presents various tools to use in survey. However, a high ... results of site information for many purposes, such as on-site meeting,.