Once we’ve connected our local Visual Studio to the Dataverse environment and configured everything, we can start coding.
The development part hasn’t changed, you create all the extensions and new objects as you did on a Cloud-hosted environment (CHE) or a VM using the VHD image.
But once your development is done, you need to move it to the UDE before being able to test it or debug it.
Deploy code to Dataverse #
For this example, I’ve created a regular runnable class that outputs “Hello ALM Guide!” when ran:
class AASALMGuide
{
public static void main(Args _args)
{
info('Hello ALM Guide!');
}
}
You must build your code before pushing the changes to the Dataverse environment, or the process will fail.
The next step is going to the Dynamics 365 menu, Deploy, and Deploy Models to Online Environment:
You can see it says “Models”, and that’s because when we deploy code to Dataverse, we deploy the complete model or package:
Notice the DBSync checkbox? If you’ve changed the data model, you need to select it to trigger the database sync on your Dataverse environment.
When we click the Deploy button, it will validate the connection, and if it has expired, it will ask you to log in again. Otherwise, the deployment process will start.
You can follow the status of the process in the Output window, selecting the “FinOps Cloud Runtime” output.
What’s happening behind-the-scenes? #
To deploy to the UDE, Visual Studio creates a managed solution with our objects. This is the same type of solution that has been used in CRM for a long time.
This is because Visual Studio is deploying a solution and not a deployable package to the Dataverse environment. The same we will be doing in releases!
After applying the solution, it will synchronize the database if you selected to do so, and after that, it will restart the services and return the environment to a healthy state.
The time it takes to complete depends on the size of the solution and if the DBSync operation will run.
For example, for my single class it’s taken a little less than 2 minutes, but if you include the database sync, expect from 15 to 20 minutes, and of course, more time if the DB is large.
Testing the code #
When the deployment process ends and the environment is back up, we can go to our environment URL and run the class:
Removing code from Dataverse #
If we need to delete a model or package because we’ve moved its objects to a different model, or because it won’t be used anymore, we just need to select the “Delete Models from Online Environment” option in the Dynamics 365 menu:
A new dialog will open, showing the installed pakcages on the environment, we just need to select the one we want to remove and click the Delete button:
Same as with the deployment option, the progress is shown in the Output window.
When it’s complete, we can try to run the class, and it will fail because it’s not there: