Jak moc je vlastně .NET používán jinde než na Windows? Možná v kombinaci s Docker? Jinak co znám všechny lidi co vyvíjí v .NET tak to vždy provozovali na Windows.
Pár aplikací jsem na tom viděl, ale vždycky šlo o .NET Core, v Mono jich bylo opravdové minimum. S otevřením .NET Core to spousta mých zákazníků začala používat pro vývoj do cloudu, kde nemusí platit za licence pro Windows.
Například to má rád ekosystém okolo self-hosted multimédií, takže např. Jellyfin nebo Emby streaming servery, různé součásti arr-stacku (radarr, sonarr, ...) sloužící k automatizaci získávání multimédií, atd.
Za tohle může hlavně Microsoft. Třeba tady: https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet-framework
Takže .NET Framework je mrtvý a vyvíjí se jenom .NET (který se původně jmenoval .NET Core) a obojí běží na platformě .NET.
28. 8. 2024, 13:18 editováno autorem komentáře
Hodne ;-) nebot tak lze psat multiplatformni aplikace ... dneska Dot.NET_CORE ... ktere bezi jak na x86_64 tak na 32 a 64 bit ARM.
Ano hodne docker, proc ? je to zpusob, jak spustit aplikaci napsanou puvodni widnows vyvojari na Linuxu - ktery je na serveru nasobne rychlejsi a stabilnejsi.
A tak se windows devel. naucili GIT a GITLAB , cqsto uz pisi veci v prikazove radce ;-) ale maji nastroje, co jim deplojuji vse do gitlabu a z tama se buldi image pro docker/podman nekde v OpenShiftu atd. ... jejich Rancher-Kubernetes clusteru ci cloudu.
Obecne nic proti, JAVA se taky stale pouziva ;-) ... zde je to vlastne podobne, mas nejaky bytecode ktery bezi v necem, co se chova jako JVM ...
Nemyslím že by motivací byl údajný rozdíl v rychlosti a stabilitě serveru. Tou motivací jsou peníze. Na hostingu můžete mít Windows za X CZK ročně, nebo Linux za Y CZK ročně. Pokud X>>Y (ne, to v Cčkové notaci), tak se vyplatí naučit třeba i tři příkazy na command line :)
U nás byla motivace pro (částečný) přechod na Linux taky peníze. Máme Windows i Linux servery a občas padne obojí. Běžně ve výkonu moc rozdíl není. Ale je fakt, že Linux má lepší plánovač vláken a na mnohajádrových serverech se některé naše služby na Linuxu chovají líp.
.NET na linuxu v containerech pro backendy se používá opravdu hodně. Prostě plnohodnotná konkurence Javy, Node.js, Golang, PHP ... pro backend služby. Dost často i výkonově lepší.
Typicky vývojáři dělají na Windows, zejména protože Visual Studio a buildují a nasazují pro Linux.
Ono už se to nejmenuje ani .NET Core, ale opět prostě jen .NET, čímž to ještě víc zamotali.
Btw. nově to umí i kompilaci do WASM a plnohodnotně tak může nahradit i client side Javascript aplikace - Blazor se to jmenuje. Právě tam a i pro mobily, se právě z původního Mona vycházelo hodně.
> Ono už se to nejmenuje ani .NET Core, ale opět prostě jen .NET, čímž to ještě víc zamotali.
Zvenku je to ten samý jazyk. Uvnitř pak různý bajtkód, kde ten pro <= 4.x je zamknutý pro udržování legacy aplikací. Features, které jsou jen syntaktický cukr a není potřeba změna bajtkódu, jdou i do .NET Framework. Plus Mono implementuje možná i něco navíc z .NET Core / .NET >= 5.x.
Zajímavý tip, díky. Máte s tím bližší zkušenost? Je to dostatečně kompatibilní? Jaké zajímavé projekty to používají?
Hledám stabilní prostředí pro client side programy, kde bych se obešel bez JS. Zatím mám pár věci v Brythonu.
Tak v Čechách Blazor pro client side GUI v browseru v C# používají hodně v HAVITu https://havit.cz. Tak se můžete poptat tam. Mají v tom produkční aplikace myslím, takže produkčně použitelné na web frontend to určitě je.
Existují i komerční Blazor UI knihovny.
Kompatibilní - jestli myslíte jako browsery - WASM je standard, který implementují všechny aktuální browsery, takže to běží všude - kromě starého IE pochopitelně :-)
MSHTML (aka Trident) je minimálně ve Windows 10, a bude dostávat bezpečnostní aktualizace do roku 2029.
Mě spíš zajímá v jakém poměru se to nasazuje na Windows vs Linux atp. On MS v podstatě nic jiného nezbývalo (s příchodem containerů a Kubernetes) než udělat .NET multiplatformní, protože jinak si troufám tvrdit, že by přišel velmi strmý pád.
U nás jsme část aplikací/serverů převedli z Windows na Linux, kde to dávalo smysl. Všechno programujeme v .NET (Core) a díky multiplatformnosti používáme oba OS. Na Linuxu jak pod Dockerem, tak přímo na železe.
Mono, implementace .NET Framework, se používá opravdu hodně např ve hrách (Unity, Godot). Díky tomu, že to není korporátní bastl, tak se snadno integruje.