Live data from Hacker News

Performance Improvements in .NET 6

devblogs.microsoft.com

231–240 of 256 posts

Re: Performance Improvements in .NET 6

#231
post #13

Earlier quoted context omitted.

For somebody who already knows how to program, and enjoys getting a comprehensive data dump, C# 9.0 In a Nutshell.

c# in Depth (4th edition) is also a good book for data dumping how things work in c#, though I think it only covers through c# 8.

I'm not a big fan of C# in Depth as a reference book. It follows a very chronological path (here's what was introduced in .NET Framework v1, here's what was introduced in version 2...), which can be interesting but I don't think it's a useful framing for most people.

Re: Performance Improvements in .NET 6

#232
post #40

.NET 5.0+ drops the 'Core' from the name. The whole .NET platform has improved incredibly within the past 5 years. Previously, to run a C#/.NET app you would need Windows, Visual Studio, and a license for IIS. These days, you can run .NET entirely on Linux, without ever touching Windows or Visual Studio. (Founder here) At Amezmo [0], we've supported .NET for sometime now, and recently added .NET 6 as an option for ou…

> Previously, to run a C#/.NET app you would need Windows, Visual Studio, and a license for IIS. Only the .NET Framework (for Windows) or Mono (for Mac and Linux) was required to run .NET apps. Since the early 2000s, development could be done with SharpDevelop (Windows) or its fork MonoDevelop (Mac/Linux) instead of Visual Studio as well.

Don't forget Notepad.exe +

    csc.exe /out:HelloWorld.exe /target:exe Program.cs

Re: Performance Improvements in .NET 6

#233

Earlier quoted context omitted.

I think it's really cool to see a successful example of modernizing a VB.NET codebase so that it too can play with the cool kids. I never really understood the disdain for VB.NET in the developer community, since the language has all kinds of neat little tricks up its sleeve. Kudos for pushing the counter-narrative.

This tool started off as Excel VBA a million years ago, and has made trips through VB6 on its way to VB.NET. The language is ... ehhhhh. I don't love it, but I don't hate it either. There are things I like, but occasional items that are awful. Sometimes at the same time. shrug I've been doing this too long to get worked up about language. Of the tools I own nowadays, VB.NET is somewhere in the middle of the pack.

> Sometimes at the same time.

This is how you know you're really working with something :)

A really great article by a friend of mine (and ex-VB.NET PM) is here. Really cool to go through it from time to time: https://anthonydgreen.net/2019/02/12/exhausting-list-of-diff...

Re: Performance Improvements in .NET 6

#234

Earlier quoted context omitted.

Honestly, I don't know why anyone would want to write Windows desktop apps anymore. The browser is the ultimate UI platform and you can do incredible things with it that will work outside of Windows too.

A huge part of .NET's value proposition is that you can do things that aren't possible inside the browser sandbox, and it's nice to be able to build UIs on top of that. I don't care if my UI ultimately gets rendered by a browser engine, but as things currently stand UIs that were relatively easy to build in WinForms/WPF/UWP are a bit of a pain with Blazor and friends. (and yes, I'm aware of F# and SAFE but every time…

I'm definitely a fan of SAFE, but also it's not hard to discount just regular 'ole JS/TS talking to a .NET backend. There's an incredible array of ecosystem libraries and tools that are much more mature than Blazor.

Re: Performance Improvements in .NET 6

#235

Earlier quoted context omitted.

A huge part of .NET's value proposition is that you can do things that aren't possible inside the browser sandbox, and it's nice to be able to build UIs on top of that. I don't care if my UI ultimately gets rendered by a browser engine, but as things currently stand UIs that were relatively easy to build in WinForms/WPF/UWP are a bit of a pain with Blazor and friends. (and yes, I'm aware of F# and SAFE but every time…

I'm definitely a fan of SAFE, but also it's not hard to discount just regular 'ole JS/TS talking to a .NET backend. There's an incredible array of ecosystem libraries and tools that are much more mature than Blazor.

Y'know, I've been building up my own "regular 'ole JS/TS talking to a .NET backend" solution lately: https://github.com/rgwood/MinimalWebView

It's nice and lightweight but the friction of .NET-JS interop is constant. Blazor Server (hosted in-proc and served up to WebView2) is the nicest solution I've found so far but I'm very open to other suggestions.

Re: Performance Improvements in .NET 6

#236

Earlier quoted context omitted.

F# is cool, but definitely not where to start. C# is by far, by far, by far the most popular .net language

C# is more popular but actually harder to learn IMO (although this does depend on your prior experience). C# is huge, but F# achieves more with fewer language constructs. F# can also be transpiled to JavaScript, which is a huge advantage.

I love F#, it's my #1 favorite language by far. But I code in C# at my day job and I gotta say, while I haven't exactly kept count, it's hard for me to agree that F# has fewer constructs. To be fair, much of that comes from the fact that F# has to do nearly everything C# does for compatibility, and have its own stuff too. It leads to a lot of "wait, which tool do I use for this problem?" questions for newbies.

* [] methods vs `type X with member ...` extensions

* let-bound functions vs static methods vs instance methods

* operator overloads vs let-bound operators

* curried functions vs multi-parameter functions

* modules vs static classes

* `exception MyError of string` vs `type MyErrorException(msg) inherit Exception(msg)...`

* polymorphic data: interface vs abstract class vs discriminated union

* Async vs Task

* seq { ... } computation expression vs chain of Seq module operations vs. LINQ methods

* Option vs Nullable vs Result

* Statically resolved generic vs runtime generic (`^a` vs `'a`)

* `for i = 0 to 10` vs `for i in 0..10`

* `upcast` vs `:>` and `downcast` vs `:?>`

* `function` vs `fun x -> match x with`

* .fsi files and the syntax for declarations in them

* `let mutable` and `* sprintf vs interpolated strings with "%d"-style format specifiers vs interpolated strings with FormattableString format specifiers vs String.Format

* Code quotations vs linq-style Expression>

I am very comfortable with F# today and feel I have a solid grasp on how I like to do things. But when I was introduced to it, I was a little overwhelmed, even though I already had familiarity with C# and with Haskell.

Re: Performance Improvements in .NET 6

#237

Earlier quoted context omitted.

XSLT/XPath/XQuery 2.0+ has little first party support in general, in all programming ecosystems that I can think of. I think the problem is that it's all much more complicated than the originals, and meanwhile XML has become legacy tech - not that it's going away anytime soon, but it's kind of like the COBOL of data.

.NET caters to the enterprise, or at least it used to. It's irrelevant what other ecosystems prioritise. What makes you say that XML is legacy tech? In the financial industry XML is used extensively. For example, FpML underpins a massive part of global finance, and it is a regularly updated standard. COBOL has been superceded by other languages; I'm not aware of any technology that can replace the XML-based FpML sche…

"Legacy" is perhaps not the best word to describe it; what I mean is that new technologies, protocols etc being developed generally avoid XML. So new products and libraries don't have to deal with it that much. And older ones are already written relying on older versions of XPath etc, so there isn't a strong incentive to upgrade there. Even if we're talking about libraries that are still getting updated to reflect changes in the standards.

The comparison with COBOL is fairly straightforward. There's still plenty of COBOL code running in prod around the world - but you don't see much clamoring to add new features to it.

Oh, and .NET doesn't really cater specifically to the enterprise these days. It was definitely true back when it was first released (remember all the emphasis on SOAP?), and for a while after. But .NET Core was an attempt to broaden its scope, and it very much succeeded.

I should add that I'm not particularly happy about this. I did a lot of XSLT 2.0 and XQuery 2.0 back in mid-00s, using Saxon, and I still miss many aspects of it. The new "best thing" seems to be JSON, but, while the syntax is certainly nicer, the tooling ecosystem around it is still nowhere near what we had back then.

Re: Performance Improvements in .NET 6

#238
post #105

Earlier quoted context omitted.

Hi, I'm on the .NET community team. Here's what we see as the happy path for .NET: - .NET website ( https://dot.net ) - High level info on different workloads, 5 minute in-browser tutorials, links to live shows and community - MS Learn ( https://aka.ms/mslearn-dotnet ) - Interactive tutorials with learning paths built from 30ish minute learning tutorials - Docs ( https://aka.ms/msdocs-dotnet ) - More in-depth documen…

Hey, thanks for your work, love .NET. I guess this is as good of a chance as I'm gonna get - the docs experience in non-anglosphere countries is dreadful, the website keeps pushing a localized version with absolutely garbled machine translations which are never going to be even passable for technical documentation. It's just a completely miserable experience without the "FFS MSDN" browser extension.[1][2] At least th…

Thanks for letting me know, I'll check in with friends in docs and try to get this sorted out. Sorry for the frustration.

Re: Performance Improvements in .NET 6

#239
post #23
post #11

Earlier quoted context omitted.

What are some of the libraries you're thinking of?

I'd like to see them to roll their own identity platform after IdentityServer went close source.

IdentityServer is not closed source, it is still Apache 2.0.

Re: Performance Improvements in .NET 6

#240
post #156

Earlier quoted context omitted.

Identity server is still open source, it just has a much more restrictive license and is paid. https://github.com/DuendeSoftware/IdentityServer

That's not open source. The term "open source" (in the context of computer software) refers to a specific set of criteria (with some disagreement on philosophy and minor details[1][2][3]) that include the right to modify, redistribute and to use for any purpose. The term originates from the open source movement which branched off from the free software movement. If open source meant simply that the source code is ava…

IdentityServer is still Apache 2.0, that has not changed.
Post reply on HN