Miroslav Holec
Premium

Podpora .NET 5 prodloužena do května, trable s release cyklem pokračují

Miroslav Holec   10. prosince 2021

Tento článek byl napsán v roce 2021. Vývojářské technologie se neustále inovují a článek již nemusí popisovat aktuální stav technologie, ideální řešení a můj současný pohled na dané téma.

Společně s verzí .NET 5.0.12 Microsoft prodloužil podporu frameworku .NET 5 až do 8. května 2022. Přidal tedy 3 měsíce k původní deadline, která byla nastavena na 8. únor 2022. Potíže s release cyklem tak dále pokračují.

Více času na migraci

Tento článek má dvě roviny. První je čistě faktická. Používáte-li .NET 5, dostáváte další 3 měsíce času na zmigrování na nový .NET 6. Tuto informaci Microsoft nijak dramaticky do komunity netlačí a kdybych neaktualizoval mé prezentace na školení, asi bych žil dále v domnění, že support skončí v únoru. Tím se dostáváme k podstatné otázce, zda je aktuálně nastavený release cycle efektivní.

image-20211210124709544

Rok sem, rok tam

Současná metodika je taková, že Microsoft každý rok v listopadu uspořádá slavnostně online konferenci DotnetConf a představí na ni veškeré vývojářské produkty. Když je lichý rok, dostáváme tzv. LTS verzi s podporou 3 let. Když je sudý rok, dostáváme verze deklarované jako GA, které mají v praxi podporu 15 měsíců. Papírově jsou to 3 měsíce od vydání nejbližší LTS verze a Microsoft s tímto datem může hýbat, jako učinil právě tento podzim.

Výhody jsou zřejmé: o nové verzi víme dopředu, všechny produkty vyjdou jako celek v jeden den a podstatné informace dostaneme v ucelené formě díky konferenci. Alespoň tak nám, vývojářům, bylo řečeno.

Potíže ročního Release Cycle

Realita je trochu jiná. Závazek vydávat novou verzi každý rok je zastaralý způsob publikace čehokoliv. Je to ve své podstatě agilní vývojářský přístup jednotlivých týmů zabalený do vodopádového modelu navenek. Vývojáři v Microsoftu nemají moc na výběr, protože jednotlivé produkty, jakkoliv se tváří samostatně, jsou ve skutečnosti neoddělitelné. Visual Studio, kompiler, runtime, C#, .NET, EF Core i různé CLI musí být v neustálé harmonii. Deklarace data vydání je tedy především korporátní závazek pro jednotlivé vývojářské týmy. Když vyjde .NET, potřebujete i kompilovat, tudíž potřebujete ideálně nové VS, musí to také na něčem běžet a bez CLI to něco nelze obsluhovat. Publikační model má řadu důsledků, které pro vývojáře nejsou nikterak příjemné.

Pekelný podzim

Podzim patří k oblíbeným měsícům pro vydávání vývojářských nástrojů. Je to zřejmě nejhloupější období, které mohou vývojáři dostat. Podzim je zpravidla před koncem roku hektické období, kdy není rozhodně čas na zkoumání nových fíčurek v .NETu. Budgety na vzdělávací akce jsou již rozebrané, takže není ani prostor na základě listopadových novinek efektivně přichystat vzdělávací aktivity. I kdyby prostor byl, lektoři už jsou stejně časově na pokraji svých kapacit. Vývojáři chtějí do konce roku spíše dokončit rozdělanou práci, než si hrát s aktualizacemi na projektu a nasazovat na své mašiny často zabugovaný software.

Lektoři nemají situaci o moc snazší. Když se podíváte do osnov školících středisek, téměř nikdo dnes neškolí .NET 6. Lektoři často pracují v různých firmách, sotva mají čas školit a podzim je to nejhorší období, kdy by měli věnovat čas investigaci, dekompilovat .NET kód a hledat skryté poklady nové verze, které zakomponují do svých osnov. Přestože se své práci konzultanta věnuji na full-time (= mám na to čas), udržovat školení aktuální mě dokonale vytěžuje.

Domnívám se, že posunutí supportu u .NET 5 je tedy důsledek právě špatně zvoleného období. Jak skvělé by bylo vydat .NET třeba v červnu před téměř celosvětovou okurkovou sezónou. O tom si zatím nechme zdát.

Tohle už nestihneme

Další potíž je, že nastavení datumu mění i myšlení z hlediska vydaných funkcí. Není to již o tom odladit a vydat určitou potřebnou funkci, ale jde jen o to, co ještě stihneme do 8. listopadu nabušit. V praxi to znamená, že když Apple přijde s novým čipem (M1), Microsoft v podstatě není schopen zareagovat a vydat long-term support verzi. Při nejhorším načasování bude vývojář čekat 2 roky. Well done!

Snaha o vydání velkého dev balíku nicméně selhává každý rok. Nejprve jsme se nedočkali LTS verze Blazor WASM v .NET 3.1 a tentokrát není součástí .NET 6 dlouholetá podpora MAUI. Byl vydán opět jako Preview.

"Můžeme to vydat všechno až to bude hotové, ale lepší bude listopad. Sice to ještě nebude hotové a použitelné, ale to vůbec nevadí."

Závěr

Microsoft nemá s hromadou svých produktů lehký život. Musí je udržovat v určité harmonii a vydávat je opatrně. Poslední roky byly divoké a nové funkce se vždy týkaly celé řady produktů. To Microsoft v podstatě nutilo do bezpečného ročního release cyklu. Chce-li Microsoft flexibilně reagovat na změny ve světě a potřeby vývojářů, bude se muset naučit své produkty vydávat podle potřeb světa, nikoliv svých korporátních problémů, které si s sebou táhne z minulosti. První výzvou bude dost možná vydání MAUI. Už zde se bude muset Microsoft rozhodnout, zda to bude chtít udělat v komorním pojetí, nebo čekat na pompézní event v listopadu 2022. Je také dost možné, že mu mezitím opět ujede vlak.