DNN 9 includes a brand new admin experience which provides a complete makeover of all the admin and host tools in DNN. When we first started work on the Persona Bar it was a feature that only existed in Evoq Engage. Since that initial release we have expanded the Persona Bars capabilities and moved it to Evoq Content, and with DNN 9 we are moving the Persona Bar experience to the DNN Platform.
As part of moving the Persona Bar to DNN Platform, we needed to completely refactor the code so that we could move it from a commercial license to an Open Source license. In order to facilitate that refactoring we created a new project for the Persona Bar and all of the Persona Bar extensions. Once the refactoring was complete and the code sanitized of any commercial elements we were able to move the project into a clean repository.
A couple of weeks ago we finally completed this refactoring effort and opened up the new repository on GitHub. You can find the latest code at https://github.com/dnnsoftware/Dnn.AdminExperience. Since DNN 9 is primarily focused on the new admin experience most of our work is occurring in this new repository. If you want to follow along or even see how we are building the new Persona Bar extensions then check out the source code.
Exploring the Source
The Admin Experience source code is effectively broken down into two (2) major sections: the framework and the admin extensions.
The first major component is the DNN.PersonaBar.Library project. This project provides the Persona Bar framework. It provides the basic UI for the navigation bar and the workspace panel. It handles loading the individual extensions as needed, and it enforces the basic permissions for the various navigation elements.
The second major section is the Modules folder which includes all of the individual admin modules which have been rewritten to run in the Persona Bar. As part of this rewrite, we have leveraged much of the existing framework APIs behind these modules, while completely rewriting the UI.
In addition to each of the individual modules, the Modules folder also includes the UI library that is used by the various admin modules to ensure a consistent user experience for all of the modules. This library exposes a large set of React based components that the admin modules use for building their user interfaces.
Check It Out
We hope you take a few minutes to explore the new repository and see some of the new capabilities that the Persona Bar provides. We think you are going to love the new Persona Bar and having the project in its own repository will make it that much easier to dive into without getting lost. As always we would like to hear your feedback. What you think of the new Persona Bar extensions. Are we missing something? What do you think of having a React based set of UI components?
If you are a Chrome or Firefox user, then you might be interested in this browser extension I found called Octotree (you can see it in the image above). Octotree adds a simple code explorer tree to GitHub.com. Using this extension, you can quickly and easily shift from file to file in the repository. It totally changes your GitHub experience. I used to clone projects locally just so I could peruse the source code. With Octotree, I can finally browse code online. If you are a frequent GitHub user, I urge you to give it a try.