What does HackerNews think of Giraffe?

A native functional ASP.NET Core web framework for F# developers.

Language: F#

#2 in .NET
#2 in .NET
#4 in Laravel
5yrs ago I was roughly the same, depends how much you commit up front. I had minimal FP experience, so I bought "Domain Modeling Made Functional" [1] by Scott Wlaschin and used it for side projects / class libs first. Took about 6 months to experience the full mental shift.

Even if you eventually decide you can't commit a team to F#, it's highly worth it because doing at least one app in F# will vastly improve your C# and how you structure applications. [2] I personally just got addicted to the expressive power, it's hard to replicate with any other ecosystem given the full power of .NET under the hood. Giraffe is also a great place to start if you know ASP.NET Core. [3]

[1] https://www.amazon.com/dp/1680502549

[2] https://www.youtube.com/watch?v=US8QG9I1XW0

[3] https://github.com/giraffe-fsharp/Giraffe

Wrapping ASP.NET Core to be easier and more idiomatic with F# seems to be a common domain. Out of curiosity, did you look at any existing projects? If so, what was lacking from them that made you decide to write WebFrame?

Giraffe: https://github.com/giraffe-fsharp/Giraffe Saturn: https://github.com/SaturnFramework/Saturn Falco: https://github.com/pimbrouwers/Falco Wiz: https://github.com/samueleaton/wiz

You don't have to use asp.net directly in F# - there's been a long-standing library wrapping it in a more functional aesthetic with Giraffe: https://github.com/giraffe-fsharp/Giraffe

Not to discourage you or anything - always good to see alternatives. Personally, for FP web programming, the closer to the "your server as a function" ideal the better - so I'd prefer Giraffe in this case, for things like the router being an HttpHandler instead of being a property on the app instance. It's just way more intuitive from an FP standpoint and produces neater, more self-contained code, IMO.

Giraffe for sure:

https://github.com/giraffe-fsharp/Giraffe

As an added bonus you'll learn a very popular tool for sticking a web interface in front of your F# app.

The equivalent is fable [1].

The major difference I would say, is that you are required to use botnet alongside of node. (dotnet to compile to JS, then node to bundle with wepback or anything else)

Also, you can use the same language to build high performance backend with giraffe [2] (better than node). And build performant native application with fabulous [3].

There is an experimental typescript compilation. Which will be great, because it will make using F# less hostile in an environment where the winner takes all.

[1] https://fable.io

[2] https://github.com/giraffe-fsharp/Giraffe

[3] https://fsprojects.github.io/Fabulous

If you use F#, Fabulous[1] for mobile apps and Fable+Elmish[2][3] for web exist. I use Giraffe's[4] view engine for server-side HTML templating. And it looks like AvaloniaUI is going to have a similar style UI in FuncUI[5], but I'm not sure how active that is.

I'm not sure about any C#-focused efforts.

1: https://github.com/fsprojects/Fabulous

2: https://github.com/fable-compiler/Fable (transpiles F# to JS)

3: https://github.com/elmish/elmish

4: https://github.com/giraffe-fsharp/Giraffe

5: https://github.com/JaggerJo/Avalonia.FuncUI

If your writing a web app I've heard good things about Giraffe (https://github.com/giraffe-fsharp/Giraffe). It seems to even have a project template via the "dotnet" command to get a quick web app running. With F# I personally find Rider or VsCode better IDE's than VS as well. The workflow in F# is more like my experience with scripting languages than something heavy like Java/C#; you don't lose much by going to a more lightweight IDE and a lot can be done via CLI commands and text editing in .NET Core.
Best web frameworks:

https://github.com/giraffe-fsharp/Giraffe <- thin layer on top of ASP.NET Core

https://safe-stack.github.io/docs/intro/ <- slightly more opinionated but also .NET Core based.

I tend to mix F# and C#, Giraffe is great for sticking a slim web API or interface in front of .NET Core applications that use a combination of F# and C#.

I find .NET Core (particularly ASP.NET Core with F# via Giraffe - https://github.com/giraffe-fsharp/Giraffe) extremely good since Microsoft went all open source. I have multiple backends running in a GCloud Kubernetes cluster and develop all my stuff from a non Windows environment. Couldn't be more happy and the speed of ASP.NET Core with Giraffe is fantastic (~100K r/s).
(I work on F# at MS)

Do you remember the library? The landscape has changed dramatically in the past ~6 months with .NET Core 2.0 support. For example, I can use Fable[0] and Giraffe[1] with the .NET CLI[2] to build full-stack F# apps on my machine which runs .NET Core. The big remaining blocker for most people to just jump wholesale onto .NET Core and forget anything Windows-based is the lak of Type Provider support, but we're quite close to finishing that.

[0] http://fable.io

[1] https://github.com/giraffe-fsharp/Giraffe

[2] http://dot.net/core