BJ Patel is an expert user of Umbraco. Always keen to share hints and tips on getting the best out of Umbraco.
Difference between Umbraco 13 and Umbraco 17
| Feature | Umbraco 13 | Umbraco 17 |
|---|---|---|
| .NET Support | Runs on .NET 8 (LTS) | Runs on .NET 10 (LTS) |
| Backoffice UI | AngularJS-based (outdated) | Modern Web Components |
| JavaScript Support | AngularJS only | JavaScript, TypeScript, React, Vue (Lit recommended) |
| Performance | Good, but heavier admin UI | Faster, lightweight, optimized |
| Scalability | Small to medium websites | Cloud, Docker, load-balanced setups |
| Date Handling | Mix of local time and UTC | All dates stored in UTC |
| Extensions & APIs | Legacy APIs and Angular extensions | New extension system with clean APIs |
| Developer Experience | More legacy patterns | Modern tooling and cleaner architecture |
| Maintainability | Higher technical debt | Easier upgrades and long-term maintenance |
Detailed Comparison: Umbraco 13 vs Umbraco 17
1. Underlying .NET Support
Umbraco 13 is built on .NET 8 (LTS), offering solid performance and security. Umbraco 17 runs on .NET 10 (LTS), providing longer support, improved performance, and better future compatibility for enterprise projects.
2. Backoffice & UI Modernisation
Umbraco 13 uses an AngularJS-based backoffice, which relies on an outdated framework and results in a heavier admin experience. Umbraco 17 introduces a modern backoffice built with Web Components and modern JavaScript, resulting in a faster, cleaner, and more maintainable UI.
Umbraco 13 – AngularJS Example
<div ng-controller="MyDashboardController">
<h3>{{title}}</h3>
</div>
<script>
function MyDashboardController($scope) {
$scope.title = "My Dashboard";
}
</script>
Umbraco 17 – Web Component Example
<my-dashboard></my-dashboard>
<script>
class MyDashboard extends HTMLElement {
connectedCallback() {
this.innerHTML = "<h3>My Dashboard</h3>";
}
}
customElements.define('my-dashboard', MyDashboard);
</script>
3. JavaScript & Framework Support
Umbraco 13 backoffice customization is tightly coupled with AngularJS. Umbraco 17 supports plain JavaScript, TypeScript, and modern frameworks such as React and Vue. However, Lit is recommended because it aligns natively with the Web Components architecture used by Umbraco.
4. Performance Improvements
Umbraco 17 delivers faster backoffice loading times and improved runtime performance. The removal of AngularJS and adoption of lightweight Web Components significantly reduces overhead compared to Umbraco 13.
5. Scalability & Infrastructure
Umbraco 13 is well suited for small to medium-sized websites. Umbraco 17 is designed for cloud-native environments, containerized deployments, and load-balanced setups, making it ideal for large-scale solutions.
Example:
Umbraco 13 → Single-server setup
Umbraco 17 → Cloud, containers, load balancing
6. Date Handling Improvements
Umbraco 13 uses a mix of local time and UTC, which can cause scheduling and time-zone-related issues. Umbraco 17 stores all dates in UTC, ensuring consistent behavior across regions and deployments.
7. Extensions & API Changes
Umbraco 13 relies on legacy APIs and Angular-based extensions. Umbraco 17 introduces a new extension system with cleaner APIs, better separation of concerns, and improved long-term maintainability.
More details: Migrating extensions from Umbraco 13 to 17
Join Our Community
Your contributions help us continue creating valuable content. Consider supporting us by sharing our content.
Junagadh, Gujarat
Latest Blog Posts