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:
On my Dynamics 365 Business Central Wave 2 environment I’ve uninstalled the Microsoft’s Base Application from the Extensions Management page:
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):
When uninstalled, you will receive an error like the following, so you’ve to logout and login again on the environment:
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:
Now if you try accessing the environment, you have this screenshot (no rolecenter is set):
If you search for “car”, you can see my pages and you can work with all the extension’s business logic:
Here I’ve inserted a new Car record and potentially you can start all your custom business logic as usual:
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:
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.