cub-e.net

just coding...

Improve Microsoft Dynamics 365/CRM service channel allocation performance

The OrganizationServiceProxy and DiscoveryServiceProxy service proxy classes provide the ability to establish a connection to and communicate with the available Microsoft Dynamics 365/CRM services. However, improper use of these API's can potentially reduce application performance. Therefore, if you understand when and how to effectively leverage these service client API's, available in the SDK, you can optimize communication traffic between your application the Dynamics 365/CRM server.

 

When you establish a Windows Communication Foundation (WCF) service channel by using one of the service endpoints, for example, the Organization.svc, your application must perform two additional, time-consuming operations: 1) metadata download from the endpoint and 2) user authentication. You can improve performance if your application performs these operations a minimum number of times for each application session. The OrganizationServiceProxy constructor shown below performs both of these operations, in addition to allocating a new service channel, every time a service proxy object is created.

 

Violation Example

new OrganizationServiceProxy(new Uri(this.orgServiceUrl), nullthis.Credentials, null)

A first step towards improving performance is to minimize the number of times your application uses this constructor to create an instance of the service proxy.  If possible, use this constructor only one time during the application session and cache the returned reference for use in different code paths within your application. Notice that the returned service reference is not thread safe so multi-threaded applications will need to allocate one instance per thread. Applications must also call Dispose on the service proxy object before they terminate in order to free service channel allocated resources.

 

The service proxy class performs the two previously mentioned operations, metadata download and user authentication, by using the following public methods available as client API's.

 

Guideline Example

IServiceManagement<IOrganizationService> sm = ServiceConfigurationFactory

        .CreateManagement<IOrganizationService>(new Uri(orgServiceUrl));

 

this.Credentials = sm.Authenticate(this.Credentials);

 

The CreateManagement method performs the metadata download while the Authenticate method authenticates the user. The returned objects from these methods are thread safe and can be statically cached by your application. 

 

As a more efficient alterntive, you can then use these objects to construct a service proxy object via one of the other constructor overloads (depending on the authentication scenario):

 

newOrganizationServiceProxy(sm, this.Credentials.ClientCredentials)

 

newOrganizationServiceProxy(sm, this.Credentials.SecurityTokenResponse)

These constructor overloads bypass the two aforementioned operations and use the referenced service management and authentication credentials passed as method arguments.  By caching the service management and authenticated credential objects, your application can more efficiently construct the service proxy objects and allocate multiple service channels as necessary over the lifetime of an application session without repeating the costly (and redundant) operations. 

 

If you enable early-bound types on OrganizationServiceProxy through one of the EnableProxyTypes methods, you must do the same on all service proxies that are created from the cached IServiceManagement object. If your application uses the metadata, we recommend that it caches the metadata that it retrieves and periodically calls the RetrieveTimestampRequest message to determine whether it must refresh the cache.

 

In addition, monitor your WCF security token (Token) and refresh it before it expires so that you do not lose the token and have to start over with authentication. To check the token, create a custom class that inherits from the OrganizationServiceProxy or DiscoveryServiceProxy class and that implements the business logic to check the token. Or wrap the proxy classes in a new class. Another technique is to explicitly check the token before each call to the web service. Example code that demonstrates these techniques can be found in the ManagedTokenDiscoveryServiceProxy, ManagedTokenOrganizationServiceProxy, and AutoRefreshSecurityToken classes in the Helper Code: ServerConnection Class topic.

 


Performance Best-Practices: 

http://msdn.microsoft.com/en-us/library/gg509027.aspx#Performance

ServiceConfigurationFactory.CreateManagement<TService>(Uri serviceUri)

http://msdn.microsoft.com/en-us/library/hh560440.aspx

IServiceManagement.Authenticate(AuthenticationCredentials authenticationCredentials)

http://msdn.microsoft.com/en-us/library/hh560432.aspx

Use Try and Finally on Disposable Resources

Why

Using a try/finally block ensures that resources are disposed even if an exception occurs. Not disposing resources properly leads to performance degradation over time. 

When

This is important guideline when working with disposable resources such as 

  • Database connections 
  • File handles 
  • Message queue handles 
  • Text reader, writer 
  • Binary reader, writer 
  • Crypto stream 
  • Symmetric, Asymmetric and Hash algorithms. 
  • Windows Identity, Windows Impersonation Context  
  • Timer, Wait Handle in case of threading 
  • Impersonation Context 
  • XML Reader 
  • XML Writer

How

The following code fragment demonstrates disposing resources in a finally block..

SqlConnection conn = new SqlConnection(...)

try

{

   conn.Open();

   ...

}

finally

{

   if(null != conn)

     conn.close();

}

If developing in C# you can use the 'using' keyword which will automatically dispose resources after their usage.

using(SqlConnection conn = new SqlConnection(...))

{

   conn.Open();   

   ....

}


Problem Example

A database connection is opened and used to access data. 

Unfortunately, if there is an exception other than SqlException or if the exception handling code itself throws an exception the database connection won't be closed. This failure to close database connections could cause the application to run out of database connection impacting application performance.

try

{

   conn.Open();

   // do something with the connection

   // some more processing

   // close the connection

   if(conn != null)

     conn.Close();

}

catch(SqlException ex)

{

   // do exception handling

   // close the connection

   if(conn != null)

     conn.Close();

}

Solution Example

A database connection is opened and used to access data. The finally block will be executed whether there is exception or not, ensuring that the database connection is closed. 

SqlConnection conn = new SqlConnection(...)

try

{

   conn.Open();

   // do something with the connection

   // some more processing

}

catch(SqlException ex)

{

   // do exception handling 

  

}

finally

{

   // close the connection

   if(conn != null)

     conn.Close();

}

 

 

Additional Resources

Related Items

Explicitly Call Dispose or Close on Resources You Open

If you use objects that implement the IDisposable interface, make sure you call the Dispose method of the object or the Close method if one is provided. Database connection and files are examples of shared resources that should be explicitly closed. 


Why

Failing to call Close or Dispose prolongs the life of the object in memory long after the client stops using it. This defers the cleanup and will result in inefficient memory usage. 

When

This guideline should be used when working with disposable resources such as:

  • Database connections 
  • File handles 
  • Message queue handles 
  • Text reader, writer 
  • Binary reader, writer 
  • Crypto stream 
  • Symmetric, Asymmetric and Hash algorithms. 
  • Windows Identity, Windows Impersonation Context  
  • Timer, Wait Handle in case of threading 
  • Impersonation Context 
  • XML Reader 
  • XML Writer 

How

When working with disposable resources call Dispose method of the object or Close method, if provided. The Close method internally calls the dispose method. The finally clause of the try/finally block is a good place to ensure that the Close or Dispose method of the object is called.

The following Visual Basic® .NET code fragment demonstrates disposing resources in finally block.

Try

  conn.Open()

…Finally

  If Not(conn Is Nothing) Then

    conn.Close()

  End If

End Try

In Visual C#®, you can wrap resources that should be disposed, by using a using block. When the using block completes, Dispose is called on the object listed in the brackets on the using statement. The following code fragment shows how you can wrap resources that should be disposed by using a using block.

using (SqlConnection conn = new SqlConnection(connString))

{

  conn.Open();

  . . .

} // Dispose is automatically called on the connection object conn here.


Problem Example

A .NET application opens a database connection. Unfortunately, the database connection is never disposed. Since it is not explicitly disposed the connection will stay active until the application terminates.  This unnecessarily increases the application's memory usage. Database connections are a limited resource, failure to dispose could result in the usage of all available database connections.

SqlConnection conn = new SqlConnection(...)

try

{

   conn.Open();

   // do some processing with the connection

}

catch(SqlException ex)

{

   // do exception handling

}


Solution Example

A .NET application opens a database connection. Calling Close method on the connection object in the finally clause ensures that the database connection is disposed after it has been used.  

SqlConnection conn = new SqlConnection(...)

try

{

   conn.Open();

   // do some processing with the connection   

}

catch(SqlException ex)\

{

   // do exception handling    

}

finally

{

   // close the connection

   if(conn!=null)

     conn.Close();

}

 


Additional Resources

Related Items

Use Try and Finally on Disposable Resources

Do not use specialized update operation requests in Microsoft Dynamics CRM

In releases prior to Microsoft Dynamics CRM 2015 Update 1, the use specialized messages were required in order to update certain entity attributes. However, with the modern release of CRM, the SDK has been simplified and now supports updating specialized fields using the Update operation. CRM Web API does not support the specialized messages. Once the CRM 2011 services are removed, currently labeled as deprecated, there will be no support for performing these operations.


The following message requests are deprecated as of Microsoft Dynamics CRM 2015 Update 1:

  • AssignRequest 
  • SetStateRequest 
  • SetParentSystemUserRequest 
  • SetParentTeamRequest 
  • SetParentBusinessUnitRequest 
  • SetBusinessEquipmentRequest 
  • SetBusinessSystemUserRequest

In order to update the corresponding specialized attributes, use the UpdateRequest message. Messages can be published from a plug-in, a workflow activity, JavaScript through the services or from an integrating application.

These specialized messages will continue to work with the 2011 endpoint. However, the recommendation is to use the UpdateRequest or Update method when possible to set these attributes. The Update message simplifies the SDK API and makes it easier to code standard data integration tools used with Dynamics CRM. In addition, it is easier to code and register a plug-in to execute for a single Update message instead of multiple specialized messages. The AttributeMetadata.IsValidForUpdate property for the above listed attributes has been changed to true in this release to enable this capability.

You can continue to use these specialized messages of the 2011 endpoint in your code. However, the Web API that eventually replaces the 2011 endpoint supports only the Update message for these types of operations. If you want to get a head start on changing your code to align with the Web API, you can now do so. See Web API Preview for more information.


Impact of this change on plug-ins


When update requests are processed that include both owner fields plus other standard fields for business owned entities, plug-ins registered for the Update message in pipeline stage 20 and/or stage 40 execute once for all non-owner fields, and then once for the owner fields. Examples of owner fields would be businessunit and manager (for a SystemUser entity). Examples of business owned entities include SystemUserBusinessUnitEquipment, and Team.

When update requests are processed that include both state/status fields plus other standard fields, plug-ins registered for the Update message in pipeline stage 20 and/or stage 40 execute once for all non-state/status fields, and then once for the state/status fields.

In order for plug-in code to receive the full data changes of the update, you must register the plug-in in stage 10 and then store relevant information in SharedVariables in the plug-in context for later plug-ins (in the pipeline) to consume.


Impact of this change on workflows

When update requests are processed that include both owner fields plus other standard fields, workflows registered for the Update message execute once for all non-owner fields, and then once for the owner fields. Workflows registered for the Assign message by users continue to be triggered by updates to owner fields.

When update requests are processed that include both state/status fields plus other standard fields, workflows registered for the Update message execute once for all non-state/status fields, and then once for the state/status fields. Workflows registered for the Change Status step continue to be triggered by updates to state/status fields.

Free Dynamics 365 Training at Microsoft London

CRM Saturday and CRM Boutique Mentoring Programme are running a free Dynamics 365 training day on Saturday 22nd July at Microsoft London Paddington. I am one of trainers of Track B.

CRM Saturday and CRM Boutique Mentoring programme are arranging a free Dynamics 365 CRM classroom training delivered by a number of Microsoft MVPs and Dynamics Experts.

The event will also be used to raise funds to the London Fire Relief, British Red Cross. 100% donations go directly to the charity.

Trainers are volunteering and dedicating their Saturday to give back to the Dynamics community and to raise money to a good cause.

This hands-on training has 3 tracks:

Track A: Application Core for those looking to learn the basics of Dynamics 365 functional capabilities.

Track B: Configuration and Customisation: for those who know Dynamics capabilities but want to learn how to configure the platform without code or development.

Track C: Unified Service Desk Specialist training

Please make sure you explain in your registration how you see this training can help your career as places are allocated by application – NOT on first come first serve basis.

Featuring these exceptional experts and MVPs: Raz Dynamics , Neil Parkhurst , Baris KANLICA , Janet Robb and more!

Please make sure you explain in your registration how you see this training can help your career as places are allocated by application – NOT on first come first serve basis

Places are limited so please register your interest here: http://mwns.co/fdt 

CRM Saturday Zurich

I'm pleased to announce that I'm one of the presenters in CRM Saturday Zurich which will be held 13th April at the Microsoft Switzerland.

About my session:

Dynamics 365 new development features and deprecations
Saturday, May 13
 | 10:15 PM - 11:00 PM
 | Room 3

Format: Presentation
Level: Intermediate

Looking to extend or write your first code to your Dynamics CRM environment? This session is focused on those new to CRM development or CRM administrators interested in taking the plunge to "code" customization. Covering all development structure of the Dynamics platform since version 2011. Attendees can easily see the difference between versions from a development perspective and particularly helpful for those who work on upgrade projects.

About CRM Saturday:

CRM Saturday is a Non Profit Technology Event Sponsored by Microsoft and Organised by the Microsoft Dynamics and CRM Community. It provides Organisations and Microsoft professionals a unique opportunity to keep up to date with the many platform changes and come together to discuss the challenges often faced during CRM implementation and digital transformation with fellow Industry experts. Get ready for an action packed day with over 15 sessions by speakers from around the world including many Microsoft MVP's and industry experts.

You can find more detail in here : http://www.spsevents.org/city/Zurich/Zurich2017/home

Dynamics Sure Step Methodology


Microsoft Dynamics Sure Step is a full customer lifecycle methodology for all Microsoft Dynamics® solutions, providing the Microsoft ecosystem with comprehensive implementations through delivery guidance, project management discipline alignment, and field-driven best practices. Sure Step is designed to enable the solution provider to better serve their customers by helping reduce their Microsoft Dynamics total cost of ownership. Sure Step content covers the Microsoft Dynamics ERP and CRM suite of solutions, including Microsoft Dynamics AX, Dynamics CRM, Microsoft Dynamics GP, Microsoft Dynamics NAV, and Microsoft Dynamics SL. The guidance, tools, templates, and best practices provided in the methodology can help increase the consistency, timeframes, quality, and success of Microsoft Dynamics engagements.

Sure Step is considered a full lifecycle methodology because it encompasses all phases of a customer engagement. Sure Step begins with a Solution Envisioning phase to help customers determine the right solution for their needs.  The Solution Envisioning phase is followed by Solution Delivery phases to implement their solution and to provide guidance for the operation and maintenance of the solution in production. For existing Microsoft Dynamics customers seeking to progress their solutions to the latest product releases, Sure Step also provides Upgrade Assessments in the Solution Envisioning phase, followed by Solution Delivery phases to upgrade their solution and then to maintain the production solution in operation.

Sure Step has six phases: Diagnostic, Analysis, Design, Development, Deployment, and Operation. The Diagnostic phase encompasses Solution Envisioning and provides guidance on product capabilities, including content on focus industries for a corresponding product. The Decision Accelerator Offering is an important part of the Diagnostic phase, designed to reduce the risks and concerns for the customers in their decision-making process for new/upgrade ERP/CRM solutions.


The Sure Step Methodology offers the project types described in the following table:

 

Project type

Description

Standard

A lean approach for implementing Microsoft Dynamics solutions at a single site.

Rapid

An accelerated approach for implementing Microsoft Dynamics solutions with minimal or no

customizations.

Enterprise

A standardized approach for implementing Microsoft Dynamics solutions in complex single-site deployments or in global/multi-site organizations wherein country/site-specific unique business needs have to be factored on top of a core solution.

Agile

An iterative approach to implementing Microsoft Dynamics solutions at a single site requiring specific features and moderate-to-complex customizations. While the Standard, Rapid, Enterprise, and Upgrade project types are waterfall-based, the Agile project type uses the Sprint cycle approach to solution deployment.

Upgrade

An approach to upgrade an existing Microsoft Dynamics solution to a subsequent release of that solution. This begins with a Technical Upgrade to address moving existing functionality to the subsequent release. Any new functionality that is desired can be deployed by using the one of the other project types: Rapid, Standard, Agile, or Enterprise.

Sure Step also features Cross Phase Processes that span the project types. A cross-phase process is a group of related activities that span multiple implementation phases in a specific project scenario. The Sure Step Methodology also provides Optimization Offerings that feature proactive and post go-live services that are designed to assist the customer and solution provider with an additional level of due diligence in the solution delivery lifecycle.

Additionally, Sure Step provides Project Management and Organizational Change Management libraries, with content to support these key functions in a solution delivery engagement. Sure Step also includes an overview of roles typically involved in an engagement, both from consulting (solution provider) and customer perspectives.

Note: Dynamics Sure Step methodology has a strong delivery guidance and toolset for managing an entire Dynamics CRM project, positioning Dynamics CRM as the main element of the solution and the methodology. Enterprise solutions usually consist of multiple products and even diverse technologies, making it challenging to apply the entire process. Applying the templates and recommendations of Sure Step should be always considered and made part of the specific chosen ALM method to lower the risks and to make the CRM delivery process more transparent.

Dynamics Sure Step lacks the guidance regarding the tooling and automation techniques for the specific processes;

the tooling should be always selected according to the specific delivery environment and requirements of the solution.

MSF-based Solution Delivery

The Microsoft Solutions Framework (MSF) provides an adaptable framework for successfully delivering information technology solutions faster and with fewer people and less risk while enabling higher-quality results. MSF helps teams directly address the most common causes of technology project failure to improve success rates, solution quality, and business impact. Created to deal with the dynamic nature of technology projects and environments, MSF fosters the ability to adapt to continual change within the course of a project.

MSF is called a framework instead of a methodology for specific reasons. As opposed to a prescriptive methodology, MSF provides a flexible and scalable framework that can be adapted to meet the needs of any project (regardless of size or complexity) to plan, build, and deploy business-driven technology solutions. The MSF philosophy holds that there is no single structure or process that optimally applies to the requirements and environments for all projects. It recognizes that, nonetheless, the need for guidance exists. As a framework, MSF provides this guidance without imposing so much prescriptive detail that its use is limited to a narrow range of project scenarios.


MSF components can be applied individually or collectively to improve success rates for projects such as:

§             Software development projects, including mobile, web and e-commerce applications, web services, mainframe, and n-tier

§             Infrastructure deployment projects, including desktop deployments, operating system upgrades, enterprise messaging deployments, and configuration and operations management systems deployments

§             Packaged application integration projects, including personal productivity suites, enterprise resource planning (ERP), and enterprise project management solutions

§             Any complex combination of the above

MSF guidance for these different project types focuses on managing the “people and process” as well as the technology elements that most projects encounter. Because the needs and practices of technology teams are constantly evolving, the materials gathered into MSF are continually changing and expanding to keep pace.

As a framework, MSF contains multiple components that can be used individually or adopted as an integrated whole. Collectively, they create a solid yet flexible approach to the successful execution of technology projects. These components are described in the following table.

 

MSF component

Description

MSF foundational principles

The core principles upon which the framework is based. They express values and standards that are common to all elements of the framework.

MSF models

Schematic descriptions or “mental maps” of the organization of project teams and processes (Team Model and Process Model—two of the major defining components of the framework).

MSF disciplines

Areas of practice using a specific set of methods, terms, and approaches (Project Management, Risk Management, and Readiness Management: the other major defining components of the framework).

MSF key concepts

Ideas that support MSF principles and disciplines and are displayed through specific proven practices.

MSF proven practices

Practices that have been proven effective in technology projects under a variety of real-world conditions.

MSF recommendations

Optional but suggested practices and guidelines in the application of the models and discipline.

The MSF Process Model combines concepts from the traditional waterfall and spiral models to capitalize on the strengths of each model. The Process Model combines the benefits of milestone-based planning from the waterfall model with the incrementally iterating project deliverables from the spiral model.

The Process Model phases and activities appear in the following list:

§             Envision: Describe the solution concept and define the project team necessary to deliver it.

§             Plan: Assemble detailed plans and designs necessary to deliver the solution.

§             Build: Construct a solution that includes all aspects of the project needs.

§             Stabilize: Polish and verify that the solution meets customer and user needs and expectations.

§             Deploy: Deploy and integrate the solution to its intended production environments.


The MSF Process Model is depicted in the following graphic:


Iterative Solution Development

 

Iterative Solution Development (ISD) is a methodology used to reduce solution delivery risk and highlight Microsoft’s deep experience building custom application-development solutions. ISD enables on-going productive customer feedback, a single system of record for improved traceability, and consistent guidance on tools and application development recommended practices.

§             ISD is recommended for extremely complex, custom-development solutions.

§             ISD is the Microsoft Services Solution Delivery (SSD) approach for envisioning, planning, stabilizing, and deploying complex custom application development solutions.

§             ISD is derived from Services Delivery Methodology (SDM), which is based on Microsoft Solution Framework (MSF) and sourced from the World Wide Solution Development Centers. ISD is used when Microsoft is the prime contractor for large, complex, and custom application development engagements.

§             ISD leverages five core pillars to ensure delivery: a team model, a mentoring model, a process model, a governance model, and guidance focused on management of the development environment (built on TFS).


ISD Phases

§             The ISD Discovery Phase provides detailed guidance on all technical and business pre-sales activities required to win large, complex, and custom application development Tier 1 deals.

§             The ISD Sketch Phase provides detailed guidance on all of the activities required to successfully deliver a solid statement of work (SOW) for the Build, Stabilize, and Deploy phases. The ISD Sketch Phase is designed to be used on large, complex, and custom application development Tier 1 engagements.

§             The ISD Build & Stabilize Phase is the process of constructing the solution for the customer. This is the main Delivery Management phase. The iteration plan developed during Sketch is executed delivering working features and capabilities for each Release. It is built on the ISD team model and leverages TFS tooling and automation, covering development and test processes, source and version control policies, and testing and QA methods to ensure the ISD goal of high quality solution.

§             The ISD Deploy Phase provides detailed guidance on all the activities required to successfully release custom application development solutions into production. The ISD Release Phase is designed to be used on large, complex, and custom application development Tier 1 engagements.

§             The ISD Support Phase provides detailed guidance on all the activities required to successfully support custom application development solutions once they have been deployed into production. The ISD Support Phase is designed to be used on large, complex, and custom application development Tier 1 engagements.

 

Join Us at Summit EMEA 2017

I'm pleased to announce that I'm one of the presenters in Summit EMEA 2017 which will be held 4-6 April at the RAI Amsterdam.

About my session:

Development on Dynamics 365/CRM
Tuesday, April 4
 | 2:00 PM - 3:00 PM
 | Room: G110

Format: Presentation
Level: Intermediate

Looking to extend or write your first code to your Dynamics CRM environment? This session is focused on those new to CRM development or CRM administrators interested in taking the plunge to "code" customization. Covering all development structure of the Dynamics platform since version 2011. Attendees can easily see the difference between versions from a development perspective and particularly helpful for those who work on upgrade projects.

About Summit EMEA:

Summit EMEA 2017 will be held 4-6 April at the RAI Amsterdam. Summit EMEA provides Microsoft Dynamics users with best-in-class education on how to maximise the performance of Microsoft CRM, Dynamics AX, Dynamics NAV, and Power BI products. This event welcomes IT executives and end users from organizations using Microsoft Dynamics for learning and collaboration in a trustworthy environment.

This community-driven conference features special access to Microsoft leadership and a diverse array of interactive training workshops led by experts and users. Session topics include:

·         BI & Reporting

·         CRM Cloud Extensions

·         Developer

·         Leadership & User Adoption

·         Microsoft Dynamics 365

·         Power User

·         User Showcase

·         Partner Solutions Showcase

Sessions are currently available online. View session details, descriptions, and speaker information.

Interested in Power BI? There will also be three full days of Power BI sessions available to attendees. View Power BI sessions.

This event is brought to you by AXUG, CRMUG, NAVUG, and PBIUG. These User Groups are the world's most influential communities of Dynamics users, business leaders, IT professionals, developers, and partners - with members sharing a common goal to maximize and advance the performance of their Dynamics investment.

Register today! Begin your conference registration.


Join Your Microsoft Dynamics Peers at Summit EMEA 2017

I'm pleased to announce that I'm one of the presenters in Summit EMEA 2017 which will be held 4-6 April at the RAI Amsterdam.

About my session:

Development on Dynamics 365/CRM
Tuesday, April 4
 | 2:00 PM - 3:00 PM
 | Room: G110

Format: Presentation
Level: Intermediate

Looking to extend or write your first code to your Dynamics CRM environment? This session is focused on those new to CRM development or CRM administrators interested in taking the plunge to "code" customization. Covering all development structure of the Dynamics platform since version 2011. Attendees can easily see the difference between versions from a development perspective and particularly helpful for those who work on upgrade projects.

Learning Objectives:
Changes on Javascript Library, SiteMap, Plugin and Workflow Development, Service struscture, Web Api, etc...

About Summit EMEA:
Summit EMEA provides Microsoft Dynamics users with best-in-class education on how to maximise the performance of Dynamics AX, Microsoft CRM, Dynamics NAV, and Power BI products. This event welcomes IT executives and end users from organizations using Microsoft Dynamics for learning and collaboration in a trustworthy environment.

Attendees will have direct access to the following:

* Product insights

* Practical answers to Dynamics questions

* Peer to peer expertise that will provide gains in product knowledge and streamline business operations

* Microsoft leaders

* Microsoft MVPs

* Subject Matter Experts

Summit EMEA also facilitates connections between Dynamics professionals both from local user groups and from an international network of likeminded professionals. This event is brought to you by AXUG, CRMUG, NAVUG, and PBIUG. These User Groups are the world's most influential communities of Dynamics users, business leaders, IT professionals, developers, and partners - with members sharing a common goal to maximize and advance the performance of their Dynamics investment.

Click here to begin your conference registration.