As part of our Mobile Task Force initiative at Cobalt for 2014 I’ve been working with the Xamarin Development Environment to connect Cobalt’s products to CRM from Android and IOS devices. The Xamarin platform allows for .NET assemblies to be developed to run on mobile devices. Cobalt’s products make use of CRM’s WCF enpoints primarily for CRUD operations and although connecting to these endpoints in Xamarin is possible, authentication isn’t possible based on my testing, due to the fact that Xamarin currently supports .NET 2.0 programming interfaces.
It would be possible to use the OData endpoints from Xamarin, however, that endpoint is limited to CRUD operations and doesn’t provide the Execute methods that Cobalt’s products require for certain operations.
In order to get Cobalt’s products to connect to CRM from my Samsung S4 it was necessary to create a new Platform Adapter which makes use of classic Web Services for performing the CRUD and Execute operations in CRM. With the introduction of CRM 2013 the CRM 4 Web Service endpoint is no longer supported and so I had to create a web service of our own that runs in our ISV application and makes the calls to WCF endpoints as a proxy. The new Platform Adapter uses this proprietary endpoint to make the calls to CRM.
There is still some work required to secure the new Adapter and verify it’s performance since we’re now dealing with an extra layer between our connection to CRM. However, based on initial tests it appears to perform well enough to be useful in Cobalt’s lighter weight mobile apps and services.
On a personal note. I got a pretty sweet free C# T-Shirt from Xamarin by downloading their Store app and making a simple modification to the code per their instructions and running the app on my device. Win, Win!