1. 23

    1. 15

      …and someone has already posted a comment on the site noting no mention of F# in the article. So I just had to login to up-vote the comment. I still use it on Linux for scripting.

      1. 7

        Here’s the article for F#: https://devblogs.microsoft.com/dotnet/announcing-fsharp-8/

        I have been flirting with using F# and Rider for my personal web development—I’m curious which editor or IDE you use for scripting. It’d be fun to rewrite my scripts in F# as well.

        My plug for F#, a truly unsexy workman-like functional programming language if ever there were one: For a long time, I wanted Haskell with better dev tools, and F# comes close enough for me — I am willing to write code in a more verbose language if it means I get a way better standard library and the ability to rename identifiers without using sed. Also, being able to run a single command that builds the project into a self-contained executable and then SFTPs it onto the web server is an awful nice way to deploy something. It’s like jar files done right. ASP.NET Core was a good rewrite, too, smashing the black box that was the old ASP.NET into composable libraries. Azure means Microsoft is tied to Linux for a while, so support is likely to last for another 5-7 years maybe at least? It feels like one of the few web stacks that ticks all the boxes for me.

        1. 4

          My plug for F#, a truly unsexy workman-like functional programming language if ever there were one:

          Curious how you can tag F# as unsexy? Its easily one of the nicest languages I’ve had the pleasure (yes, pleasure) of working with professionally. Coming from a C#, Java, Typescript background, F#‘s simplicity crushes most, if not all (Elixir I’m looking at you), of the competition. To label it as unsexy is a complete disservice , and I felt the need to speak up and defend this language. Its a shame its not more widely adopted in the industry and I’d loathe to allow your comment to perpetuate some kind of misunderstanding that it is verbose or unsexy.

        2. 3

          I’m curious which editor or IDE you use for scripting. It’d be fun to rewrite my scripts in F# as well.

          I’m not @foxyjackfox, but I use VSCodium and GNU Emacs just fine with Ionide. These are the required packages to have the LSP working on GNU Emacs:

          (use-package fsharp-mode :defer t)
          (use-package eglot
            :hook ((fsharp-mode . eglot-ensure))
            (use-package eglot-fsharp :defer t)
            (require 'eglot-fsharp))

          It also seems like they are planning a new LSP for F# 9? I can see some traces of it on the compiler’s GitHub Projects page.

        3. 2

          I use VsCodium with the Ionide F# plugin. Back when I wrote serious enterprise F# I preferred Visual Studio community edition for a better debugging and test running experience.

    2. 2

      Anybody have experience upgrading older .Net Framework apps to .Net 6, 7, or 8? Any good resources?

      I’m upgrading one at work, and I’ve been running into problems at every turn. I’d love to find out I’m missing something, and there’s an easier way.

      1. 6

        I am nearly done with migrating https://github.com/OSLC/oslc4net/commits/main to netstandard2.0/net6.0+ (build matrix uses 6.0/7.0/8.0rc2 at the moment). Targeting netstandard2.0 is a bit trickier but allows you to run that code both under .NET Framework 4.8 and .NET 5+, which is useful if you are a library author.

        Migration issues include:

        • switching from old NuGet that was an executable invoked by MSBuild to a native integration.
        • switching to PackageReferences way of managing dependencies.
        • switching from NET Framework assembly references to NuGet packages, eg for legacy System.Json (which is a stopgap anyway, requiring a future migration to System.Text.Json). This step is, of course, harder if you have some peculiar dependencies that were not migrated but instead deprecated.

        Some changes require editing the csproj files manually or creating a new project of the modern type and moving assets there, renaming it back afterwards. I should have better notes than a git log somewhere, which I can summarise, perhaps.

        In general, the migration went better than I expected once I got the hang of it. Quite importantly, you need to use Windows and Visual Studio IDE until you have a .NET5+ solution. Only then CLI/VSCode/Rider/macOS options will start working well.

        Edit: Some links from my notes:

        1. 1

          Thanks! Those are helpful!

    3. 1

      I’ll be curious to see the krausest numbers for the latest Blazor release with its wasm “Jiterpreter.” I rather suspect some .NET devs would love to use Blazor to rewrite everything JavaScript in C#. But last I checked, Blazor was about half as fast as a typical JS framework and obscenely heavy in weight and memory usage.

      1. 1

        Maybe not a high quality comment but this post reads like hilarious gibberish to me. A parody of tech naming styles. Blazor???

        1. 4

          It’s the best thing since sliced meatloaf, according to the C#-loving parts of our company. They want to rewrite everything into web apps and run everything that’s best suited to be native apps as webview-wrapped Blazor. I’d prefer actually native things, but don’t have much say in the matter.