Hacker News new | ask | show | jobs
by Kwpolska 571 days ago
> Developers can now build and deploy applications in C#, F#, and Visual Basic, using frameworks like ASP.NET Core and Blazor

Pretty sure you can't build an ASP.NET Core app in Visual Basic.NET (as it lacks support for some modern language features the framework needs).

1 comments

You can, but not 100%. With class libraries, so it has to be a mix of C# and VB.

F# is on the same spot, hence why I nowadays say CLR has changed meaning to C# Language Runtime, the whole mantra of Common Language Runtime and Common Language Specification compliant libraries are now gone.

Have you tried employing either in any recent time? Or is this just what you think is the state of affairs without contextual knowledge?
Good luck doing Blazor in straight F# or VB without C# glue code, does it answer?
There is, in fact, a package that does just that: https://github.com/slaveOftime/Fun.Blazor (and there are others IIRC)
> This is a project to make F# developer to write blazor easier

Now do the same in Visual Studio New Project, language F# or VB, without similar community projects.

I doubt that teams which employ F# are affected by default template selection in Visual Studio in any way, shape or form (if they use VS at all) :)

And companies which strictly choose only whatever comes out of box are unlikely to use F# anyway. The concept itself is incorrect and, I argue, must not be applied beyond ASP.NET Core and EF Core. There are no "first-party" frameworks in many other languages in either case so it is an unfair and flawed argument in the context of .NET.

You may be able to get away with writing some of your business logic in VB.NET, but the actual endpoints, and likely many things around it, must be C#.

F# at least is officially supported for ASP.NET Core, and has official ASP.NET Core templates in Visual Studio.

Try to use the Blazor ones without community helper libraries, both languages aren't without issues.

That is why I point that the change of meaning in C from CLR.