March, 2025
Learn how to implement robust and efficient process to import complex documents into Dynamics 365 Finance and Operations from external Web services. This post covers integration design, practical code examples and troubleshooting strategies.
November, 2024
Optimizing and maintaining a legacy Dynamics AX system can be challenging. This guide provides actionable steps, from technical audits to performance monitoring, helping you keep your system running smoothly.
October, 2024
In this post, I share practical insights from my experience managing the technical side of Go-Live for D365FO projects, focusing on key activities like delivering fixes, replicating production issues, and leveraging tools to streamline the process.
October, 2024
How to implement robust, efficient integrations between Dynamics 365 Finance and Operations and external Web Services. This post covers design, code samples, troubleshooting and performance testing techniques for seamless event-based data synchronization.
July, 2024
This blog post describes how to implement various scenarios for periodic data export from D365FO to a file and uploading it to SFTP server.
September, 2023
Learn how to set up DevOps-hosted Build and Deploy pipelines for Dynamics 365 for Finance and Operations in this detailed guide
May, 2023
The blog post describes how D365FO batch framework handle errors and what kind of problems it may cause
March, 2023
Finalising our implementation of Identity and Access Management processes and flows. The last part of the series explains App Registrations and Firewall settings (Azure WAF / Front Door) to ease deployment to Azure.
March, 2023
Implementing a bespoke authentication/authorisation service in .NET with using OpenIdDict library illustrating with samples on GitHub.
February, 2023
Continue diving into Identity and Access Management processes and flows. This is a second part of a four-part series on modern authentication solutions for enterprise apps.
February, 2023
The blog post tests various options for. restoring BACPAC files on local SQL Server.
January, 2023
Designing a centralised auth service for a bespoke client-facing enterprise app with minimum maintenance and development overhead.
November, 2022
The blog post describes performance differences between various environments Tiers in D365FO.
September, 2022
The blog post describes a procedure to transfer attachments from AX2012 to D365FO
June, 2022
Practical approach to integration testing of the .NET + NoSQL bundle. Key features, examples and comparisons of RavenDB with other NoSQL engines.
This post is a part of the YABT series dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
This post is a part of the YABT series dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
May, 2022
The blog post describes a sample approach how to implement XML based integration by importing purchase orders from Azure File Share in D365FO using X++
March, 2022
There is a .NET project. Running hundreds of SQL commands and queries. Mostly via an ORM. But occasionally doing the heavy lifting in carefully tuned high-performed SQL queries.
How to orchestrate automated tests against SQL Server for this project?
How to orchestrate automated tests against SQL Server for this project?
January, 2022
The blog post describes a monitoring solution for SQL Server missing indexes.
November, 2021
A practical example of building custom load tests using k6, TypeScript and Docker along with Azure DevOps pipeline. The goal is to create tests maintained by developers and a testing pipeline in Azure.
November, 2021
There are many types of web performance tests that ensure your application is fast and stable — load, stress, capacity, soak, smoke tests. This post will guide you to pick the right tools to script out, execute and manage the tests.
November, 2021
The blog post describes a sample approach to implement Azure Service Bus integration in D365FO using X++
October, 2021
This post describes a case to consider while working with LedgerDimension values from posted transactions.
September, 2021
This post describes an extension for the standard D365FO system that allows saving stack trace data for infolog messages.
September, 2021
Multi-tenancy is never simple and can be addressed at different levels. Arguably, the most interesting solution would be where the app and the database both support multiple tenants. Here I bring this solution to the YABT project.
August, 2021
The blog post describes a sample approach to implement recurring file-based integration in D365FO using X++ and DMF
June, 2021
The blog post describes a monitoring solution for SQL Server parameters sniffing issues
June, 2021
A brutal post with cool examples of JavaScript dynamic typing and implicit casting.
It's dedicated to the 25th anniversary of JavaScript and has all chances to stay relevant for another ¼ of a century.
Check input for NULL and correct type, read the documentation and let JavaScript be with you (as it's not going away any time soon)...
It's dedicated to the 25th anniversary of JavaScript and has all chances to stay relevant for another ¼ of a century.
Check input for NULL and correct type, read the documentation and let JavaScript be with you (as it's not going away any time soon)...
May, 2021
The blog post describes a sample implementation for Dynamics AX business operations performance monitoring and performance analysis
April, 2021
Describes a sample approach of improving Dynamics AX 2009/2012 performance by downgrading D365FO InventSum table change
March, 2021
When a team produces an enterprise solution with a Single-Page Application (SPA) front-end and .NET Web API back-end, what are the options to host the two beasts?
Ultimately, we want to preserve the front-end bundle unchanged between environments, inject environment variables and have custom caching policies.
Ultimately, we want to preserve the front-end bundle unchanged between environments, inject environment variables and have custom caching policies.
March, 2021
Describes a custom framework for performing a periodic database cleanup
January, 2021
The blog post describes some steps for performance testing for file-based integration in D365FO using X++
January, 2021
Designing 'one-to-many' and 'many-to-many' relationships to reduce read operations on querying the data.
Let's take Users, Backlog Items and Comments entities from the YABT and consider their relationships from various angles, taking into account performance, operational costs, time/costs of development and maintenance.
Let's take Users, Backlog Items and Comments entities from the YABT and consider their relationships from various angles, taking into account performance, operational costs, time/costs of development and maintenance.
December, 2020
The blog post describes a sample approach to implement recurring file-based integration in D365FO using X++
December, 2020
Marrying the flexibility of NoSQL entities for storing various sets of fields with strongly-typed .NET languages and powerful RavenDB indexing tools. Store custom fields, manage their C# structures and filter/search on them in the queries.
This post is a part of the YABT series dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
This post is a part of the YABT series dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
November, 2020
Strategies for document identifiers in RavenDB (and NoSQL in general). Pros and cons of GUIDs, auto-incremented numbers, use of prefixes, ID masking and more.
This post is a part of the YABT series dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
This post is a part of the YABT series dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
November, 2020
The blog post describes how to analyse execution of batch jobs in Power BI Desktop
October, 2020
Comparing the performance of 4 D365FO development VM configurations with Visual studio
October, 2020
Practical modelling of a NoSQL database using the DDD (Domain Driven Design) practices to define the problem area (Bounded context) of the project, its domain entities and aggregates. Comparison to designing a relational model for a traditional SQL.
This post is a part of the YABT series dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
This post is a part of the YABT series dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
October, 2020
NoSQL is not hard, it’s different. And to show that, RavenDB and I kick off a new series of articles dedicated to building an enterprise application leveraging the .NET Core + RavenDB bundle.
October, 2020
The blog post describes how to organize a Dynamics AX performance optimization project, who should be involved, and how the process should be organized
September, 2020
Five simple but often overlooked steps to provide a better experience to the devs using your NuGet package. Consider PDBs for the Symbol Server, Source Link integration, XML documentation, strong-named assemblies, CLS compliance and version managing.
August, 2020
'Execute direct SQL' form provides a simple interface to execute SQL commands on D365FO database.
July, 2020
Watching the LinkedIn feed full of dramatic pleas for job during last 3 months made me wondering whether being highly qualified make you crisis-proof? Whether a job crisis like a virus leaves the strongest (most skilled) ones in the workforce and slaughters the weak ones? Is the IT job market better than others? In other words, is the IT job market a Free Market?
July, 2020
'List of Values to Range' tool can help users deal with the list of values in query range and copy-paste values from Excel.
July, 2020
The post describes how you can convert your existing batch job to multi-threaded to increase its performance.
June, 2020
The post describes a utility that generates X++ code template for Data provider and Controller classes.
June, 2020
In this post, I'll try to describe how to create a new Sales Invoice report design using SSRS and X++
May, 2020
In this post, I describe some scenarios for Team Foundation Version Control usage in Dynamics 365 Finance and Operations and how it is different from AX2012.
May, 2020
The blog post compares ways how to solve SQL performance problems caused by parameters sniffing for AX2009/AX2012 and cloud version Dynamics 365 for Finance and Operations
April, 2020
A popular bundle of .NET + SPA framework (e.g. Angular, React, Vue) has a notorious problem of enforcing contracts between the back-end and the front-end. Among all solutions, code generation tools are particular tempting. And here is analysis of all the major players to get the job done: NSwag, Swagger Codegen, OpenAPI Generator, AutoRest, WebApiClientGen and TypeWriter (plus 2 extra tools with partial functionality).
March, 2020
When it comes to choosing a platform for a new application there is a lot to consider at different levels. For the CTO or Architect the focus is on providing the required scale, resiliency, maintainability, elasticity. And all of it within a certain price range. For the developers, the preference goes to elegant solutions, well integrated with the preferred technology stack and with smooth (pain-free) development experience.
March, 2020
This post describes an extension for the standard D365FO table browser that allows root navigation and editing for non-development environments.
February, 2020
In this post, I want to describe some great Visual Studio extensions to simplify your D365FO debug experience.
January, 2020
This post describes some real-life examples of AX2012/AX2009 performance problems and solutions for them.
January, 2020
Arguably, the Mediator pattern has become cool among the .NET devs when Jimmy Bogard released MediatR library 4 years ago. That library made words "Mediator" and "MediatR" interchangeable in the devs' lexicon. And as usual, trendy tools get often misused and applied without a second thought. Here I'm playing devil's advocate and look closely at its pros and cons. Is it still useful for modern .NET projects? May it become an anti-pattern one day as Service Locator did?
December, 2019
The post describes a solution for naming extension classes in D365FO based on naming guidelines rules
November, 2019
Following up on my "7 reasons not to NoSQL", here are my two reasons to go with NoSQL in enterprise projects - Cheaper to scale and Convenience of development.
September, 2019
Comparing the performance of 3 typical VM configurations for D365FO development
September, 2019
Describes custom plan command that can increase AX2012 database synchronisation speed
September, 2019
Have you seen people affiliated with NoSQL databases aggressively advertising them as a solution for everything? And early adopters swearing allegiance to the NoSQL and claiming to pass the point of no return to SQL? Unsurprisingly, one may think of NoSQL as the silver bullet which solves all the problems. Should we always use NoSQL?
August, 2019
Coming from high-level programming languages to TypeScript, a mere mortal dev may naively use an enum for a predefined list of numeric or textual values. Because really, how could it possibly be different in TypeScript?.. Unfortunately, it can and here is a quick run down the Rabbit Hole of TypeScript enums.
July, 2019
Having actively used RavenDB for a couple of years, I constantly get asked by other devs about feedback on the database. They usually expect to hear something simple and straightforward, like "love it" or maybe even "hate it", but my experience doesn't fall into any of these extremes. After 2 years I'm torn apart by polarised feelings about the database, and my expected-to-be-simple response turns into a long story about all the pros and cons, love and hatred. So here is my story.
July, 2019
Helper classes to read the data from Excel(xlsx) and CSV files using X++ code
June, 2019
Cross-site scripting (XSS) is one of the most common application-layer web attacks. Are Angular or React apps safe? And if not, how to protect them? Some methods are easy to implement, others (like Content Security Policy) require more attention. Anyway, applying right settings is not a smooth ride, and some potholes and gotchas are described here.
June, 2019
How to perform Dynamics AX performance audit to resolve performance problems
May, 2019
For professional developers, code/peer review is an essential step of the internal QA. Over the years, among a wide variety of problems revealed on code reviews, I found that some appear more often than others. Here is a list of the most common ones. So, the code is working, meets acceptance criteria, passed dev's testing and here we go...
April, 2019
There are many ways to implement integration between D365FO and external systems. In this document, I propose the actual checklist of what you need to consider to successfully design an integration solution
April, 2019
Create ledger journals using X++ is quite a common task, in this post I'll try to describe possible options how to perform it
April, 2019
Strongly typed Reactive Forms is the elephant in the room the Angular team doesn't want to talk about. In the absence of the official solution, developers can use some tricks to enforce type checking in the Reactive Forms. Here are two plausible solutions.
March, 2019
Perhaps, Autofac is the most popular DI/IoC container for ASP.NET projects. But, since .NET Core has a pretty decent DI/IoC container, why would one still need Autofac? This is a story of gains and losses from switching a mid-sized project from Autofac to the standard .NET Core container.
March, 2019
Nowadays, an urge to write can be easily satisfied. Simply jump to Medium and you can fire away typing your first blog post. Not happy with your posts getting lost among millions of similar looking pages from thousands of bloggers? Then start building you own website for a small fee on Squarespace, WordPress and the likes. But for software developers…
March, 2019
X++ tool that adds a system field name in a standard query filter field lookup
March, 2019
Working with the financial dimensions framework has become much more difficult starting with the AX2012. This post describes the most common problems and how to resolve them
February, 2019
Global class is a standard class that contains a lot of small static functions. This post describes additional functions that extend it.
February, 2019
Fields list form is an extended version of the standard Show all fields form with the additional features such as displaying all fields with the extended information, comparing and editing
January, 2019
Understanding blocking is a key component of resolving performance issues. You can have fast CPU, a lot of memory, but if you face SQL blocking problem all these will not be fully utilized
January, 2019
'RunBase class builder' Add-in parameters description and usage scenarious
December, 2018
Using Financial reporting (aka Management Reporter in Ax2012) on local DEV D365FO one box requires some addition settings, that are not yet documented. This post describes the problem and a possible solution.
December, 2018
Index hint is a new feature announced in D365FO PU23. When do we need it and what is the performance overhead of others alternatives.