Platforma .NET se v čase měnila stejně jako potřeby vývojářů, kteří na ni spoléhají. I my v Kentico jsme průběžně přecházeli na její nejnovější verze – udržovat produkt aktuální je pro nás samozřejmost. Díky tomu jsme při vývoji produktu měli k dispozici nové funkce a nebo vlastnosti jazyka C#.
.NET Core – čas rozhodování
V roce 2016 ovšem přišla zásadní změna. Microsoft představil .NET Core – novou vývojovou platformu, postavenou nezávisle na původním .NETu. Její první verze 1.0 neobsahovala nic moc zajímavého, proto ji vývojáři přijali spíše vlažně. Ale s postupem času se její možnosti zdokonalovaly, a tak rostl i zájem developerů.
U verze 2.0 a později ještě 3.0 už bylo jasno – .NET Core se stával stále více relevantní náhradou za původní .NET. Ruku v ruce s tím se čím dál naléhavěji nabízela otázka pro nás, vývojáře v Kentico.
Jak se k nové platformě postavíme?
Čekal nás krok ven ze zaběhaných pořádků. Pravda, průběžně jsme aktualizovali .NET, abychom mohli s každým vylepšením využívat všech jeho možností. Jenomže teď tu byla úplně nová platforma, vyvinutá nezávisle na té původní.
To už by neznamenalo jen prostou aktualizaci v použité infrastruktuře a vývojových nástrojích. Museli bychom se pustit do něčeho daleko většího – do přepisu desítek existujících knihoven do jiné technologie. I přes značnou podobnost programových rozhraní totiž obě platformy vykazují značné odlišnosti, zejména s přihlédnutím k vývoji webových aplikací. To je i náš případ v Kentico.
Obezřetné krůčky směrem k nové platformě
Rok 2018 teprve začínal, když jsme dospěli k rozhodnutí začít přepisovat první knihovny do .NET Core. Namísto přímého targetování .NET Core jsme však nejprve zvolili .NET Standard 2.0. Jedná se o standard, který specifikuje podmnožinu programových rozhraní dostupných v .NET Core i v původním .NET frameworku. Protože jsme začínali od obecných knihovních projektů, byl Standard přiléhavější volba než Core.
U webových projektů jsme potom už zvolili jiný postup.
Cílem přepisu v té době nebylo poskytnout co nejdříve hotové řešení, tedy všechny knihovny použitelné v .NET Core. Nejprve jsme potřebovali ověřit pracnost přepisu a podle toho potom upravit naše další plány. Cesta od prvních prototypů a přepsaných knihoven po investici do kompletního přepisu trvala nakonec několik měsíců.
.NET Core – nástupce .NET v Kentico Xperience
Na technologiích Microsoftu staví spousta firem. Společně s nimi jsme sledovali průběžná sdělení MS o budoucnosti původního .NETu i situaci okolo nového .NET Core. Jistě, ujišťování o pokračující podpoře zákazníků s původní technologií potěšila. Jenže jak čas ubíhal, začínalo být zřejmé, že nové funkce, nastavení a verze jazyka C# jsou zamýšleny především už jen pro .NET Core.
Byla už jen otázka času, kdy i my svým zákazníkům dokážeme nabídnout plnohodnotný framework pro stavbu webových stránek na nejnovější technologii. A tak jsme začali s přepisem.
Jak přepis knihoven probíhá
V Kentico máme desítky knihoven a několik webových projektů podporujících vývoj v MVC 5. Proto jsme se rozhodli pro přístup zdola nahoru – od nejnižších knihoven jsme začali přepisovat kód tak, aby byl kompatibilní s .NET Standard 2.0. Pro zachování zpětné kompatibility i nadále targetujeme .NET framework.
Každá knihovna má tedy dva výstupy – jeden pro novou technologii a druhý pro udržení zpětné kompatibility. Podpora existujících zákazníků je totiž pro nás důležitý závazek, ke kterému přistupujeme se vší poctivostí. Udržet binárně kompatibilní rozhraní v nejvyšší možné míře je proto pro nás zásadní.
Quo vadis, Kentico Xperience
Pěkně jsme s prací pohnuli. V současné chvíli už máme drtivou většinu obecných knihoven přepsanou a zaměřujeme se na ty vyšší. Které to jsou? Ty, které cílí přímo na podporu vývoje v ASP.NET Core (především v MVC 6). Tady už targetujeme přímo .NET Core, neboť zmíněný .NET Standard se pro daný typ projektů spíše nehodí.
A kam to všechno směřuje?
Na podzim 2020 původní verzi knihoven pro .NET opustíme, protože i naši zákazníci adoptují vývoj na knihovnách nových. A my tu pro ně celou cestu budeme.
Autor
Na Kentico se mi líbí, jak moc záleží na kvalitě kódu. Důsledně se řeší code review, refactoring i testy, aby se minimalizovalo množství chyb nebo návrhových nedostatků. Myslím, že takto by to mělo být samozřejmostí všude.
Více o tématu .NET Core
Projděte si další články na toto téma z naší dílny:
Hledáme nové kolegy/yně
Zajímá vás práce s nejnovějšími technologiemi a zaujal vás .NET Core? Máte štěstí, zrovna se poohlížíme po developerech do týmu Kentico Xperience! Podívejte se na naši aktuální nabídku pozic a ozvěte se nám. Třeba hledáme právě vás.
Zajímá vás, jak to u nás chodí, a chcete vědět všechno mezi prvními? Sledujte nás na Facebooku, LinkedIn nebo Instagramu.