Resco MobileCRM Technological overview Juraj Mojik Agenda o Overview of Studio o Woodford o MobileERP introduction Resco MobileCRM o 3 parts : o Application o Woodford o Studio o Source code + compilation = application o Integrated tools o Woodford Application o iOS, Android, WM, W7, WP7 o Different projects, but all in C# .NET o Offline -> local database Platform .NET Runtime Database Apple iOS Xamarin MonoTouch Framework SQLite Android Xamarin Mono for Android SQLite Windows Mobile MS .NET Compact Framework 3.5 SQLCE Windows Phone Silverlight for Windows Phone SQLite Windows Slate MS .NET 3.5 SQLCE/SQLite Solution structure o Layer architecture o Top layer - platform independent o Bottom layers - platform specific o Interfaces for comunication between PI and PS code o Top layer is common for all platforms o Layers = Visual Studio projects Projects o MobileCRM: top level project (your custom application) o Resco.UI, Resco.Data: set of UI and Data interfaces (CRM independent) o Resco.UI.Platform, Resco.Data.Platform: implementation of those interfaces o MobileCRM.UI, MobileCRM.Data: common CRM UI and Data logic and classes Architecture overview PI MobileCRM your customized application MobileCRM.Data (Common CRM logic, synchronization) MobileCRM.UI (Common CRM user interface, base classes) Platform Abstraction Layer (Resco.Data, Resco.UI Interfaces) Architecture overview PS Platform Abstraction Layer (Resco.Data, Resco.UI Interfaces) Resco.Data.SQLite (Database Access) Resco.UI.<Platform> (Basic UI Components) SQLite DB Resco MobileForms Toolkit .NET Runtime / Operating System Top layer structure o Controllers – all lists (views) and forms o Model – entity classes (custom) o Model.meta – meta entity information (enums and schema names) o Configuration – database definition files, language files, sync filter ... o Images.Platform folder o Files : Program.cs (main entry point), Resco.xcrm, ControllerRegister ... Integrated Tools o Tools integrated into VS help you with the most common customization tasks (adding entities and properties, designing) o Resco.xcrm – select entities and properties o List and form designers (rlist, rform) o The application will automatically use the correct list and form, you only have to create and design them resco.xcrm List designer Form designer Working with entities o Dynamic entities (class DynamicEntity) o Dynamic entity = dictionary property name + value o Strongly typed classes for convenience and for certain situations (bussines logic code) o Strongly typed classes are auto-generated from metadata Compilation & deployment o Version for each platform has to be compiled before deployment o Conversion tool for getting different platform version (project files) from WM version o Deployment is very platform specific o WM, W7, Android – automatic deployment and updates can be made o iOS, WP7 – first deployment manually, update using notification (appstore or enterprise program) Woodford o Woodford is a customization tool, that does not require compilation for changes to take effect o The customizations are applied after successful synchronization o Customizations are platform independent o Integrated / Stand-alone version (identical) o Administration functionality Customizations o Woodford customizations are stored on the CRM server in custom entities o Mobile Projects for different User Roles within the organization o Common customization tasks – add, remove entities & their properties, design lists and forms o No code Mobile Projects Advanced functions o Besides basic functions Woodford offers : o Sync filters o Dashboards o Charts o Multiple views o Forms: Maps, IFrames o Images Dashboard Chart definition Administrative functions o Mobile Devices o Remote wipe o Manage licenses Mobile Devices Administration Woodford and Studio o It is possible to use Woodford and Studio simultaneously o Small changes made with Woodford don‘t require compilation and can be applied instantly o Advanced customizations will be made with Studio and new version of app will be re-deployed o When used simultaneously – Configuration folder, mobile entites and properties and lists & forms (but not code files) from Studio are overwritten by customizations from Woodford MobileERP o Different product, but similar to MobileCRM o Developer solution for creating mobile applications for Microsoft Dynamics ERP products (NAV, AX, GP …) o Full source code o Integrated tools (designers) o No Woodford yet (or similar tool) o Very first version MobileERP Application o Platforms: iOS, Android, WM, W7 (Tablet), WP7 o Look and feel – like a CRM application o Lists, forms ... o Offline client (Local db) o Currently, no direct integration with ERP ! Current Architecture Your ERP server (NAV, AX...) MobileERP Application MobileERP Server Provided by you Synchronization o Application synchronizes with a „simple server“ provided by Resco o Simple server = sql db + web services o Sync (or mirroring) between Resco server and your ERP server needs to be implemented by you o Resco server uses MS SQL db so the sync with ERP db can be done on database level o Resco server can be left out, if you implement the web-services on your ERP server Synchronization details o Our synchronization mechanism is based on GUIDs and modification timestamps o Timestamps – incremental syncing o These two are integral for our solution o If you are considering leaving out the Resco server, it might be a better idea to add those to your server, then trying to remove from ERP application Working with MobileERP o File erpschema.xerp (XML file) defines database schema and „metadata“ for the mobile application o Classes are created for database entities o Information from this file is used by Resco designers o Also, local db and Resco server db schema is built from this file Development o DALConfig.xdog for generating classes o List & form designers for convenient UI design o Resco server sources (web services code) o o o o Similarly to CRM : Layer architecture Project for each platform Conversion tool & templates MobileERP Future o Collecting feedback from YOU o Heavy development o Tool (like Woodford) o Integration & Synchronization o Sample application Q&A