Dynamics 365 Business Central Wave 2: building apps on top of System Application

As you already knows from this official Microsoft post, with Dynamics 365 Business Central Wave 2 release Microsoft has splitted the application into two main modules: Base Application (that contains all the ERP business logic) and System Application (that contains all the system layer).

Separation between business and system layers is a first step for a future goal to have an application always more modular.  There’s also an interesting aspect to consider: imagine that your solution creates a totally new module for Dynamics 365 Business Central, totally independent from the Base Application. Now you can build an entire application (new extension) on top of the System Application, without interaction with the Base Application.

To show this, I’ve created a small extension for the Wave 2 release that manages Cars (here called CarManager; I’ve added only a table and two pages for simplicity, but imagine a more complex solution). In the extension’s app.json file I’ve set the dependencies only from the System Application:

SystemAppBuilding_00.jpg

On my Dynamics 365 Business Central Wave 2 environment I’ve uninstalled the Microsoft’s Base Application from the Extensions Management page:

SystemAppBuilding_01

If you try to uninstall the Base Application, you receive an alert that says that there are dependencies from this app. Confirm the complete uninstallation (app + al dependencies):

SystemAppBuilding_02

When uninstalled, you will receive an error like the following, so you’ve to logout and login again on the environment:

SystemAppBuilding_03

When you uninstall the Base Application, you have a Dynamics 365 Business Central environment without all the standard ERP business logic. Now, from Visual Studio Code I’ve deployed my CarManager extension and, as you can see from the Extension Management page, only two apps are now installed:

SystemAppBuilding_03A

Now if you try accessing the environment, you have this screenshot (no rolecenter is set):

SystemAppBuilding_04

If you search for “car”, you can see my pages and you can work with all the extension’s business logic:

SystemAppBuilding_05

Here I’ve inserted a new Car record and potentially you can start all your custom business logic as usual:

SystemAppBuilding_06.jpg

As you can see, I’ve an extension that works without interaction with the Base Application. You can potentially create custom business solutions on top of the Dynamics 365 Business Central environment and use that enviroment only as an “host” for your solutions, without exposing all the big ERP with all its entities to a non-ERP customer. That’s very cool I think!

But… why “potentially” is underlined? Because I think that there’s only a problem to solve in order to use the Dynamics 365 Business Central Wave 2 platform as a platform for hosting new standalone applications: managing users.

Unfortunately, at the moment the user’s management logic is also inside the Base Application. Without the Base Application installed, if you search for “users” (in order to insert a new user on the tenant or change permissions to existing users), you will not find any pages:

SystemAppBuilding_07.jpg

Having the complete users and roles management totally out from the Base Application (maybe in a separate app) could open the doors for big new scenarios I think.

 

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 )

Google photo

You are commenting using your Google 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.