Software architecture & design patterns for MS CRM  Developers
Upcoming SlideShare
Loading in...5

Software architecture & design patterns for MS CRM Developers



Presentation from my session at extreme CRM 2013 .

Presentation from my session at extreme CRM 2013 .



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • An architectural pattern is a concept that solves and cohesive elements of a software architecture. Countless different architectures may implement the same pattern and share the related characteristics ie. Etl we know when we have bunch of data we should extract transform and load Design pattern design pattern is a general reusable solution to a commonly occurring problem within a given context i.E Batch ETL
  • They don’t have corporate WAN, Differences in regional, for example European Union (EU), or national legislation can result in variations in requirements for securing data or maintaining data privacy across the different regions or countries
  • In the published/sub model, subscribers typically receive only a subset of the total messages published. The process of selecting messages for reception and processing is called filtering. There are two common forms of filtering: topic-based and content-based.In a topic-based system, messages are published to "topics" or named logical channels. Subscribers in a topic-based system will receive all messages published to the topics to which they subscribe, and all subscribers to a topic will receive the same messages. The publisher is responsible for defining the classes of messages to which subscribers can subscribe.In a content-based system, messages are only delivered to a subscriber if the attributes or content of those messages match constraints defined by the subscriber. The subscriber is responsible for classifying the messages.
  • Show data quality and BDD
  • You can think of a Workflow Service as a WCF SOAP Service that implements its service operations using workflow activities instead of code. Like WCF SOAP Services, Workflow Services can also compose calls to other external services as a part of their operation implementation.Workflow Services are defined in XAML files with the XAMLX extension and are hosted by a Workflow Service Host within IIS and AppFabric, in a way that is similar to the ServiceHost that runs SVC files for WCF SOAP Services in IIS/AppFabric.The XAMLX files are fully declarative XAML- they have no inline code and depend on types present in the bin directory of the application or the GAC for their operation. They are configured via a web.config in the same way that WCF SOAP Services are.
  • Huge scaleDynamic programDomain SpecificIntegrated MessagingPub/Sub EventingMulti-tenant
  • One sourceNorriq

Software architecture & design patterns for MS CRM  Developers Software architecture & design patterns for MS CRM Developers Presentation Transcript

  • Software Architecture & Design Patterns for Developers Sebastian Waksmundzki eDataLabs Ltd. www.edatalabs.netConnect + Learn = Grow
  • Hello World• Senior Dynamics Architect • Over 12 years experience • I still love technology and code • MS CRM (since 1.2 ), SharePoint, ERP(s)• Social • Blog • Twitter @qmiswaxConnect + Learn = Grow
  • Agenda• Architecture – Architectural patterns and styles• Design patterns – Master Data Management – Data Quality – Connected systems – Complex Event Processing – Long running processes – MashupsConnect + Learn = Grow View slide
  • PatternsFrom the Yahoo Design Pattern Library:• Patterns are optimal solutions to common problems. As common problems are tossed around a community and are resolved, common solutions often spontaneously emerge. Eventually, the best of these rise above the din and self-identify and become refined until they reach the status of a Design PatternConnect + Learn = Grow View slide
  • Patterns• Architectural pattern is a concept i.e. ETL• Design Patterns is a reusable solution i.e. Batch ETLConnect + Learn = Grow
  • Domain Area Architecture Pattern Name Design Patterns Solution PatternsData Integration • ETL • Change Data Capture • Error handling • Near Real-Time ETL • Job scheduling • Batch ETL • Data validation • Data Discovery • Slowly Changing Dimensions Load • MFT • Publish/subscribe • One-Way • EAI/ESB • Request/reply • Synchronous • Message Exchange Patterns Request/Response • Basic Call-back • Claim CheckData Architecture • Transaction Data Stores (TDS/OLTP) • Custom Applications • Master Data Store Databases • Operational Data Store • Packaged Application • Data Mart Databases • Data WarehouseBusiness Intelligence • Transactional Reporting • Transactional Reporting • Real-Time Dashboards • Operational Reporting Data Access • In-Memory Analytics • Analytical Reporting • Operational Reporting Data • Statistical Analysis Access • Predictive analytics • Analytical Reporting Data Access • Analytical Dashboard Data Access • Operational Dashboard Data Access • Data MiningMaster data management • Master Data Hub • Master Data Replication • Master Data Services • Master Data SynchronizationData Modelling • Dimensional Data Modelling • Modelling Standards • E-R Data Modelling • Naming ConventionsConnect + Learn = Grow
  • Let’s move onConnect + Learn = Grow
  • Master data management - domain (Master Data Replication) – design pattern• Business Problem Company XYZ Corp: Headquarter + 2 remote locations , all have separate MS CRM instances (one online)• Key requirements• The central master data be synchronized to all instances so that each instance has access to the latest version of the core information.• Solution has to allow : – Secure and reliable cross-boundary communication – Scalability• We need to synchronise: – Reference data, countries, currency codes, products –phase 1 – Transactional data, which describes or results from an action by or with the business.• Only Relevant data should be synchronised• Some data should be published on a portal for customersConnect + Learn = Grow
  • Master data management (Master Data Replication)Connect + Learn = Grow
  • Master data management (Master Data Replication)• Candidate architectures – Database synchronization – SSIS – GEO cluster – File Exchange – Send Email (Pigeons) – Azure Service BusConnect + Learn = Grow
  • Master data management (Master Data Replication)• Proposed solution – Azure Service Bus with Pub SubConnect + Learn = Grow
  • Master data management (Master Data Replication) pub /sub FilteringConnect + Learn = Grow
  • Master data management (Master Data Replication) DEMOConnect + Learn = Grow
  • Master data management (Master Data Replication)• Proposed solution benefits – Scalability – (One)(Many)-to-many communication. – Secure and reliable cross-boundary communication. – Improved security.Connect + Learn = Grow
  • Master data management (Master Data Replication)• RU 12 Updates New in Microsoft Dynamics CRM 2011 Update Rollup 12 is a property bag of extra information added to each brokered message Properties. The property bag, available with persistent queue and topic contract endpoints, contains the following information. – Organization Url – Calling user ID – Initiating user ID – Entity logical name – Request nameConnect + Learn = Grow
  • Data Integration (ETL Data Quality)• Candidate architectures – 3rd party tools (they are generic) – Manual cleansing process – Build custom .net program – SQL 2012 DQS with SSISConnect + Learn = Grow
  • Data DQSAccount Home Team Revenue Home Address ID Team Type Type Sales Arena Line City State Zip Boston Food &A124324 Celtics Basketball Beverages 655 TD Garden 100 Legends Way Boston MA 2114 2114 New York East 161st Street &7676862 Yankees Baseball Music 389 Yankee Stadium River Avenue NY NY Seattle4934235 Mariners Baseball MLB Music 443 Safeco Field 1516 First Avenue S Seattle WA 98134 98134 Data Quality Knowledge Base Account ID Team Type Address Line City State Zip Structure ValuesType Team External address validation provider Rule Synonyms Reference Validation Detection Data Full Address - Composite Domain Connect + Learn = Grow 17
  • Data Integration (ETL Data Quality)• Proposed solution benefits – Toolset already with SQL 2012 – Corporate Knowledge Base – Fast, reliable – Improves DQ on different dimensions • Completeness • Accuracy • Consistency • UniquenessConnect + Learn = Grow
  • Data Integration (ETL Data Quality)• Proposed solution SQL 2012 DQS together with SSISConnect + Learn = Grow
  • Data Integration (ETL Data Quality) DEMOConnect + Learn = Grow
  • Data Integration (Connected systems ESB )• Business Problem XYZ Enterprise has CRM online used by sales team. Invoices generated should promptly appear in ERP system as well as on SharePoint site.• Key requirements – Scalable secure communication – Multiple systemsConnect + Learn = Grow
  • Data Integration (Connected systems ESB )• Candidate architectures – BizTalk – Export Import File – Extended Service BusConnect + Learn = Grow
  • Data Integration (Connected systems ESB )• Proposed solution Extended Service BusConnect + Learn = Grow
  • Data Integration (Connected systems ESB ) Azure AppFabric vs. Server AppFabricWindows Azure AppFabric as a brand namedoesnt exist anymore. It is now calledWindows Azure "Client Libraries for .NET"Connect + Learn = Grow
  • Data Integration (Connected systems ESB) DEMOConnect + Learn = Grow
  • Complex Event Processing• Business Problem XYZ has network of websites, which sell goods, they want identify the best customers in near real time• Key requirements – Identify best customers in near real time – Information about customers should be in MS CRMConnect + Learn = Grow
  • Complex Event Processing• Candidate architectures – BizTalk – StreamInsight – Message based Event ProcessingConnect + Learn = Grow
  • Long running processes• Business Problem – XYZ has MS CRM which stores Golden Copy records for financial instruments, GC record is “combined” from at least 3 sources• Key requirements – Multiple different sources – Processing and GC generation takes timeConnect + Learn = Grow
  • Long running processes• Proposed solution Windows Server AppFabric WorkflowsConnect + Learn = Grow
  • Long running processes• Candidate architectures – Workflow inside CRM – BizTalk Orchestration – Windows Appfabric WorkflowConnect + Learn = Grow
  • Long running processes What are Workflow Services? WCF Service WF Workflow WCF endpoint Operation External Service WCF endpoint Operation External ServiceConnect + Learn = Grow
  • Long running processes• Proposed solution benefits – Fully declarative XAML modelling in WF 4 (workflows & activities) – Testable solution – Elastic scale – Improved performance, availability and reliability – A complete hosting environment for long running workflows, including persistence.Connect + Learn = Grow
  • Long running processes (workflows) DEMOConnect + Learn = Grow
  • Long running processes Workflow ManagerWorkflow Manager 1.0 is a new server which introducesnew capabilities for authoring, hosting and managingworkflows. These workflows will run at high scale anddensity, and will support execution in a multi-tenantenvironment. In addition, Workflow Manager 1.0 is used by SharePoint 2013Connect + Learn = Grow
  • UI Mashups• Business Problem – Transactional data not visible in MS CRM• Key requirements – 10 million historical transactions visible in MS CRM – Transactional system produces up to 100,000 transactions per dayConnect + Learn = Grow
  • Mashups• Candidate architectures – Load all transactions to MS CRM Custom entity – More Licenses for transactional system – UI MashupConnect + Learn = Grow
  • Mashups• Proposed solution UI MashupConnect + Learn = Grow
  • Thank youConnect + Learn = Grow
  • Sebastian Waksmundzki EDataLabs Ltd seb@edatalabs.netThank You to all of our Sponsors and thank YOU for attending eXtremeCRM 2013 Rome! Please remember to fill out your session evaluation survey online! The link to the survey was emailed to you, or go to: Complete prior to the closing session to be included in today’s drawing! Connect + Learn = Grow
  • Session Evaluation Survey online: + Learn = Grow