Universal Dashboard is now part of PowerShell Universal. Download the latest version to try it out for free.

I’m so excited to announce the first beta release of Universal Dashboard v3! We’ve put a ton of work into it and can’t wait to have people start playing with it. Being a major release, there are breaking changes. As we move forward with additional beta releases and on our way to a GA build, we will be releasing migration documentation to help move from v2 to v3.

Beta Roadmap

Beta 1

The focus for beta 1 is to introduce the new standard controls and open up the feedback channel. These include things like buttons, textboxes, switches, etc. It also overhauls the entire UI library. Please see below for more information.  Please consider filing bugs on the new v3 features using the v3 tag on GitHub.

Beta 2

Beta 2 focus will be charting. We will be introducing new monitor and chart controls to v3 for people to play with. Beta 2 will also include feedback and bug fixes from beta 1. We’ve already started work and will be using a different charting library as our standard. It will provide the end-user with more control over how they view their data.

Beta 3

Beta 3 focus will be theming. We will be introducing the new theme library for UDv3 and making sure that it satisfies everyone’s desire to make UD their own. Our theme library will be simpler and less focus will be put on CSS. It’ll be easy to customize but also powerful in the same way UD themes were before. We’ve already started implementing this as well. Due to the partial implementation, don’t expect themes to work right now.

Final Build

The final build will be sometime this summer after we work out the issues through the beta versions and take feedback from the community.

What’s New in Beta 1

Material UI

We continue to use a Material Design-based framework but have moved completely away from our previous framework. The UI is now built on Material UI. It’s a very popular React library based on Material Design. It’s more actively maintained, has more awesome controls and allows for better integration with other libraries. You’ll see some new controls now and more later (cough wizard cough).

Enhanced Input (Form) Component

One of the most used components in UD, UDInput, has been revamped and renamed UDForm. Forms serve the same purpose as UDInput did but provide some additional enhancements.

First, you can easily customize the look and feel of the UDForm component. This means changing the layout and properties of the individual form controls. Rather than using a generic cmdlet, like New-UDInputField, you can now just use the standard form cmdlets like New-UDTextbox and New-UDCheckbox. It’s way easier to read.

Second, due to the nature of how UDForm is implemented, it’s possible to introduce new form controls without having to update UD itself. This means that component authors will be able to add new components that work in forms. We’ll be adding tools in our JavaScript API to make this really easy.

Removal of Endpoint from Components

One difficult concept to grasp in UDv2 for beginners and experts alike was the concept of Endpoint vs Content. Some components had both, some did not. Some had it and it didn’t even work. We’ve removed Endpoints from most cmdlets. There are still some cmdlets that offer endpoint-like parameters but they are specific to the control and more descriptive.

Instead, we’ve introduced a New-UDDynamic cmdlet. This provides the same functionality as the Endpoint parameters did in the past but allow you to wrap entire sections of your code in a dynamic block. It implements the same autorefresh and argument list parameters and can be used with any component.

For hardcore UD users: One benefit of using New-UDDynamic rather than maintaining state within each component, is that state is now stored by UD and available for more components via Get-UDElement.

New Administrative Controls

As part of the enterprise version, we’ve introduced an entirely redone, admin mode. The UI has been improved to provide additional information in an easy-to-use admin panel. This allows for the expansion of admin functionality that will be coming in future versions of UD. We hope to merge much of the functionality from UDStudio directly into the UD experience. We also hope to provide more UI controls for configuring UD administration.

Module Refactoring

The UD and UD Community modules have been refactored so that you will be able to install them side-by-side without having to worry about conflicts. The UD Enterprise module has been introduced that is no longer a fork of UD Community but instead an entirely separate plugin. Although we won’t be able to ship the modules like this during our prerelease versions due to issues with the PowerShell Gallery and PowerShellGet, the final version will result in 3 modules: UniversalDashboard.Community, UniversalDashboard.Enterprise and UniversalDashboard which will just install the other two modules.

This means we’ll be able to ship updates to the enterprise module without having to ship updates to the other and vice versa.

Reworked JavaScript APIs

In an effort to simplify and standardize the JavaScript components that we built with Material UI, we now have a new JavaScript API for Universal Dashboard. This means that event handlers, like OnClick, and interactions with the UDElement cmdlets, are now standard. For UD users, this means more consistency between controls and much more control over components on your dashboard. For UD developers, this means that you will be able to easily add dynamic capabilities to your controls without having to rewrite all the boilerplate code necessary to hook up to the UD framework.

We haven’t released it yet but we will be releasing an NPM package you’ll be able to include in your custom UD components to easily hook into the UD framework.

New Demo and Doc Dashboard

Although still a work in progress, you can view the demo dashboard by using Start-UDDashboard or by visiting our hosted instance here. We hope or this to be a replacement for our docs site and poshud.com. The docs and the demos will all be built on UD. This means you’ll see the latest version of UD in action, you’ll be able to play with the controls right in your browser and you’ll be able to run the docs offline with Start-UDDashboard.

REST API Improvements

Public Endpoint Support

You can now use the -Public switch parameter on New-UDEndpoint to allow unauthenticated requests to a particular endpoint that is part of an authenticated REST API server.

Support IActionResult

Your REST APIs can now take advantage of ASP.NET Core’s IActionResult interface. This means that you can return custom status codes via the StatusCode class. It also lets you control what data is returned by using classes like JsonResult or ContentResult.

Conclusion

UDv3 is a big change but it’s also in the right direction. I would suggest to play away but keep in mind that we’ll be enhancing this going forward. Please provide feedback on the forums and GitHub.

Nightly builds are available on GitHub.

Happy dashboarding!