Tak to je riadna sprostost. .NET od verzie snad 5 je dostupny uz aj na linuxe. Ak neverite, oficialny download link: https://dotnet.microsoft.com/en-us/download/dotnet/8.0
Ale chapem, sme na linuxovom fore, kde si stale potrebuju urcity jedinci kopnut do niekoho, bez dokazu, hlava nehlava, hlavne ze "vyjadril svoj nazor".
EDIT: tak dokonca uz verzia .NET Core 1.0 z roku 2016 je podporovana aj na linuxe: https://dotnet.microsoft.com/en-us/download/dotnet/1.0
15. 11. 2023, 22:49 editováno autorem komentáře
Kto sa silou mocou snazi pisat v C# veci kde pouziva seriovy port? Ja tiez nepisem webovy frontend a backend v Cecku ked su na to omnoho lepsie jazyky/kniznice.
Za druhe, ako uz pisal moj predrecnik, ste na linuxe, cize by ste si uz mohli zvyknut na to ze ak nieco nefunguje, bud si to fixnete sam, alebo na to urobite issue na githube/gitlabe (alebo rovno pull request s opravou)
Je to open source projekt ako kazdy iny, je plne vyvjany na githube aj s issues a celymi diskusiami, raoadmapov. Predpokladam, ze to odtetovane maju, lebo mne na linuxe seriovy port funguje. A u tej chyby bude nieco specifickejsie.
No ziadna firma nevie opravit chybu, ked jej o nej nik nepovie. Ani Miscorosft nema krystalovu gulu. Preto som vravel, ze to ma nahlasit ako issue, najlepsie s tym ako to zreplikovat a na akom HW a SW to nejde. proste ako v klasickom open source vyvoji.
Tak to jste neviděli kvalitu Azure Java knihoven od MS. To je něco šíleného. A i přes to, že je to open source, tak jim to tam rozhodně nechci opravovat. Protože oni na násilném tlačením Azure vydělávají obří peníze, tak by mohli investovat aby ty knihovny nebyly jenom kupa hnoje. Navíc jim platíme support atp. a i přes to tam jsou zásadní chyby, které nás velmi pálí i déle než rok a nic s tím nedělají (např. že Service Bus se po 10 minutách odpojí a při příští odesláním eventu prostě spadne místo aby se z toho zavřeného spojení zotavil a jejich řešení pro nás je obalit každé volání a zkusit ho znovu).
Jeden čas jsme měli opravdu hloupý nápad využít Cosmos DB a oni půl roku vydávali opravy v Cosmos DB (ne v knihovnách, ale přímo v databázi), které obsahovaly opravy jenom od našeho projektu. Takže opravdu nehodlám jim dělat, za ty prachy co to stálo, pokusného králíka. Pak nám došla trpělivost a přešli jsme na MongoDB a od té doby jsme se o to nemuseli starat, protože to funguje naprosto bez problému, dostali jsme školení zdarma a navíc jsme tím ušetřili polovinu peněz. Tolik asi tak k té kvalitě MS.
Tak 1. jsme používali obojí a obojí bylo šílený a vůbec to nebylo postavené na takovou zátěž, co jsme potřebovali. MS sliboval hory doly a pořád to bylo strašný.
Za 2. Cosmos DB poskytuje MongoDB API a není to jediné API co poskytuje, tam vůbec nejde o driver. Kromě toho nabízí víc API: NoSQL, MongoDB, Cassandra, Gremlin, Table, PostgreSQL. To, že to není ani alpha nikde nemají napsané a o rozdílech mezi MongoDB a Cosmos DB paskvilem jsme věděli a byli si toho vědomi, ale že je to až takhle šílený si nedokázal nikdo představit. Ono nám paradoxně to, že jsme použili MongoDB API pro Azure Cosmos DB nakonec zachránilo celkem zadek, protože jsme mohli v klidu přejít na MongoDB, takže zpětně to využití toho API hodnotím jako správné.
A ano nechápu jak někdo může tu šílenost Cosmos DB (s jakýmkoliv API) používat pro nic jiného než pro uložení pár záznamů.
Ještě dodám z jejich stránek:
Azure Cosmos DB for MongoDB makes it easy to use Azure Cosmos DB as if it were a MongoDB database. You can use your existing MongoDB skills and continue to use your favorite MongoDB drivers, SDKs, and tools by pointing your application to the connection string for your account using the API for MongoDB.
Což se evidentně ukázalo jako lež.
Jakou silou mocou? Seriovy port je soucasti .netu od verze 2 a mozna i driv a v dobach, kdy se za VS platilo a nebyl to "open source" to i spolehlive fungovalo. Silou mocou z toho ted nekdo dela open source se zamerenim na webove kraviny. Zacalo to ale jako jazyk a nastroje pro desktop a serverove veci (krom jjneho).
Ano, resim si to system vyres si sam. Na nejake hlaseni bugu se muzu vykaslat. Potrebuju veci vyresit, ne rict zakaznikovi ze musi pockat, az to nekdo opravi. Navic cokoliv sem kdy hlasil a i patche posilal do ruznych projektu, NIKDY nikdo nic neopravil a k patchum se ani nevyjadril. Nekde nad mymi bugy uz vic jak rok medituji. Oprava ale nikde. Nakaslat.
Ano, z .NETu je open source kram, plny chyb, blbych implementaci, kde nova vydani pridavaji nove veci, ale stare problemy neresi. Radeji stare veci urezou. Tak to nejspis dopadne i se seriovym portem. Neni cool, takze pryc s nim. To uz zname.
Za me vubec nechapu, jak tak hrozna implementace serioveho portu mohla projit pres jakoukoliv kontrolu kodu. Za me se bohuzel .Net "core" stal nastrojem, u ktereho si nemuzu byt nicim jisty. Jestli to nekdo vede jako zabavny skolni projekt, tak ok, ale na produkci to uz bohuzel neni.
Mna seriovy port na linuxe zivi, preco by sa mal c# pouzivat len na web?
Ano implementacia je hrozna, paradoxne v mone je ovela lepsia a pisana korektne s linuxovymi sys calls. MS implementacia na linuxe nevyuziva volania jadra na timeouty ale na vsetko vyrabaju c# Tasky, to mozno akademicky vyzera ok, ale velmi vytazuje CPU.
A koukal jste na ten bugfix, který na tom githubu je od předřečníka https://github.com/dotnet/runtime/issues/2379?
Z toho celkem jednoznačně plyne, že MS tohle konkrétně hodně zbastlil a vykašlal se na to. Přitom má vzor přímo na githubu, jak to udělat správně.
Že by o to nebyl žádný zájem z té diskuse také neplyne. Spíš naopak.
Trvá to 3 roky a stále to vypadá stejně.
Priority MS s .NETem jsou jinde a podobných problémů bude určitě více. Oni to hodně lakují na růžovo, to je celkem normální.
Ale i sám autor toho bugu tady dál říká, že kvalita .NETu na linuxu jako celku špatná není.
18. 11. 2023, 19:46 editováno autorem komentáře
Používam c# na Linuxe 10r, živí ma to, najskôr mono (malo veľké problémy so sieťovými vecami), posledné roky ms dotnet.
Áno, sériový port je hrozný, prepísal som ten z mona kde bol ok https://github.com/michaldobrodenka/Mono.IO.Ports-managed
Prepísana je aj celá nativna časť do c#, volám iba priamo libc.
Inak dotnet na Linuxe - mám skôr pozitívne skúsenosti. UI frameworky ale neriešim.
Multi kromě Linuxu.
Na 99% reagoval na .NET MAUI, ktorý na Linuxe nebeží.
Čo sa týka použitého slova framework. Bolo myslené, vývojový framework v bežnom zmysle. Ten pojem sa bežne používa pre Javu, Spring, alebo .NET. Keďže MS dal do názvu starších verzií slovo framework, tak je to trochu guláš. Oni potom v dokumentácií používajú slovo platform.
Musíte se na to podívat z druhé strany. Přijdete do MS prostředí, kde .NET je mnohem snažší integrovat, konkrétně třeba C#/WPF je určitě v mnoha prostředích lepší cesta než Swing nebo Java FX. Pokud se bavíme jen o serverových enterprise aplikacích, tak tam bych také asi preferoval Javu/Scala/Clojure, pokud to ale není nutné nějak integrovat s existujícím Windows ekosystémem. Krátce sem koketoval s F#, ale bohužel, když už nemusím sloužit jen Windows uživatelům, moje motivace je spíše malá, i když je to fajn jazyk. Pokud ale nastupujete do .NETu dnes a neznáte tu historickou bolestnou cestu k "multiplatformímu" .NETu, pak se divíte našim nářkům. .NET CLI je docela příjemná zkušenost, nemyslíte? Já osobně moc nedávám tu nestrukturovanost knihoven v porovnání s Javou a prefixování rozhraní IDoSomething, Ale to je asi detail.
16. 11. 2023, 19:15 editováno autorem komentáře
WPF pre linux nie je. A samozrejme Swing a JavaFX som uz tiez zavrhol koli React-u. Nie som z toho nadseny a kedysi som Swing velmi pouzival, mali sme aj vlastnu kniznicu ale dnes je ovela efektivnejsie vystrcit nejaky port a dat tam nejaky kus JS. Aj tak ma kazdy clovek browser stale otvoreny pripadne sa da embednut vsade nejaky HTML render component (aj do mobilu) :-|.
Trochu ma napriklad mrzi ze IntelliJ idea nevydal svoje Swing komponenty ako kniznicu. Je dostupne iba cele GUI (aspon ked som naposledy pozeral). To by bolo mozno celkom zaujimave ale tiez uz nieco riesia s WEB rozhranim takze asi vsetko nakoniec skonci ako nejaka aplikacie v browseri.
Len taka drobnost ohladom nazvoslovia. Od verzie .NET 5 Microsoft uz nepouziva slovne spojenie "framework .NET xx" ale iba ".NET xx". Pretoze posledne vydanie frameworku je vo verzii 4.8 co zhruba koresponduje s .NET Core 3.1. Novsie verzie "dot netu" su uz vsetky vo verzii Core. A kedze uz Microsoft nevydava aj framework aj core verziu, presedlali na pomenovanie bez tichto privlastkov.
PS. jedine miesto kde sa teraz mozte stretnut s nazvom framework je asi iba v entity framework.
15. 11. 2023, 22:42 editováno autorem komentáře
To uznavam :D Komunita ich za to tak trochu drbala ked zacali pomenovavat .NET 5 bez privlastku Core. Ale tak ono to neni jediny produkt ktory čachruje z nazvami/verziami - napr Angular tiez preskocil verziu 3, linuxove jadro tiez nema nejak jasne dany princip verzionovania na novu major verziu, je to skor na styl ako sa Linus vyspi, Windows preskocil verziu 9 a isiel na 10, a urcite by sa dali najst dalsie priklady
Skusal som novu templatu pre nativeAOT na vytvorenie jednoducheo API s databazou a ORM (DapperAOT), vysledna binarka mala len 12MB, co je menej ako ked som nieco podobne kedysi skusal z Rustom a actix a Mongo.
V novinkach by sa este zislo spomenut, ze oproti predzadzajucej verzii zvysili vykon serverovych aplikacii o 20-24%.
Blazor prichadza s hybridnym renderingom, server streamingom a dalsimi vylepsniami UX.