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