Umbraco 15 jest już dostępne!

Umbraco 15 zostało wydane 14 listopada 2024 roku. Ta wersja ze standardowym okresem wsparcia, oparta na .NET 9, koncentrowała się na wydajności serwisów z dużą ilością treści, sprawniejszym zarządzaniu wielojęzycznością, bezpiecznych integracjach między systemami oraz lepszych narzędziach dla redaktorów.

Umbraco 14 wprowadziło nowy backoffice i Management API, natomiast Umbraco 15 rozwinęło ten nowoczesny fundament. Do najważniejszych zmian należały: cache treści ładowany na żądanie i oparty na HybridCache, warianty na poziomie bloków, obsługa Client Credentials oraz nowy Rich Text Editor bazujący na Tiptap.

Ważna aktualizacja: Umbraco 15 osiągnęło koniec cyklu życia (End-of-Life) 14 listopada 2025 roku. Ta wersja nie otrzymuje już poprawek błędów ani aktualizacji bezpieczeństwa od Umbraco HQ. Jeżeli Twój serwis nadal działa na Umbraco 15, należy potraktować tę wersję jako punkt wyjścia do aktualizacji, a nie docelową wersję nowej migracji. Dla większości projektów planujących aktualizację obecnie właściwszym celem będzie Umbraco 17 LTS.

.NET 9 i C# 13

Umbraco 15 działa na .NET 9 i ASP.NET Core 9. W tej wersji Microsoft skupił się na aplikacjach cloud-native oraz wydajności. Wprowadził między innymi usprawnienia garbage collectora, optymalizacje środowiska uruchomieniowego, ulepszenia obsługi JSON oraz lepsze mechanizmy monitorowania i śledzenia działania aplikacji. ASP.NET Core 9 zapewnił również sprawniejszą obsługę zasobów statycznych i wbudowane generowanie dokumentacji OpenAPI.

Programiści mogą korzystać także z funkcji C# 13, takich jak kolekcje params, usprawnione mechanizmy blokowania, częściowe właściwości i indeksatory oraz szersza obsługa typów ref struct.

Nowsze środowisko uruchomieniowe nie sprawi automatycznie, że każda strona Umbraco zacznie działać szybciej. Zapewnia jednak solidniejszą podstawę do tworzenia wydajnych, obserwowalnych i łatwych w utrzymaniu aplikacji — zwłaszcza gdy kod, cache i infrastruktura hostingowa zostały odpowiednio zaprojektowane.

Wersja ze standardowym okresem wsparcia

W przeciwieństwie do Umbraco 13 i Umbraco 17, wersja 15 była wydaniem STS, czyli Standard-term Support. Wersje STS pozwalają wcześniej korzystać z nowych możliwości platformy, ale mają znacznie krótszy cykl wsparcia niż wersje LTS.

WersjaData wydaniaTyp wydaniaPoczątek fazy poprawek bezpieczeństwaKoniec wsparcia
Umbraco 1514 listopada 2024STS14 sierpnia 202514 listopada 2025

Wersja STS może być rozsądnym wyborem dla projektu rozwijanego w sposób ciągły, jeżeli potrzebuje on konkretnych nowych funkcji. Jest jednak mniej odpowiednia dla organizacji, która chce wdrożyć CMS i przez kilka lat nie zmieniać jego głównej wersji. Cykl wsparcia powinien więc być częścią decyzji architektonicznych i planowania budżetu, a nie problemem zauważonym dopiero po zakończeniu aktualizacji bezpieczeństwa.

Ulepszony cache z HybridCache

Jedną z najważniejszych zmian w Umbraco 15 była nowa strategia przechowywania opublikowanych treści w pamięci podręcznej.

We wcześniejszych wersjach NuCache ładował wszystkie opublikowane treści do pamięci już podczas uruchamiania aplikacji. Po zbudowaniu cache’u odczyt danych był szybki, jednak rozbudowane drzewa treści mogły wydłużać start aplikacji i zwiększać zużycie pamięci. Było to szczególnie widoczne w dużych serwisach oraz środowiskach wykorzystujących równoważenie obciążenia (load balancing).

Architektura NuCache z ładowaniem z wyprzedzeniem (eager loading) stosowana przed Umbraco 15

Umbraco 15 przeszło na model ładowania treści na żądanie. Zamiast od razu umieszczać w pamięci całe drzewo, system pobiera zawartość wtedy, gdy jest ona potrzebna. Mechanizm cache seeding pozwala programiście wstępnie załadować najważniejsze elementy, takie jak strona główna, ustawienia globalne lub inne często wykorzystywane węzły.

Umbraco 15 łączy lokalną pamięć podręczną poszczególnych serwerów z opcjonalnym, rozproszonym cache drugiego poziomu. Źródło: Umbraco HQ.

Microsoft HybridCache koordynuje lokalny cache aplikacji oraz — jeżeli zostanie skonfigurowany — rozproszony cache drugiego poziomu, współdzielony przez wiele instancji. Nowe podejście może zapewnić:

  • szybsze uruchamianie aplikacji;
  • mniejsze zużycie pamięci w serwisach z dużą ilością treści;
  • większą kontrolę nad tym, które treści są ładowane z wyprzedzeniem;
  • lepszą obsługę środowisk rozproszonych i load-balanced;
  • większą odporność podczas restartu instancji aplikacji.

Zmiana jest szczególnie wartościowa dla dużych serwisów, ale powinna zostać przetestowana na rzeczywistym drzewie treści i profilu ruchu. Zbyt szeroki cache seeding może ograniczyć korzyści z ładowania na żądanie, natomiast zbyt wąski może niepotrzebnie przenieść część pracy na pierwsze żądania użytkowników.

Warianty na poziomie bloków w serwisach wielojęzycznych

Zarządzanie wielojęzycznymi stronami staje się trudne, gdy każda wersja językowa musi posiadać niezależną strukturę bloków. Redaktorzy wielokrotnie odtwarzają wtedy ten sam układ, a struktury poszczególnych wersji mogą z czasem zacząć się od siebie różnić.

Block-level Variants w Umbraco 15 pozwalają współdzielić strukturę edytora blokowego pomiędzy językami, a jednocześnie różnicować wybrane wartości właściwości. Redaktor może więc przetłumaczyć lub dostosować zawartość bloku do lokalnego rynku bez ponownego budowania całej kompozycji strony.

Ta sama struktura bloków edytowana w języku angielskim i duńskim w widoku podzielonym. Zrzut z oficjalnej prezentacji Umbraco 15.

Dodawanie, przenoszenie i usuwanie bloków może być odzwierciedlane we wszystkich wariantach językowych. Pomaga to:

  • zachować spójną strukturę serwisów regionalnych;
  • ograniczyć powtarzalną pracę redaktorów;
  • zmniejszyć ryzyko pominięcia bloku w jednym z języków;
  • pozostawić lokalnym zespołom kontrolę nad tekstem, mediami i innymi właściwościami zależnymi od języka.

Ten model sprawdza się szczególnie dobrze w organizacjach korzystających ze wspólnego, globalnego layoutu oraz lokalizowanej treści. Jeżeli każdy rynek potrzebuje zupełnie innej struktury strony, przed zmianą istniejących Document Types należy dokładnie zaplanować sposób wariantowania.

Client Credentials dla bezpiecznych integracji

Umbraco 15 wprowadziło wbudowaną obsługę uwierzytelniania Client Credentials dla komunikacji między systemami. Integracje nie muszą już korzystać z interaktywnego logowania zwykłego użytkownika backoffice ani przechowywać jego hasła w usłudze działającej w tle.

Dedykowany użytkownik API w backoffice Umbraco 15.

Użytkownicy API mogą uwierzytelniać zewnętrzne systemy w Management API, natomiast API Members umożliwiają dostęp system-to-system do treści chronionych mechanizmem Members poprzez Delivery API. Przykładowe zastosowania to synchronizacja treści z inną platformą, automatyczne procesy publikacji, import danych produktowych lub bezpieczne udostępnianie chronionych treści innej aplikacji.

Jest to znacznie lepsza podstawa dla architektury headless i composable. Każda integracja może posiadać własną tożsamość i sekret, co ułatwia stosowanie zasady najmniejszych uprawnień, rotację poświadczeń oraz wyłączenie jednej integracji bez wpływu na konta użytkowników i pozostałe systemy.

Nowy Rich Text Editor: Tiptap

Tiptap stał się domyślnym silnikiem Rich Text Editora (RTE) w Umbraco 15. Zastąpił TinyMCE jako domyślny interfejs, ponieważ TinyMCE 6 osiągnął koniec wsparcia, a licencja TinyMCE 7 nie była zgodna z modelem open source przyjętym przez Umbraco.

Dla redaktorów sposób pracy pozostał celowo znajomy. Implementatorzy otrzymali natomiast nowoczesny interfejs konfiguracji, pasek narzędzi budowany metodą „przeciągnij i upuść” oraz punkty rozszerzeń dla własnych akcji i obsługi przesyłania mediów. Tiptap, jako otwarty i rozszerzalny framework, zapewnił również lepszą podstawę dla dalszego rozwoju edytora w ekosystemie Umbraco.

Konfiguracja paska narzędzi i rozszerzeń Tiptap w Umbraco 15. Zrzut z oficjalnej prezentacji Umbraco 15.

TinyMCE nadal był dostępny w Umbraco 15, aby ułatwić okres przejściowy. Projekty korzystające z niestandardowych pluginów TinyMCE, własnych przycisków paska narzędzi, stylów lub reguł wklejania treści wymagają jednak dokładnego sprawdzenia kompatybilności. Istniejącą treść RTE można zazwyczaj wykorzystać ponownie, ale nie należy zakładać, że niestandardowa integracja edytora będzie działała z Tiptap bez zmian.

Nowoczesny backoffice ma znaczenie przy migracji z Umbraco 13

W przypadku przejścia z Umbraco 14 do 15 wiele zmian miało charakter ewolucyjny. Przy migracji z Umbraco 13 lub starszej wersji większe znaczenie ma przebudowa backoffice wprowadzona w wersji 14 i rozwijana w Umbraco 15.

Nowy backoffice wykorzystuje TypeScript, Web Components, Lit oraz Umbraco UI Library. Komunikuje się poprzez Management API i zastąpił wcześniejszy model rozszerzeń oparty na AngularJS.

Dlatego migracja z Umbraco 13 lub starszej wersji powinna obejmować audyt:

  • niestandardowych Property Editors, dashboardów, sekcji i rozszerzeń drzew;
  • kontrolerów, widoków i serwisów AngularJS;
  • zewnętrznych paczek oraz wspieranych przez nie wersji Umbraco;
  • niestandardowych kontrolerów API backoffice i mechanizmów uwierzytelniania;
  • pluginów i konfiguracji Rich Text Editora;
  • procesu budowania, wdrażania i narzędzi frontendowych używanych przez rozszerzenia backoffice.

W przypadku części rozszerzeń wystarczy aktualizacja paczki. Inne będą musiały zostać przebudowane z wykorzystaniem nowego Extension API i Management API. Zakres tych prac często wpływa na koszt migracji bardziej niż sama aktualizacja bazy danych.

Czy warto dziś aktualizować serwis do Umbraco 15?

Nie. Nowy projekt ani migracja nie powinny dziś kończyć się na Umbraco 15, ponieważ ta wersja osiągnęła już End-of-Life. Istniejący serwis oparty na wersji 15 powinien zostać zaktualizowany do wersji objętej wsparciem — obecnie naturalnym celem długoterminowym jest najczęściej Umbraco 17 LTS.

Przed wyborem ścieżki aktualizacji warto sprawdzić:

  1. obecną wersję Umbraco i .NET;
  2. kompatybilność paczek i wymagania licencyjne;
  3. niestandardowe rozszerzenia backoffice;
  4. modyfikacje Rich Text Editora;
  5. konfigurację cache, cache seeding i load balancing;
  6. integracje korzystające z Management API i Delivery API;
  7. wielojęzyczność oraz strukturę edytorów blokowych;
  8. testy automatyczne, bazowe wyniki wydajności i proces wdrażania.

Krótka analiza techniczna pozwala poznać rzeczywisty zakres jeszcze przed rozpoczęciem prac programistycznych. Pomaga również oddzielić elementy, które można bezpiecznie zaktualizować, od tych, które warto zastąpić lub zaprojektować ponownie.

Możemy pomóc w aktualizacji aplikacji Umbraco

W CodeMasters Solutions zrealizowaliśmy komercyjne projekty Umbraco oraz migracje z wersji legacy, takich jak Umbraco 6 i 7, do nowoczesnych wydań opartych na .NET.

Możemy pomóc w zakresie:

  • audytu obecnego rozwiązania Umbraco;
  • analizy kompatybilności paczek i niestandardowego kodu;
  • przygotowania planu migracji, oceny ryzyka i estymacji;
  • przebudowy starszych rozszerzeń backoffice;
  • migracji treści i danych;
  • testów automatycznych, optymalizacji wydajności i wdrożenia;
  • wsparcia po zakończeniu migracji.

Jeżeli Twój serwis działa na Umbraco 15 lub innej niewspieranej wersji, aktualizacja nie jest wyłącznie okazją do wdrożenia nowych funkcji. To ważny krok w kierunku utrzymania bezpieczeństwa, łatwiejszego rozwoju i przewidywalnego utrzymania całej platformy.

Scroll to Top