The .NET ecosystem is giving me a lot of confidence these days. I've been on this rollercoaster since .NET Core 2.x and don't think I will be getting off any time soon.<p>We recently upgraded from 3.1 to 6, which was a total non-event. The code base that was around for Core 2.x is still the same one we have today. Some substantial changes made to the web interfaces and hosting, but nothing in the business logic or data models was impacted.<p>We currently use Self-Contained Deployments to Windows machines, but there are only 2 minor methods stopping us from using a Linux image as well. Looking for a really good reason to make the jump, but I can't justify it to the business yet.
Microsoft seems like "a house divided" when it comes to opening .NET. They open source the core language, but have different proprietary dev tools (debugging for one) you need to pay for.<p><a href="https://isdotnetopen.com/" rel="nofollow">https://isdotnetopen.com/</a> goes over these in more detail, but I'd rather use an ecosystem where I don't have to worry things will be progressively locked down in the future.
Meh. In the end, Microsoft <i>will</i> betray those who trusted it. Long term, better just to pretend it does not exist and never, ever depend on anything with Microsoft name on it.
As a recruiter, it is clear that the most successful languages still growing in popularity in 2022 are:<p>C#<p>JavaScript/TypeScript<p>Python<p>Edit: golang is small in terms usage but is on the way up definitely<p>All the rest are in decline or remaining at a constant level of acceptance.<p>So if hiring / recruiting is important, use C# or TypeScript or Python.<p>If you want to cause yourself deep hiring/recruiting pain, build your systems with Ruby or use lesser known frameworks and languages such as Erlang/Elixir.<p>C# seems like an excellent choice for Linux based development - it's mature, there's a vast talent pool, theres vast knowledge and community resource for getting problems and questions answered.
I've recently been working with a C# app that's based on a nearly out of support .net 3.X version I think. It's fully inherited from a tech partner, but we have free reign to modify it as needed. I was excited to try and port it from a Windows only older .net app to .net core 6, but unfortunately too much of it doesn't have a simple to port to equivalent in .NET 6 and it would require us to completely rewrite it. This is all because it's a SOAP client, so I'm happy to forgive Microsoft for not spending too much time there. We don't have any control over that part either. It's the only thing in our entire infrastructure that runs on Windows and costs multiples of just about anything else we've got running, because of the Windows license. Huge bummer. We did get it streaming our data into BigQuery though, so that was cool to see work so well even on an older code base.<p>I think at this point my last real major gripe with .NET is Visual Studio. I've used it on and off over the years, but every time I get back into it, it's just so much mental overhead to try and understand how the hell things are organized. It's like jumping into an ice bath coming from JetBrains/VS Code land. Just really unpleasant, but I don't think I'll be able to get away from it with this older C# code base.<p>Somewhat unrelated. I really wish Microsoft would improve the install/packaging story for their C++ build tools on Windows. Trying to guide your IT department on how to install specific compiler versions to get TensorFlow/PyTorch and more importantly other less popular Python packages that require you to build from scratch on Windows has been a nightmare for so long. It's one of the things I mostly singularly dread dealing with. I really wish we could just enable the dev/compiler tool chain support without requiring admin credentials and have it be fully automated instead of trawling around the nightmarish Microsoft downloads site.
Had to fix a bug in a hobby app that uses .NET Core for its backend last evening. I miss working in this ecosystem daily (back to node and rails for work), it's such a pleasure. The best developer experience I've ever had. If anyone is hiring and you use .NET... :)
For reasons currently unclear to me, installing this seems to cause apt to remove Discord.<p><pre><code> The following packages have unmet dependencies.
libc++1-14 : Depends: libunwind-14 (>= 1:14.0.0) but it is not installable
libc++abi1-14 : Depends: libunwind-14 (>= 1:14.0.0) but it is not installable
E: Unable to correct problems, you have held broken packages.</code></pre>
I wonder if this opens the door for .NET applications to be included in Ubuntu? Neither this blog post nor Ubuntu’s [1] mention that as a possibility.<p>Just thinking from a Ubuntu package level, where libraries live in packages separate from executables, it might be possible to create library packages using the result of ‘dotnet store’. Then executable packages could reference them when running ‘dotnet publish’. [2] That way multiple executable packages could share common libraries.<p>Replicating the packages of a language package manager (Nugget in this case) into a system package manager (apt in this case) is probably not fun. You will end up with dependency nightmares or one system package per version of Nugget package. So maybe it’s not worth doing.<p>[1]: <a href="https://ubuntu.com/blog/install-dotnet-on-ubuntu" rel="nofollow">https://ubuntu.com/blog/install-dotnet-on-ubuntu</a><p>[2]: <a href="https://docs.microsoft.com/en-us/dotnet/core/deploying/runtime-store" rel="nofollow">https://docs.microsoft.com/en-us/dotnet/core/deploying/runti...</a>
It has been rumored for years that Microsoft might acquire Ubuntu. This is an interesting move though not proof of any such future merger. All of that said, it would be nice if Microsoft had the same level of cooperation with Fedora and another distro or two as well.<p>(And where the hell is support for .NET Core on FreeBSD???)
Does it come with telemetry enabled by default[1] as the Microsoft binaries do? Or does the Ubuntu version either remove that code or make sure to set the DOTNET_CLI_TELEMETRY_OPTOUT environment variable everywhere?<p>If "Canonical and Microsoft are committed to working together", probably the former.<p>[1] <a href="https://docs.microsoft.com/en-us/dotnet/core/tools/telemetry" rel="nofollow">https://docs.microsoft.com/en-us/dotnet/core/tools/telemetry</a>
Question for the experienced .net folks - how is the dev experience of .net on linux vs .net on windows? Is it smooth or clunky?<p>Pretty cool and interesting that a big linux vendor is on board with .net.
Seems like great news but I wonder if these releases help the .NET ecosystem in a meaningful anyway. Almost all .NET developers I know still use Windows even on cloud.
A fully devoted Linux developer here that never touched Windows' ecosystem(.NET, Visual C++, win32 api, all those), any reason for me to jump on .NET? where does this runtime run(x86/windows, now linux, what about MacOS, and embedded systems), and what's the selling point(web framework in c++ like language? a better c++/java?)<p><a href="https://learnxinyminutes.com/docs/csharp/" rel="nofollow">https://learnxinyminutes.com/docs/csharp/</a><p>it looks more like Java than c++ to me.<p>On a different note, I will state this again: I think microsoft will acquire Canonical one day.
I still feel Microsoft development experience is pretty poor and has been sometimes hostile in the past, and still don't have much confidence nowadays.<p>Maybe because it's not a popular language, but the F# experience for me has been bad - tried it two years ago with F# 5, and recently with F# 6. The documentation in both cases was immature/inconsistent to broken.
I'll take the opportunity to jump on this thread to fish for recommendations on courses/guides to learning C# to be used with .NET - for programmers. I mainly see those that are way too simple or way too Windows specific.
I started writing mobile apps for windows phone when I was in high school (2013-2016), then it got killed years later… then when I got into college, they had this things called UWP (Universal Windows Platform) I wrote a simple kanji dictionary for it, then 2 years later, it got killed. After then I started sticking to Flutter and native iOS, got tired of being played like that lol
Canonical has been cuddling up to Microsoft for years. With the WSL collaboration (I know there's other distros but Ubuntu is the one in all the marketing buzz).<p>Tbh I'm surprised they haven't been acquired by Microsoft yet. They're clearly aiming straight for it.<p>I probably would do the same if I were them, too.
And still, there is no Visual Studio for Linux, and Microsoft is committed ( <a href="https://isdotnetopen.com/" rel="nofollow">https://isdotnetopen.com/</a> ) to ensuring that VSCode provides a second-class .NET experience to Visual Studio proper.<p>Seems best avoided by any company which is not already a Microsoft shop.