Project Oakdale — Initial Impressions

Luke Phillips
Capgemini Microsoft Blog
5 min readOct 20, 2020
OAKdale

As you may have heard Project Oakdale entered public preview recently. Excited for this release, we’ve started exploring the potential to move some of our existing Power Apps over, which are used for things like our new joiner’s process and to communicate out events of interest. These apps currently store data in other sources, such as SharePoint Lists and are perfect candidates for the promises of Oakdale.

As we’re going through the process, we thought we’d share some of our first impressions with you.

First off, the installation. Here is another article which will show you how to install the preview. Following the process, once you’ve created an app within a Microsoft Teams team, within minutes your Oakdale instance is provisioned. Each time Oakdale is added to a new team a new CDS environment is created within the Power Platform.

We dived right in creating our apps, tables and Flows. Overall, the creation process of each is straight forward and something you’ll be familiar with if you’ve created data structures in CDS. The similarities and intuitive design language are welcomed and expected. When creating tables, we identified the options were limited compared to the configuration options for the same environment in the maker portal. You’ll notice the following components missing, but don’t worry these options are still available in the maker portal:

Full vs. Visual Editor Options

We wanted to dive deeper into the experience within Teams but the features available seemed limited in comparison to the standard Maker Portal we’ve come to know and love since the transition away from the “Classic” interface. The limited data type choices mentioned above is a prime example. This for us, as experienced Power Platform developers, seems restrictive, but you have to remember the target audience for Project Oakdale is Citizen Developers. Therefore, it makes sense why some areas of the platform have been simplified. Microsoft is building Teams as a central hub for teamwork and leaving the app shouldn’t be necessary but like opening a Word doc in the desktop app, navigating to the full Maker Portal will provide a richer experience. Microsoft call this the Modern Workplace Hub.

If you navigate to the maker portal in your browser, you’ll land in the default environment for your organisation, from where you’re unable to switch to your provisioned Oakdale environments. This appears to be by design, at least for now. However, here’s a handy workaround if you need it. Simply navigate to Power Automate instead, copy the environment ID from the URL, navigate back to Power Apps and replace the ID within the URL. Sneaky! Bear in mind that by working around the teams limitations you may, in future, break the teams experience in future releases.

Maker Portal vs. Power Automate Portal Env. Listing Differences

Adding new components to your Oakdale environment within teams is a bit unintuitive. When you load the Build tab, it’s great to see all your teams where Oakdale is installed in a single area. When you click New, you’d be forgiven thinking you can only add a new App or Chatbot. At first, we thought this is a bit strange because we could add other components, tables and Flows through the Canvas App itself and see them listed in the Build tab. For a while, we were only editing Flows by navigating through the canvas app. However, there’s a secret to creating other additional types of components from within Teams by clicking See all and then New. From here you can create the following components in addition to chatbots and canvas apps:

  • Flows
  • Mobile Apps
  • Environment Variables
How-To: Add New Components

There is also some good basic management of Flow within teams. You can:

  • Turn the Flow off/on
  • Delete the Flow

You can load the traditional Flow window for all the actions you’d typically associated with a Flow in the browser.

Another confusing issue we hit was creating components within a Canvas App. After adding any standard item to the component, the App Checker immediately highlighted three errors which all regarded a property called ‘PCFTeamsTheme’, which isn’t accessible from the property dropdown. We believe this is related to the Teams integration object included when creating Canvas Apps within Oakdale. Luckily, these errors don’t stop the app from being Saved, Published or Run, so can be ignored.

With regards to the Teams object, it appears limited in functionality but does offer a number of properties you might find useful in your solutions. These properties are: IsFullScreen, ContextEntityId, Theme, ThisChannel, ThisTeam. Some examples using these properties could include changing the colours of your UI based on the Teams theme (Default, Dark, Contrast) or filtering the data you display based on the channel you’re accessing the app from. You can learn more about these here.

Improvements we’d like to see

We love dark mode and while the Oakdale preview seems to somewhat support dark mode, it’s a less than ideal experience and we found it to be quite a strain to read some of the information. It’s also been nice to see changes daily on the platform showing the constant and rapid evolution.

Pop-out window support for editing. Sometimes you want to chat or ask a colleague questions, and when doing so you have to come out of the editor and load it again when you dive back in. You can pop-out chat windows before editing, but if you need to talk to someone new, it’s just a tad less than ideal (nit-picking).

Overall, we’ve been extremely pleased with what we’ve seen so far, and can’t wait for future releases that continue to enhance Oakdale. We’ll be continuing to explore Oakdale in greater detail, from security and data to application lifecycle management, as we continue to move our internal solutions across.

This post was co-written with my amazing colleagues Tom Ashworth and Stuart Wright!

Keen to get started with interesting Oakdale projects? You might have to consider joining the Microsoft Team at Capgemini!

--

--