June 6th, 2024

The Unified Development Environment is GA!

Overview

We are proud to announce that the Unified Developer Experience for Finance and Operations apps (colloquially known as UDE) is now generally available for all customers. As you may know, UDE is both the next step in the app development experience for Finance and Operations, and a powerful enabler for leveraging the value provided by Microsoft Dynamics 365 and the Power Platform.

Many of the features provided by both Microsoft Dataverse and Finance and Operations are now seamlessly managed in a single sign-on experience that will replace the current LCS experience. Even if you are doing development of finance and operations apps without leveraging Power Platform, you will find value here.

Architecture

In the past, all aspects of the developer’s work happened on a single machine handling both the development and runtime experiences. The development experience encompassed tasks such as code editing, X++ compilation, and deployment. The runtime experience, on the other hand, involved the execution of X++ code within the application, allowing local debugging, running unit tests and performing data analysis using the SQL Server Management Studio and the trace parser.

However, any interaction with the Dataverse stack, which was hosted in the cloud, had to be manually set up and managed. This was not integrated into the local development and runtime environment.

This architecture has changed in the unified developer experience; now code editing, debugging etc. happens on the user’s device, and the execution of X++ code invariably happens in the cloud.

Image Client and Cloud Development on Client, execution in cloud

The illustration above shows the local development box running against an endpoint in the cloud. The Application Object Server (AOS), the SQL database instance, and a complete Dataverse installation are hosted for you behind this endpoint. Any target endpoints, running on different versions of the application code, can be used without the need for the developer to manage that complexity. The development box switches to the target version automatically and downloads the correct metadata version as needed. This means that a developer can seamlessly develop against several endpoints, all running on different versions, requiring no manual, error-prone setup. Workflows requiring a refresh from production systems down to development can be managed in a single step.

Setting up a device for development used to be complex due to numerous complex dependencies. People often use pre-configured VHDs or cloud hosted environments (CHEs), which are costly and hard to maintain. Now, the process is much simpler – You can use a standard laptop for all your development work. We have minimized the prerequisites, which will be installed automatically based on your application’s version. The only software you need to install is Visual Studio 2022 (any SKU will do). Since the application code runs on data hosted in the cloud, a laptop is sufficient for a developer’s needs. Once the logon credentials have been provided, a developer can upload the results of development work, containing contributions from both finance and operations and Power Platform, to the cloud endpoint directly from within Visual Studio 2022. The developer can then seamlessly interact with the application, run unit tests, and debug X++ and C# code just as if everything was running on the local development box.

All management aspects are handled by a single experience within the Power Platform Admin Center. A lot of the functionality that we previously available in LCS has been moved there to provide a single ALM experience.

All this translates into increased developer productivity. The system will make sure that the version you are developing against and the code that is executed on the server are perfectly synchronized. Since we have set up the data environment for you in the cloud, you can rest assured that it is both secure and compliant without any intervention from your part. With this hands-off infrastructure in place, there is no longer any need for you to manage your own cloud-hosted environments or run VHDs.

Since Dataverse is set up for you automatically, you can easily integrate with several useful technologies with no extra work. These include:

  1. Dual write – This allows you to synchronize data in near real time between the Dataverse and finance and operations environments. This is useful in cases where a Power App updates data in Dataverse, but that data needs to be part of backend calculations in Finance and Operations.
  2. Virtual entities – This makes finance and operations tables available in Dataverse, without any data copying.
  3. Business events – These events can originate in either the Dataverse or finance and operations apps and can be connected to Power Automate to trigger a flow. They may also be connected to Azure middleware to alert subscribers to the new event and the information payload that goes with it.
  4. Access Copilot with Client plugins7 – Copilot client plugins, or client actions, are Microsoft Copilot plugins that invoke client code and are available for users in the context of client experiences for finance and operations apps with the Unified Development Experience. Developers can extend the Copilot chat capabilities in finance and operations apps by using Copilot studio and by defining plugins that convert the functionality, operations, and business logic of the X++ code base into actions that users can invoke through natural language when using the application. Now Finance and Operations application can benefit from AI workflows.
  5. Synapse link8. Azure Synapse Link for Dataverse is a service that’s designed for enterprise big data analytics. Use Azure Synapse Link to continuously export data from finance and operations apps into Azure Synapse Analytics and Azure Data Lake Storage Gen2. It provides scalable high availability together with disaster recovery capabilities. Data is stored in the Common Data Model format, which provides semantic consistency across apps and deployments.

The following table highlights some comparisons between the old and the new environments.

Customer Hosted Environment (CHE) Online Development Environment
Azure subscription Needs Azure subscription NA
Security & compliance Customer must manage Microsoft would manage
Azure quota management Customer must manage NA
New environment setup time 4 to 6 hours Less than 2 hours
Service updates Customer manages Microsoft managed
Quality updates Customer managed Microsoft managed
Microsoft Power Platform/ Dataverse integration Customer must manually integrate with CHE Fully integrated environment
Service and quality updates rollback Rollback not supported for failed updates Full rollback support
Total Cost of Ownership (TCO) Very high Low
Copy production data to troubleshoot Multi-step and multi-day process Typically less than 4 hours
Deploy changes / customizations to cloud Takes a few hours Takes a few minutes
Customer Managed Keys enabled Not possible Available

CI/CD

In addition to the interactive story, we also provide a continuous integration and deployment (CI/CD) experience where you can build and deploy your solutions. The fully automatic deployment contains contributions from both Dataverse and Finance and Operations.

Data Management

Sometimes problems happen in production, and for debugging to be effective, the production data is required. Previously it was a long and difficult process to download the data from production down to a developer box. Today, that is far less onerous. In fact, we have even introduced filters so, depending on the scenario, the developer can choose to not download transactional data, which cuts down the time from several days to a few hours.

Just in Time Data access

There are cases where development requires access to business data. This was one very persistent piece of feedback that we got from our preview customers. Typically users want to tune query performance, look at query plans, do quick data manipulation and so on, typically using the SQL server Management Studio application. We are happy to say that we now have a Just In Time story, where users with the right privileges can get access to the database to do these operations, right from within the Visual Studio environment.

The Trace Parser

Sometimes it is not practical to reproduce problems in the production tier on a developer environment. For these cases we now support the Trace Parser – End users can record their problematic scenarios directly from within the Finance and Operations application, and ship the recording to support engineers. In turn, these recordings are opened locally with the Trace Parser that allows you to mine data about the execution times for every method and every database access.

Here are some links to get you started:

0 comments

Discussion are closed.