In this post we'll be exploring Xperience by Kentico. A high performant and ASP.NET Core based Digital Experience Platform (DXP).
🧭 Starting Our Journey: What's a DXP?
Most developers are familiar with the term Content Management System (CMS) and might have worked with one at some point in their career 🙂.
CMS applications allow content managers to author and manage content (typically pages or media).
Digital Experience Platforms (DXP) are similar because they include content management features. However, they also include a key focus on the experience of visitors on a site and how they interact and engage with content and media 😮. This focus is supported through digital marketing and commerce features.
Kentico has a good explanation of the difference between a CMS and DXP.
🗺 Making a Path: Setting Up Xperience By Kentico
Now that we understand what a DXP is, let's look at how we can get started with Kentico's DXP - Xperience by Kentico.
First things first, if you want to follow along you'll need to setup Xperience by Kentico locally on your machine. Fortunately it's pretty easy 👏🏽!
The setup documentation is straight forward and driven entirely by .NET tooling we've come to love - the dotnet
CLI and NuGet packages.
We will need a valid license during the setup process and we can acquire one by signing up for an account in the Kentico Client Portal and generating a new evaluation license (it's really simple!).
There's a full developer tutorial which walks us through setup, configuration, content modeling, and page creation 🧠.
I've already created several demo projects and I can say with 100% confidence that this product is ready to explore and try (even if it doesn't have all the features we might need for production).
Some of the other Kentico MVPs have already started exploring and building sites on Xperience by Kentico!
🌍 Bridging Two Worlds: The Return of the Single Application
A big change in the overall architecture of Kentico Xperience applications came in Kentico 12 MVC, where the "Presentation" application (ASP.NET MVC 5) was separate from the "Administration" application (ASP.NET Web Forms).
This separation allowed the Xperience product team to evolve the features of the Page Builder quickly 🏃🏾♀️ without being limited by the Web Forms technology of the administration application.
This pattern continued with Kentico Xperience 13, which now supports ASP.NET Core for the "Presentation" application while the administration application still runs on the well established ASP.NET Web Forms technology.
With Xperience by Kentico we have a return to the classic single-application architecture we're (maybe 🤷🏽♀️) familiar with from years past. Since the administration has been rebuilt using the same ASP.NET Core technology that the presentation (live) site uses, they can be combined into a single application 🙌🏼.
In fact, the administration application is delivered as a single NuGet package 🧐 that can be added to your ASP.NET Core presentation application.
Not only is this a return to the convenient single-application model, but it's a far simpler architecture than any previous version of Kentico/Kentico Xperience 🤩.
This is great for developers because it speeds up their ability to build and test custom features, and deploy the application. This is also a win for administrators and marketers because the technology is simpler to understand and there are fewer prickly "gotchas" 🌵 with a single application.
🌞 Live Site Only Deployments
The single application deployment model is great for simplicity, but what about when we want to scale out the "live" site that visitors actually see 🤔?
- Do we have to scale out the administration functionality?
- If we want to limit exposure of the administration features for security do we have to deploy them to make the live site work?
While two applications did increase complexity, it also gave us an appealing answer to those two questions (hint: nope!)
Fortunately, the folks at Kentico realized that some teams would want to opt-in to deployment complexity for the benefit of flexibility and made sure to support a dual application deployment strategy in Xperience by Kentico 🤓.
From the docs:
The Xperience administration interface (installed via the Kentico.Xperience.Admin NuGet package) and all related customizations can be removed when publishing to production.
Awesome 💪🏿!
🎨 Delightful Designs
The original spirit of the designs of the Web Forms administration application came about in Kentico 8, and while the UI has been refreshed since then, the core patterns are still in use in Kentico Xperience 13.
Xperience by Kentico has taken another leap forward by completely rethinking the design of the administration interface from the ground up.
Many of the same ideas are there, so it will quickly be familiar to anyone exposed to Kentico's products from the past several years, but the interface feels less cluttered, more intuitive, and more dynamic 🍃.
Previously there were limitations on what could be accomplished with the design (and technology) path the administration application was on. Freed from those limitations, the product really shines and we get to see a strong, forward looking UX vision.
These updates aren't limited to the navigation and dialogs that have been revamped across the UI. They can also be seen in the Page Builder which has evolved in some elegant ways when compared to Kentico Xperience 13.
We can even see the beginnings of a mobile-friendly administration UI. I know many of us don't plan to author content or administer a site on our phone 🤳🏻, but you never know when you might want to check on a marketing automation workflow or add a new user to a site while you're waiting in the checkout line at the store or at your kids' sporting event.
Here's some additional screenshots of design changes in the product:
🚀 Fast and Modern - React and ASP.NET Core
The administration UI is now built on React and ASP.NET Core which means it's fast 🚀!
If you'd like to watch a video to see what it's like to use Xperience by Kentico, check out this one here:
Since the administration UI is integrated into an ASP.NET Core through a NuGet package, it has very little impact on application startup time 🏁.
This is great for developers when iterating through a code > build > test cycle, and it's great for stakeholders because a faster application means faster builds and deployments which enable faster time to market 📈 with new features and experiences!
These new technologies might seem a little intimidating 🤯, especially if we're used to the no-code admin customizations of previous versions of the product.
Thankfully, the new technology can be adopted gradually (as needed) and Kentico provides helpful 🤝🏽 guidance in setting up our local development environment for Admin UI customizations.
The docs also provide some detailed examples of working with React to build custom Form Components which can be used to build any kind of administration experience we can dream up!
With the React-based libraries for customizing the Admin UI being delivered through npm, we can explore the tools and dependencies used to build them 🧐.
At the time of this writing, the product is using the latest version of React - 18.2. Nice 💪🏾!!
📰 Always Fresh - Weekly Updates
One of the most exciting changes for Xperience by Kentico, compared to all previous versions of Kentico's flagship products, is the speed of iteration!
New versions of the Xperience by Kentico are being released nearly every month (with bug fixes being released every week).
Because this breakneck pace 🏎 is a lot to keep up with, the documentation team has been maintaining a changelog for all of us, so we can easily stay up to date with all the latest developments.
Just take a look at the various versions of NuGet packages that have been released over the past 3 months to get a good idea of the tempo Kentico has taken for this product.
They are wasting no time 😅!
Before you start wondering "If I decide to create and Xperience by Kentico project, how do I keep it up to date with all these new releases?", head on over to the docs where a full set of (fairly simple) instructions already exists to get your project on the latest version.
Since Xperience by Kentico relies of standard .NET tooling and NuGet packages, keeping projects up-to-date is far simpler than using the Kentico Installation Manager in the past.
(It can even be automated and made part of our CI/CD process! 🤩)
✈ Heading Home: What's Next for Xperience by Kentico?
For most developers used to Kentico's previous products, the progress being made in Xperience by Kentico is both exciting 🥳 and intimidating 😬.
One key question stands out - how do we get our existing applications onto Xperience by Kentico? Thankfully, Kentico is already working on that and has information about migrations in their documentation.
Expect this migration guide to grow over time as new features are added to Xperience by Kentico and expect the migration toolkit repository to evolve as more use-cases are supported.
So, what about those upcoming features? What are they?
To find out, we just need to browse Xperience by Kentico's roadmap 🗺.
Given the pace at which the team is iterating and enhancing this product, taking a quick glance at plans for the near future every few weeks is probably a good idea!
Which parts of Xperience by Kentico are you most excited about?
Have you tried it out yet?
If not, what's your biggest roadblock?
Answer in the comments below...
As always, thanks for reading 🙏!
References
- Xperience by Kentico docs
- Difference between CMS and DXP
- Xperience by Kentico setup
- Evaluation License
- Xperience by Kentico developer tutorial
- Xperience by Kentico Technology Highlights
- The next generation of Xperience by Kentico is coming
- Updating to the latest version of Xperience by Kentico
- Kentico 12 MVC development architecture
- Kentico 12 MVC Page Builder
- Kentico Xperience 13 development architecture
- Xperience by Kentico administration development
- Xperience by Kentico dual application deployment
- Kentico 8 user interface
- React.js
- What is ASP.NET Core
- Xperience by Kentico local environment setup
- Xperience by Kentico React Form Components
- Xperience by Kentico @kentico/xperience-admin-components package
- Xperience by Kentico changelog
- Xperience by Kentico NuGet package versions
- Xperience by Kentico upgrade instructions
- Kentico Installation Manager
- Kentico Xperience 13 to Xperience by Kentico migration guide
- Xperience by Kentico migration toolkit repository
- Xperience by Kentico feature roadmap
We've put together a list over on Kentico's GitHub account of developer resources. Go check it out!
If you are looking for additional Kentico content, checkout the Kentico or Xperience tags here on DEV.
Or my Kentico Xperience blog series, like:
Top comments (0)