D365 : A messy tips blogpost

Hi friends.

We learn new things every day, and I wanted to share a new messy blogpost where you will find undocumented some tips. Enjoy.

Azure Zone Pinning

Sometimes I have experienced that Dynamics 365 performs slower than expected. I have in a few scenarios tracked this down the fact that the services are distributed in Azure Availability Zones. It basically means that some times the compute and SQL are not in the same availability zone, and there may be a 2ms latency between availability zones.

So, if you experience unexplainable performance issues, please create a Microsoft support request and ask if they can perform a “Azure Zone Pinning analysis”, and maybe locking the deployment to a single availability zone. You will gain some performance gains, but the “cost” is that you lower the resiliency and reliability for your Dynamics 365 workloads. Microsoft will only do this on production environments and maybe T5 environments. In an unofficial performance review we experienced that opening the custTable form we got a 56% improvement in form opening time on asking on Azure Zone Pinning in a production environment.

Cloud Scale Unit and .NET Core

The CSU is the most central element in Commerce and eCommerce deployment. Microsoft are continuously focus on improving performance, while still ensuring compatibility. When you deploy a CSU, the.NET Framework 4.7.1 that is normally deployed. But you can by creating a
support request ask to change to .NET Core 3.1 on T2+/production CSU’s. If you would like to validate what you CSU is using, then use a browser and type in you CSU URL address and then add /commerce/GetEnvironmentConfiguration If you see “FrameworkName”:”.NET Framework” in the JSON, you got the .Net framework. If you see “FrameworkName”:”.NET” then you have the .NET Core 3.1. In a very limited evaluation, I found the performance gain to be in the area of 5-10 %, but there could be much more when having more complicated price and discount structures, and when the installation scales.

.NET Framework – Total time ~450 ms

.NET Core – Total time ~430 ms

Multiselect product attributes

In eCommerce, product attributes are extensively used to describe products. At customers we see a requirement to be able to select multiple attribute values. Let’s take an example, where we have Material as an attribute. As we can see, the attribute type can be a fixed list as shown here, where the attribute “material” can be metal, wood, plastic etc. But

When setting up the Attribute, we can specify that we allow multiple values:

But when specifying the attribute on a product, we see that we can only select one:

But there is a workaround, and this is to use only ‘Text’ as an attribute type and the delimiter is a pipe character (‘|’)

E.g., Material = Metal|Wood|Plastic

In this way, when you filter on any of the attributes, you will get a result in your eCommerce site or on our POS.

Store commerce app with offline

The store commerce app are now general available. The Store Commerce app runs on Windows devices and can be downloaded from the Shared asset library in Microsoft Lifecycle Services (LCS). The main advantage of the WebView2 rendering engine (the new chromium-based one that ships with Edge). I have yet not benchmarked how performance will be when also using the offline support. But I do expect an improvement in rendering performance. I will update this post later with the results.


That’s it for today

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.