cub-e.net

just coding...

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

CRM Saturday Oslo 2017

Please join us on the next CRM Saturday event in Oslo (Norway) on 26th August. My session is "D365 New Features & Deprecations"

Full details and registration can be found on the CRM Saturday website: http://mwns.co/cso2017

CRM Saturday is a Free CRM Technical & Strategy Event Organised by the Microsoft Dynamics Community MVP's For Dynamics 365 Professionals, Technical Consultants & Developers. Learn & share new Skills whilst Promoting the CRM Manifesto, helping organisations overcome the challenges of implementing a Successful CRM Strategy with Microsoft Dynamics.

This is a whole day event with a lot of speakers from all around the world. It is an advertising and recruitment free event, and we are setting up both a technical and a business/strategy track so there will be interesting session for everyone.


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.

SDK ve NuGet kullanarak Dynamics 365 CRM'e baglanma

Yontem 1: SDK Kullanmak

 

https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/download-tools-nuget adresinden alacaginiz asagidaki powershell scripti ile sdk icerisindeki araclari 4 klasor halinde bilgisayariniza indirebilirsiniz.

 

$sourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"

$targetNugetExe = ".\nuget.exe"

Remove-Item .\Tools -Force -Recurse -ErrorAction Ignore

Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe

Set-Alias nuget $targetNugetExe -Scope Global -Verbose

 

##

##Download Plugin Registration Tool

##

./nuget install Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool -O .\Tools

md .\Tools\PluginRegistration

$prtFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool.'}

move .\Tools\$prtFolder\tools\*.* .\Tools\PluginRegistration

Remove-Item .\Tools\$prtFolder -Force -Recurse

 

##

##Download CoreTools

##

./nuget install  Microsoft.CrmSdk.CoreTools -O .\Tools

md .\Tools\CoreTools

$coreToolsFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.CoreTools.'}

move .\Tools\$coreToolsFolder\content\bin\coretools\*.* .\Tools\CoreTools

Remove-Item .\Tools\$coreToolsFolder -Force -Recurse

 

##

##Download Configuration Migration

##

./nuget install  Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf -O .\Tools

md .\Tools\ConfigurationMigration

$configMigFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf.'}

move .\Tools\$configMigFolder\tools\*.* .\Tools\ConfigurationMigration

Remove-Item .\Tools\$configMigFolder -Force -Recurse

 

##

##Download Package Deployer

##

./nuget install  Microsoft.CrmSdk.XrmTooling.PackageDeployment.WPF -O .\Tools

md .\Tools\PackageDeployment

$pdFolder = Get-ChildItem ./Tools | Where-Object {$_.Name -match 'Microsoft.CrmSdk.XrmTooling.PackageDeployment.Wpf.'}

move .\Tools\$pdFolder\tools\*.* .\Tools\PackageDeployment

Remove-Item .\Tools\$pdFolder -Force -Recurse

 

##

##Remove NuGet.exe

##

Remove-Item nuget.exe

 

 

Yukaridaki script ile Dynamics 365 SDK'yi indirdiyseniz CoreTools altinda su 3 dll'I bulabilirsiniz:

 

Microsoft.Xrm.Sdk.dll

Microsoft.Crm.Sdk.Proxy.dll

Microsoft.Xrm.Tooling.Connector.dll

 

Bu dll'leri uygulamanize referans olarak ekledikten sonra asagidaki using parametlerini islem yapmak istediginiz sinifa eklemeniz gerekmekte.

 

using Microsoft.Xrm.Sdk;

using Microsoft.Xrm.Sdk.Query;

using Microsoft.Xrm.Tooling.Connector;

 

Yontem 2: NuGet Kullanmak

NuGet paketlerini kullanmak uygulama gelistirme ve derleme asama bircok problemi ortadan kaldirmakta. Ozellikle ekip halinde kod gelistiriyor ve TFS-VSO-Github gibi ortamlarda kodusakliyorsaniz her kod gelistiricinin kendi bilgisayarinda farkli noktalarda tuttugu dll referanslari daha sonra basiniza dert olacaktir. Iste bunu onlemenin en pratik yolu NuGet uzerinden referanslari almak ve kullanmaktir.

 

Nuget package konsolundan ya da Visual Studio arabirimi uzerinden asagidaki 2 paketi bulun ve projenize ekleyin.

 

  1. Microsoft.CrmSdk.CoreAssemblies
  2. Microsoft.CrmSdk.XrmTooling.CoreAssembly

 

Diger paketler otomatik olarak kurulacaktir.

 

Her iki yontem icin ortak adimlar

Asagidaki connection stringlerden hangisi size uygunsa ilgili connection string'I alabilirsiniz:

<!– Online using Office 365 –>

<!–<add name=”Server=CRM Online”

connectionString=”Url=https://myserver.crm.dynamics.com; Username=user@myserver.com; Password=password; authtype=Office365″/>–>

<!– On-premises with provided user credentials –>

<!– <add name=”Server=myserver, organization=AdventureWorksCycle, user=administrator”

connectionString=”Url=http://myserver/AdventureWorksCycle; Domain=mydomain; Username=administrator; Password=password; authtype=AD”/> –>

<!– On-premises using Windows integrated security –>

<!– <add name=”Server=myserver, organization=AdventureWorksCycle”

connectionString=”Url=http://myserver/AdventureWorksCycle; authtype=AD”/> –>

<!– On-Premises (IFD) with claims –>

<!–<add name=”Server=myserver.com, organization=contoso, user=someone@myserver.com”

connectionString=”Url=https://contoso.myserver.com/contoso; Username=someone@myserver.com; Password=password; authtype=IFD”/>–>

 

CRMServiceClient sinifina ilgili connection string'I veriyoruz ve elde ettigimiz servisi kullaniyoruz.

 

CrmServiceClient conn = new CrmServiceClient(ConfigurationManager.ConnectionStrings[“Server=CRM Online”].ToString());

var _orgService = (IOrganizationService)conn.OrganizationServiceProxy;

 

Artik fetchXML ile veri cekebilir ya da Insert/Update/Delete/Execute islemlerini _orgService ile icra edebilirsiniz.

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.

 

Microsoft Dynamics CRM 2016 Service Pack 1 Performance Benchmark on Azure Infrastructure as a Service (IaaS)

You can download performance paper of Microsoft Dynamics CRM 2016 Service Pack 1 (SP1) running on Azure Virtual Machines. 


Overview 

Microsoft Dynamics CRM is designed to deliver intelligent customer engagement to the market – helping companies deliver customer experiences that are personalized, proactive and predictive. Dynamics CRM helps provide data anywhere and across a wide array of devices, ranging from phones and tablets to PCs, and through a wide array of client types, such as smartphone apps, tablet apps, and Microsoft Dynamics CRM for Outlook. This paper highlights the scalability and performance that can be achieved in terms of concurrent users and feature functionality with the latest release of Dynamics CRM 2016 SP1, running on the standard “off the shelf” Azure Virtual Machines. 



Conclusion 

The results reflect the scalability and performance achieved on a specific Dynamics CRM 2016 SP1 implementation running on standard Azure Virtual Machines in a test environment. Actual performance may vary based on factors ranging from specific customizations deployed to the geographic distribution of users and network latency or bandwidth. Customers should expect that results will vary for each implementation and should perform their own performance testing based on their needs or requirements. In some cases, customers may achieve higher levels of performance by fine-tuning or optimizing the configuration of Microsoft Dynamics CRM. 

These results demonstrate the robustness of Dynamics CRM 2016 SP1 and its capability to handle concurrent user activities with ease for enterprise CRM scenarios. 

You can download from below link:

Microsoft Dynamics CRM 2016 SP1 Performance Benchmark on Azure IaaS.pdf (1,1MB)

Baştan Sona Bulut Serüveni

Degerli MVP'lerimizden Baki Onur Okutucu ve Anil Erduran ile Londra'da yaptigimiz "Londra'da BT Sohbetleri" isimli seri "Baştan Sona Bulut Serüveni" isimli kanalda yayinlanmaya basladi.

Bastan sona Microsoft bulut teknolojileri uzerine cok keyifli bir sohbet oldu.

Su adresten ulasabilirsiniz : http://bit.ly/2nggdAL