Adxstudio Portals Training Project Managment
Deployment Options CRM Deployment Portal Deployment Security Infrastructure Project Management On-Premise Online Solutions (Schema) Data (CMS records) IIS or Web Server Azure Master Portal Web Project (Code) Forms (Local) Windows ACS OpenAuth Methodology Environment Management Source Control ALM
What’s included with Adxstudio Portals CRM Customizations (schema) .NET Assemblies and Web Project (code) Starter Portal Data (data)
Adxstudio CRM solutions AdxstudioPortalsDependencies AdxstudioPortalsBase Al la carte solution packages (based on features) Installed via Installer Additionally, custom project-specific schema will often be used
Adxstudio Feature Solutions Adxstudio311PermitBase AdxstudioHelpDesk Adxstudio311PermitEntities AdxstudioHelpDeskWorkflows Adxstudio311PermitProcesses AdxstudioIdeas Adxstudio311ServiceBase AdxstudioIdentifierRequest Adxstudio311ServiceEntities AdxstudioIssues Adxstudio311ServiceProcesses AdxstudioIssuesWorkflows AdxstudioBlogs AdxstudioPartnerPipeline AdxstudioCareers AdxstudioPartnerPipelineWorkflows AdxstudioCareersWorkflows AdxstudioRetail AdxstudioCommerce AdxstudioRetailCharityRequest AdxstudioEventManagment AdxstudioRetailCustomerProfile AdxstudioForums AdxstudioRetailProductRequests AdxstudioForumsWorkflows AdxstudioWebForms
Forms Solution Entities Attributes Views Charts Site Map Dashboards Resources Web Resources Plugins Processes
Using Layers for Isolation Isolate Features w/o interdependency into separate solutions Unidirectional dependencies should be further isolated into layers Isolate plugins, workflows, resources, site map
Underlying Dependencies Application High-Level Feature Underlying Dependencies
Portal Data CMS Data (Website, Web Pages, Page Templates) Web Forms, Entity Lists, Entity Forms CRM Configuration Data (Settings) – Also Web Roles & Permissions Product Catalog, Service Request Definitions, Events Other/Custom?
Non-Portal Data Other Data usually represents active CRM records, such as contacts and accounts This data does not affect Functionality of the Portal, but the data is vital to an organization Often you want separate Dev, Test, Prod Data Need Data Transfer, Backup, Disaster Recovery Stories
Deploying Web Project Install Adxstudio Portals Set Connection String Host Portal
Source Control & Project Management CRM Solution Management CRM Data Management Code Management Environment Management Provisioning Disaster Recovery Rapid Devploment Agile Development Many Orgs vs. Isolation ZIP Files Using solution packager Many Orgs vs. Source Control Manual copy vs. CrmDataCopy Database Backups Source Control Unified with Schema and Data or not?
Environment Management Multiple Environments must be managed Separate isolated environments for each developer User Acceptance Test (UAT) environment Production Environment Staging Environment Performance Test Environment Training Environment Key to a healthy ALM environment is scripting all aspects of environment management. Most of your CRM ALM automation will be focused on environment management – packaging up CRM solutions, synching each development environment with what is current in source control, and deploying builds to test, training, or staging environments. The ideal goal is that no human should be in the build process. Script everything. This ensures quality, and provides a great framework to build your project upon. Remember that the team makeup will change over time and if you promote changes manually, you will be at risk of special knowledge being required to invoke change, instead of a tested and repeatable build and deployment process.
Apply agile methodologies, manage change, achieve developer isolation and deploy CRM solutions to multiple environments
Adxstudio ALM Toolkit CRM Solution Management CRM Data Management Deployment Management PowerShell Scripting Automates the management of solution files Allows manipulation of solutions installed and uninstalled, managed or unmanaged Collects required configuration and test data Data Copy Utility allows for easy data migration Automates application changes Manage development, test and production environments Easily configured to unique development environments Framework and examples to develop new scripts
Adxstudio ALM Cmdlets For Use with PowerShell Utility Provisioning Solution Management Data Copy CRM SDK Covers most key areas of environment managment
Source Control Can source control ZIP solution files, or the unpacked XML files Change management easier to perform against unpacked files Use various XML editing tools to manually merge when change conflicts occur Best practice would be to check out and lock files when performing a vital update
Solution Management Utilize scripting to integrate solution management into source control SolutionPackager tool CRM solutions can be broken down into XML files making change management/merging easier
CRM Solution Cmdlets Export-CrmSolution Get-CrmImportJobError Exports unmanaged solutions in an organization Retrieves the error messages from an import job entity Import-CrmSolution Publish-CrmCustomization Imports one or more solution customization files into a CRM organization Publishes customizations for an organization Get-CrmSolution Remove-CrmSolution Retrieves the currently imported solutions for a CRM organization Removes an existing CRM solution package Get-CrmSolutionVersion Retrieves the version for imported solutions or customization files
Data Export/Import ALM Toolkit provides ability to export data from CRM into JSON format Can filter by/out specific entities Data should be considered integral to a web UI deployment (i.e. Adxstudio Portals)
JSON Data format JSON is an easy-to-use data format Easily read and edited Works with Jquery OOB Change Management and Source Control kept easy
Data Format
Data Copy Cmdlets Equivalent of the CrmDataCopy tool Use the same underlying framework code Export-CrmContent Parameters: OutputPath, Uncompressed, ExcludeMetadata, Generalized, Exclude, Include Import-CrmContent Parameters: InputPath, UpdatesEnabled, Force, IgnorePlugins, SimpleUserRemap