Breaking the monolith: Introducing the Business Central System Application

The landscape in which ERP solutions operate is undergoing major changes. Those changes are also being referred to as the digital transformation or the industrial evolution 4.0. For Dynamics NAV to stay relevant, the product had to join that transformation and become a cloud solution, operating in the heart of the intelligent cloud. It had to become Business Central.

Intelligent Cloud

This fundamental change of the technology ecosystem requires fundamental changes to Business Central, which now must deal with the increased complexity of the ecosystem in which it operates. With the business application being a monolith, made for a code customization model, there are several challenges which arise, as the application is:

BookEscavatorTreeTools
Hard to understand and to documentHard to extend and build uponHard to evolveHard to maintain

In order to restore simplicity and move forward efficiently, one of our initiatives is to componentize the monolithic application into smaller modules.

Componentization

By componentizing the business logic in Business Central from the bottom-up, we get to start over and build the foundation, upon which a more extensible business logic can evolve. We are building a new foundation upon which the business applications of the future will be built.

Initially, we are factoring out all functionality that isnt business logic as such. This code is a gang of low level helpers that support functionality and frameworks we call it the System Application, the interface to the Business Central platform and cloud ecosystem:

Layers

By constructing the System Application out of small building blocks, the so-called modules, we achieve a variety of advantages, as modules have the following properties:

Separate ConcernsStable APIEncapsulateLock
They separate concerns and are functionally coherentThey have stable, well documented APIs that are exposed through facadesThey encapsulate complexity and hide implementation detailsThey have a small attack surface, which makes them easier to secure
Fast CompileDiscussionPerformanceVersioning
They are faster to compile and publish, which supports a good developer experienceTheir size and clear purpose allow for a code contribution model and focused design discussionsThey are easier to performance test and monitorThey allow for individual versioning and effective upgrading

For the first release of the System Application, the collection of modules looks as follows:

a screenshot of a cell phone

As the foundation is work in progress, you should expect new modules to be appearing regularly. If you would like to look into the latest state, you can always go to the GitHub repository where we will publish the latest improvements: https://github.com/Microsoft/alappextensions

In a series of blog posts, you will learn more about the architecture of the System Application, and you will get more details about the individual modules.

The post Breaking the monolith: Introducing the Business Central System Application appeared first on Dynamics 365 Blog.

Comment List
Anonymous
Related
Recommended