[HN Gopher] .NET 6 Released
       ___________________________________________________________________
        
       .NET 6 Released
        
       Author : tonicbbleking
       Score  : 302 points
       Date   : 2021-11-08 16:30 UTC (6 hours ago)
        
 (HTM) web link (devblogs.microsoft.com)
 (TXT) w3m dump (devblogs.microsoft.com)
        
       | gmueckl wrote:
       | .NET 6 seems like a pretty good release with a few cool new
       | features.
       | 
       | But it's funny how the infographic in the post mentions MAUI for
       | desktop development, but the "desktop" keyword in the text is
       | referring to the WinForms github repository. I can't think of a
       | more concise statement about the state of GUI development on
       | .NET. I would really wish for less fragmentation and churn in
       | that space.
        
         | ognarb wrote:
         | Note that Maui is the name used by an older ui toolkit
         | https://mauikit.org/ and you probably should refer the one by
         | Microsoft to .Net MAUI to avoid confusion.
        
         | bob1029 wrote:
         | My strategy for dealing with Microsoft's regrettable desktop
         | GUI roadmap is to use the web as much as possible. .NET has an
         | incredible suite of features for pushing functionality to the
         | browser. Kestrel is one of the fastest web servers available
         | today. Developing directly against the AspNetCore pipeline has
         | a bit of a learning curve, but it becomes very intuitive once
         | you get over the DI/startup hard bits, and the performance you
         | can get with low level middleware is staggering (to me).
         | 
         | There are very few applications that simply cannot work in a
         | web browser in 2021. Even accounting for all the inconsistent
         | bullshit between browser vendors, you can still arrive at
         | something that works as far back as IE6 if you are conservative
         | with your footprint.
         | 
         | Do you really need flexbox, webgl2 and GPS navigation for that
         | warehouse inventory management application? Does _everything_
         | have to live the various app stores? Will your users revolt if
         | there isn 't some ceremonial download & install phase of using
         | your product?
         | 
         | I would go so far as to argue for deployment of a self-
         | contained webservice to the end users that could be accessed
         | via any arbitrary localhost browser before succumbing to the
         | Microsoft Desktop GUI framework du jour.
        
         | jmnicolas wrote:
         | Instead of chasing the next Microsoft fad, I've decided to try
         | AvaloniaUI for my next graphical app.
         | 
         | It looks mature enough now, and has a better chance of being
         | still useful in 5 years from now than WinUI or MAUI or whatever
         | is the latest GUI tech MS wants us to use.
        
           | exyi wrote:
           | It still has some rough edges, but I really like it since it
           | seems to be only .NET GUI choice compatible with Linux. I'm
           | bit sad that MS might suffocate the project with the Multi-
           | platform App UI (MAUI) which does not work on Linux :/
           | Fortunately, MAUI seems to have much more glitches than
           | Avalonia ATM
        
           | DonnyV wrote:
           | Same here, I least I know this will consistent across
           | platforms.
        
         | yread wrote:
         | They just keep recognizing that WinForms is the best. And you
         | can still use it
        
           | cm2187 wrote:
           | Do they have full support in .net 6? I believe in previous
           | version it was a partial/beta implementation. Hardly any
           | mention of winform in the announcement.
           | 
           | I am basically stuck on .net 4.8 because of that.
        
         | slownews45 wrote:
         | Replace ".NET" with "Windows" maybe?
         | 
         | AS a longtime original VB/Winforms developer - MS lost their
         | mind on desktop development and didn't look back.
         | 
         | They chased EVERY fad that could be chased. Silverlight, UPF,
         | XAML, WPF, Islands, MAUI. This is one of those things - imagine
         | if they'd focused on building an amazing and cross platform
         | (ultimately) toolkit with just a basic drag and drop designer?
         | Who cares about "styling" your app and all the rest of the
         | garbage.
         | 
         | How many lost years and peoplehours?
        
           | TillE wrote:
           | Also if you still need to support XP (even back when it was
           | still getting patches), forget it, Microsoft has no interest
           | in supporting you.
           | 
           | Even if _you_ want to use the latest and greatest UI, your
           | customers need to keep up too. Completely unworkable.
        
           | TYPE_FASTER wrote:
           | Not only lost productivity, but getting executive buy in to
           | invest in WPF was difficult after Silverlight.
           | 
           | Kinda joking, kinda serious, but all the Microsoft UI changes
           | in the last 10-15 years have definitely helped enterprise IT
           | adopt internal web applications. :)
        
             | spaetzleesser wrote:
             | Very true. I used to be a desktop dev but since Windows 8
             | MS has convinced me it's better to do web stuff.
        
           | moogly wrote:
           | IMO they need to realize the common denominator of all these
           | failed and deprecated frameworks is the very thing they've
           | desperately clung onto over all these false starts... and
           | that is XAML.
           | 
           | Get rid of it.
        
           | bmitc wrote:
           | > Replace ".NET" with "Windows" maybe?
           | 
           | There's Uno, Avalonia, Xamarin Forms, and MAUI, all cross-
           | platform. I think it's a mess no matter what.
        
             | to11mtm wrote:
             | In all fairness, at one point you could actually make sense
             | of things.
             | 
             | Unless I'm misremembering, until recently Avalonia was
             | still being touted as primarily a replacement for Desktop
             | WPF. I was shocked to see they're talking about mobile now
             | too. I guess it's somewhat expected.
             | 
             | Uno basically does what MAUI does. The main difference
             | being, Uno has been around for a while longer and something
             | you've been able to use for some time. I'm pretty sure they
             | had usable versions for well over a year before MAUI was
             | even announced.
             | 
             | In any case...
             | 
             | Microsoft's UI story is a non-starter until they get back
             | to the point that a user can:
             | 
             | - Click new project - Fill out the form - Get a Design
             | window, - Drag a 'Textbox' into the design window, - Drag a
             | 'Button' into the design window, - Double click on the
             | button, get taken into a generated event handler, and the
             | user can intuitively put in the right code (i.e. updating
             | the viewmodel with 'hello world'.) - Click 'run'
             | 
             | That's the Story that got an untold number of new
             | developers -enamored- with VB6, a language that got so
             | entrenched Microsoft had a hard time killing it. It brought
             | a number of developers into the world of C#, making it easy
             | for to write applications used at work that a whole team
             | could use. That's actually how I 'eased' into programming
             | at my first workplace; I wrote an app with a big ugly panel
             | and a bunch of big buttons with labels that would automate
             | tasks. Need a variation on a theme? Drag a new button over,
             | maybe do some light refactoring, test, publish, tell the
             | guys to restart the app. 10-15 minutes tops.
             | 
             | Sure, Eventually I had to go through a spaghetti mess of
             | callbacks and crappy generated code, but it was good
             | refactoring practice ;). And when I left the company,
             | someone else took over the code and now they are a software
             | developer too.
        
           | tonyedgecombe wrote:
           | This has been their modus operandi forever.
           | 
           | I've got to the point where I don't trust them on any of this
           | stuff. I target WinForms and if they ever decide to kill that
           | then I'll abandon the platform completely.
           | 
           | >Who cares about "styling" your app and all the rest of the
           | garbage.
           | 
           | One of the problems with WPF is the lack of styling of the
           | standard controls. It takes a lot of work to ensure your app
           | doesn't look like a turd.
        
             | int_19h wrote:
             | Why would you want to style standard controls in a desktop
             | app? They should look the way they look everywhere else in
             | the OS.
        
               | azinman2 wrote:
               | Windows has multiple competing standards in the same OS,
               | even from their own software distributed with the OS.
               | It's embarrassing.
        
             | LarryDarrell wrote:
             | I've been using MahApps.Metro[1] and MaterialDesignXAML[2].
             | Those two libraries have made me feel like sticking with
             | WPF until I retire in 5 to 10 years. I'm constantly getting
             | feedback from clients that the applications look so modern.
             | It's been a nice selling point as my niche is rewriting
             | VBA/VB6 engineering software.
             | 
             | [1]https://mahapps.com/
             | 
             | [2]http://materialdesigninxaml.net/
        
           | FpUser wrote:
           | >"They chased EVERY fad that could be chased. Silverlight,
           | UPF, XAML, WPF, Islands, MAUI"
           | 
           | Being a wise man I spared myself from this madness long time
           | ago;) When I need Windows Desktop App I use Delphi or lately
           | Lazarus that can do both Windows and Linux GUI from a single
           | source and produce native standalone executables.
        
             | int_19h wrote:
             | WinForms is still around, and works as well as it always
             | did. That or WPF are still the sanest choices for desktop
             | apps in .NET, IMO, so long as you're only targeting
             | Windows. And WinForms specifically resembles VCL a lot.
        
               | FpUser wrote:
               | I skipped .NET bandwagon for desktop completely.
               | Comparatively to Delphi there were exactly zero business
               | reasons for me to move my code or use .NET for new apps.
               | 
               | On a technical side there were no gains and numerous
               | limitations.
        
               | int_19h wrote:
               | On the technical side, the biggest productivity gain is
               | from having a garbage collector. Beyond that, language
               | features: while C# 1.0 started in a spot very similar to
               | Delphi (+GC), it evolved much faster - e.g. getting
               | generics in 2005.
               | 
               | But, yes, if you looked at it in 1.x days, it really
               | looked a lot like Delphi libraries with Java-like syntax.
               | So if you were already using Delphi, there wasn't much
               | point.
        
           | spaetzleesser wrote:
           | And the crazy thing is that all these frameworks were
           | basically incompatible variations of the same thing. Since
           | WPF nothing has really gotten better. Just different for no
           | good reason.
           | 
           | I will never bet on any new MS desktop development framework
           | anymore . It's either WPF or preferably web (even Electron)
           | for me.
        
             | orra wrote:
             | To be fair to UWP XAML, it's more efficient than WPF.
             | 
             | I don't mean because it's written in C++ instead of C#. The
             | render pipeline of WinUI is more efficient. It's really
             | interesting, but unfortunately I can't find the technical
             | blog I was thinking on.
        
               | spaetzleesser wrote:
               | That doesn't explain why they had to roll a new framework
               | instead of improving WPF. It may have been ok if they
               | provided an upgrade path but since Winforms they haven't
               | bothered with that either.
        
               | n8cpdx wrote:
               | It's more efficient but much less reliable. Like if you
               | change from light to dark mode, there's a 20% chance all
               | UWP apps that are open crash.
               | 
               | And as efficient as it is, it still can't resize windows
               | without flickering. It's worse than WPF or Win32. And
               | there still aren't proper APIs for configuring the
               | titlebar area.
               | 
               | I wish they focused on getting their vendor partners to
               | make efficient processors, rather than try to get all
               | windows developers to rebuild software to run on hobbled
               | ARM hardware.
        
           | vb6sp6 wrote:
           | are you still doing desktop work? if so, what are you using?
        
       | jekude wrote:
       | As a relatively new engineer (~2 years FAANG experience), there
       | seems to be a connotation around .NET.
       | 
       | Perhaps this is indicative of the larger Microsoft ecosystem, but
       | it feels like my peers at university and in the industry tend to
       | stay far away from .NET for personal projects, etc.
       | 
       | Why is this?
        
         | nick_ wrote:
         | A lot of people in the industry were turned off of Microsoft.
         | Also academics tend to have FOSS-adjacent philosophies. IMO
         | this really became a passion/pathology in the 2010s when it
         | became viable and quite easy to live M$-free.
         | 
         | Another aspect is that M$ tools are used by millions, it's just
         | that there's a selection bias for tried-and-true tool users to
         | just quietly make things work. "Blue collar programmer" comes
         | to mind. All the leading-edge churn, noise, and fatigue is the
         | corner of the industry that generates tons of blog posts and HN
         | links.
         | 
         | Most/all of their offerings seemed like legacy software/tools
         | once IntelliJ, big JS projects, and SPAs became such a popular
         | solution for software development on macOS and Ubuntu.
         | 
         | Now with VS Code, TypeScript, heavy dev in GitHub platform,
         | cross-plat .NET, vcpkg, etc... and generally very powerful dev
         | tooling, they actually have excellent offerings.
         | 
         | All that said, M$ clearly has a long road ahead of earning back
         | good will in "high" tech corner of the industry and Academia.
        
         | UglyToad wrote:
         | Perceived cool factor, I think.
         | 
         | Both .NET/C# and Java are the core of Dark Matter Development
         | [0]. They're what a huge chunk of developers and enterprise
         | actually use but they're not cool and they don't get blogged
         | about.
         | 
         | Obviously the history of EEE and Windows only legacy means
         | there's a lot of hostility to anything .NET specifically
         | amongst a subpopulation of developers. However I don't think it
         | sufficiently explains the lack of noise about both Java and C#.
         | 
         | It's a bit of a shame because it would be nice to have more
         | startup opportunities in .NET (or Java/Kotlin - rather than
         | slow, dynamically typed, error-prone scripting language du-
         | jour), there are some but they're a tiny minority.
         | 
         | It's hard not to get caught up in worrying about the future of
         | one's favorite language/ecosystem but then I think over time
         | the obvious benefits of the ecosystem will win people over, I
         | hope.
         | 
         | [0]: https://www.hanselman.com/blog/dark-matter-developers-the-
         | un...
        
           | lowbloodsugar wrote:
           | Not just "cool factor".
           | 
           | From your linked article: "Where are the dark matter
           | developers? Probably getting work done. Maybe using ASP.NET
           | 1.1 at a local municipality or small office. Maybe working at
           | a bottling plant in Mexico in VB6. Perhaps they are writing
           | PHP calendar applications at a large chip manufacturer"
           | 
           | i.e. in Cost Centers not Revenue Centers, which is to say in
           | jobs that do not pay well, and their management is trying to
           | figure out how to spend less money, not make more money.
        
           | damagednoob wrote:
           | > It's a bit of a shame because it would be nice to have more
           | startup opportunities in .NET
           | 
           | Even if you ignore the history of companies like MS and
           | Oracle what it comes down to is vendor lockin. If there's a
           | chance a vendor will pop up in 3 years time with a huge bill,
           | why take the risk when there are plenty of free alternatives.
        
             | svick wrote:
             | I think there is zero chance of that happening.
             | 
             | MS recently made one tiny decision that was unfriendly to
             | open source, it caused a huge outcry and a reversal within
             | 48 hours on a weekend. I can't even imagine what the
             | reaction would be in your scenario.
             | 
             | Besides, basically everything is open source now and you
             | can't put that genie back into the bottle.
        
           | vips7L wrote:
           | IMO Java/.NET just don't get blogged about _on this site_. If
           | you visit /r/Java, /r/dotnet etc, you'll actually find the
           | content about them.
        
             | atraac wrote:
             | The issue with /r/dotnet is that most people there are
             | almost fanatics. A single bad word about MS or any topic of
             | the month like MediatR gets you downvoted to oblivion.
             | There's almost no real discussion there.
        
               | magicalhippo wrote:
               | Not a new thing. I recall the same fanaticism on big C#
               | IRC channels back when .Net 2.0 was in beta.
        
         | ptx wrote:
         | One reason might be an awareness that Microsoft will be
         | Microsoft and they tend to do things like putting "telemetry"
         | in the CLI tools: https://github.com/dotnet/sdk/issues/6145
        
         | elorant wrote:
         | Probably because of licensing costs. Take for example SQL
         | Server. If you want to use it on a server with more than 128GB
         | or RAM you have to get the enterprise version which is licensed
         | per core and the cost is in the thousands per each core pair.
         | Sure, you get a discount, but still the price is steep.
        
           | jmnicolas wrote:
           | Which has nothing to do with .net. I work for a company that
           | won't invest a cent in extra software licenses or dev tools
           | but all my devs are in .net. For the database I use Postgres.
        
         | jasode wrote:
         | _> , but it feels like my peers at university and in the
         | industry tend to stay far away from .NET for personal projects,
         | etc. Why is this?_
         | 
         | It's leftover industry bias because of Microsoft's long history
         | of a _proprietary tech stack that costs money_ to use. Today 's
         | Microsoft of promoting open source VSCode doesn't really undo
         | the mindshare they lost in the 1990s and 2000s when the
         | internet got big. I wrote previous comment about this:
         | https://news.ycombinator.com/item?id=20256825
         | 
         | C#/.NET (including WinForms and ASP.NET) was instantly popular
         | with corporate enterprises but Microsoft never captured
         | emerging startups with their tech stack. E.g. 1990s startups
         | like Ebay, Amazon, Google, etc all used Java+MySQL+Linux
         | instead of C#+MSSQLServer+MSWinNT. And new high-profile open-
         | source projects like Hadoop, Cassandra, Elasticsearch, etc
         | chose Java instead of C#. I currently can't think of a famous
         | project where the canonical source is C#. I use iText C#
         | library but that was ported from Java. That's how it usually
         | evolves. A lot of C# libraries were actually Java projects at
         | first.
        
         | pleb_nz wrote:
         | I can't answer your question directly but I can add that what
         | I've noticed is frameworks and language seem to be very
         | regionally orientated. I've noticed on some parts Java seems
         | popular, other parts .net, and so on. It's quite interesting to
         | see differences in job ads across regions globally. In my
         | region, .net is used extensively and my friends do tend to use
         | it for personal projects.
        
           | Avalaxy wrote:
           | Definitely true. The netherlands for example is VERY
           | Microsoft oriented. I come across .NET everywhere.
        
           | jekude wrote:
           | I think you are correct. A couple things probably at play:
           | 
           | 1) Region (for example, my data point is from Boston)
           | 
           | 2) Framework language choice
           | (https://insights.stackoverflow.com/survey/2021)
           | 
           | 3) Ecosystem (i.e. Microsoft vs. Unix)
           | 
           | 4) Experience level (probably)
           | 
           | If anyone has any SF data points I am extremely curious.
        
           | int_19h wrote:
           | I once saw a world map annotating the dominant dev stack in
           | different regions, and yes, it's absolutely a thing.
        
         | [deleted]
        
         | orthoxerox wrote:
         | .NET 6 (or 5, or Core 3.1) is absolutely fine for personal
         | projects. The tooling is great, it runs on Windows and Linux,
         | the web stack is miles better than Spring Boot.
         | 
         | But if your personal projects are a stepping stone to a
         | programming job, then .NET has a monstrous legacy problem. In
         | 2002-2007 a lot of code was written using .NET in enterprises:
         | it was the best way to write a rich desktop application for
         | Windows and ASP.NET WebForms, while terrible, were an okay
         | stack for intranet websites, certainly not worse than PHP5
         | without Yii or Laravel. And if you were a Microsoft shop, you
         | got the best integration with MS SQL Server and (oh Lord)
         | BizTalk if you used .Net.
         | 
         | But then Rails and Google Chrome came out and completely
         | upended the webapp industry. Microsoft has been playing catch-
         | up ever since.
         | 
         | A modern startup could certainly use .NET 6 instead of the
         | framework of the month to write their world-shattering program,
         | but they won't, because .NET isn't cool. A lot of .NET jobs are
         | in stuffy enterprises where you likely won't be paid to write a
         | backend to a Svelte SPA in .NET 6, you will be paid to maintain
         | an ASP.NET WebForms 2.0 monster that uses WCF to talk to some
         | SOAP/XML webservices.
         | 
         | Of course, the same applies to JavaEE, but Java has a second
         | leg to stand on: people wrote FOSS in Java back when it was a
         | dirty word at Microsoft, so not everything in Java shops is a
         | terrible Spring/JavaEE mutant that has to be configured using
         | vendor-specific XML.
        
           | oaiey wrote:
           | Legacy exists in every company and platform older than some
           | years. You either do the business of brownfield jobs or not.
           | Every platform has their ugly history .. they just call them
           | differently: SOAP/WS, RMI, CORBA, 2to3, PHP4, jQuery,
           | AngularJS 1, ... . If a platform does not have history, I
           | would be worried that I am riding something which soon is the
           | legacy.
           | 
           | Microsoft does not play catchup in the web space. It is in
           | the pack for some years already. The stuff they do with
           | Blazor is at the upper end of the pack.
           | 
           | .NET, like Java, is not cool. It does not need to. It gets
           | the job done without any experiments in a very modern
           | platform. Doing a startup with boring tech is a thing.
           | 
           | So in summary: .NET is a very good choice for a beginner or
           | converts. It is fresh, you can do solid stuff, do the full
           | stack in one platform (web, desktop, apps, games, iot, ML,
           | ...) and there are plenty of jobs (greenfield or brownfield).
        
         | dustinmoris wrote:
         | .NET is a difficult platform for people to learn programming,
         | that's probably why. I've sum'd up everything that I think make
         | it quite hard for programming beginners in the article below:
         | 
         | https://dusted.codes/dotnet-for-beginners
        
         | jgilias wrote:
         | I can chime in on this one. I think it's very much a 'culture'
         | thing.
         | 
         | So, I'm a *nix guy. You know, running Sway WM, using Doom Emacs
         | as my daily driver, that sort of a thing. Learned vim to write
         | my thesis at night on an armchair where using the mouse was not
         | comfortable.
         | 
         | Not long ago I accidentally got involved with a kind of a .NET
         | consulting gig. Rather, I got involved as a domain expert to
         | help out some SaaS startup dealing with that domain, and it
         | just so happened that they were writing their thing in C#.
         | Before that I hadn't used C# at all, mainly dealing with Python
         | and C++. I liked the language, I thought the tooling on Linux
         | was pretty decent. The ecosystem was a bit lacking for the
         | domain in question, but it had other nice things going for it.
         | 
         | But there was definitely a bit of a culture clash with the .NET
         | guys. As an example, I did my domain thing in a pretty much
         | self-contained library. While writing it I needed something
         | that would be 'just data' without any additional
         | 'functionality' attached to it, so I naturally reached for
         | `struct`, given that it exists in the language. The .NET guys
         | asked why it was not a `class` instead. See, somewhere deep
         | inside they felt that not wrapping everything in a `class` is
         | wrong on some fundamental level. Later, I had to touch the rest
         | of the codebase a bit. At one point there was something I felt
         | was a 'one-line change', that took 12 files to edit. Mostly
         | routing calls through different auxiliary classes because
         | 'architecture'. And you know, I'm really not trying to diss
         | those guys. They were nice, capable, smart, productive, good
         | people. It's just that I was very evidently from a different
         | 'tribe'.
         | 
         | So, I personally like the direction that .NET is taking. I
         | think that this release has very nice things in it. Such as the
         | statically linked binaries, and compilation to webassembly. I
         | also believe that modern .NET has a nice value proposition in
         | being able to use your code across the board in many contexts
         | and settings. On top of that, both C# and F# are nice
         | languages.
         | 
         | But I won't be looking for .NET jobs, or putting that .NET
         | stint on my resume, lest some recruiter gets the wrong ideas!
        
           | svick wrote:
           | > While writing it I needed something that would be 'just
           | data' without any additional 'functionality' attached to it,
           | so I naturally reached for `struct`, given that it exists in
           | the language. The .NET guys asked why it was not a `class`
           | instead. See, somewhere deep inside they felt that not
           | wrapping everything in a `class` is wrong on some fundamental
           | level.
           | 
           | The difference between a class and a struct in C# is not the
           | same as between a class and a struct in C++. In C#, structs
           | can definitely be useful, but also have some gotchas, so
           | they're mostly used only in performance-critical parts of the
           | code.
           | 
           | If you visit a foreign tribe, I think you should listen to
           | the locals, unless you are really certain your way of doing
           | things is better in the local context.
        
             | jgilias wrote:
             | Yes, of course, I applied 'when in Rome' a lot.
             | 
             | In this case though, the struct usage was completely in
             | line with C# documentation regarding what structs are for.
             | I wasn't trying to write C++ in C#. But hey, I do agree
             | that code should be idiomatic to the particular community
             | such that it doesn't feel out of place! In that case the
             | struct did become a class.
             | 
             | Edit: Just re-read C# documentation on structs. Yes, it
             | absolutely made sense to have a value type there. As in,
             | the documentation mentions the use case almost verbatim.
        
           | fabian2k wrote:
           | The .NET people were likely right in your case. In C# structs
           | are allocated on the stack, that's why you'd use them. Unless
           | you have a specific reason you'd generally keep pure data
           | objects as classes and not structs.
           | 
           | And there can certainly be a culture clash, there is a bit of
           | a tendency towards more complex patterns in the .NET world.
           | But you don't have to do that, and MS is quite explicitly
           | adding versions with less boilerplate in this release, if you
           | prefer that.
        
             | jgilias wrote:
             | Just re-read C# documentation and remembered the situation
             | more clearly.
             | 
             | Basically, I consciously researched the differences between
             | class and struct in C# beforehand. And decided to use
             | struct as the 'thing' was a kind of a coordinate that would
             | be instantiated a lot for simple coordinate-space
             | transformations, so it made sense for it to actually be a
             | value type.
             | 
             | I should've been more assertive about it. Well, worst case
             | some periodic imports are taking somewhat longer than they
             | should.
        
         | lowbloodsugar wrote:
         | Even with my personal projects, I am wondering "What am I
         | learning?" and "How might this benefit me professionally?"
         | Other times I'm thinking "I just want this to work".
         | 
         | I started with C# with 1.0, back when structs inside structs
         | didn't serialize properly. I've written iOS apps with Xamarin.
         | I am a C# fan. I haven't used it professionally in a decade and
         | my last personal project was years ago.
         | 
         | When is C# the right idea? The only time is when the project is
         | entirely captured by the Microsoft ecosystem. There are plenty
         | of places where this is the case. Windows desktop applications.
         | Small business contract work who are still using Windows. Big
         | business IT who still use Windows. Opportunities to migrate to
         | Azure.
         | 
         | Where is C# the wrong idea? Everywhere else.
         | 
         | Writing for the best monetized mobile market? Swift.
         | 
         | Writing for cross-platform mobile market? Javascript.
         | 
         | Writing for cross-platform desktop market? Javascript. Maybe
         | Java if you have a history of it.
         | 
         | Writing for the cloud? Something linux first. Javascript,
         | Python. If you want a big GC language, why would you pick C#
         | over Java?
         | 
         | AAA games? C++
         | 
         | Not AAA games? Maybe C# with Unity?
         | 
         | In every category where C# is used (outside Microsoft captured
         | environments), there is a dominant solution which is not C#.
         | 
         | And that sucks. Because C# is awesome.
        
         | DeWilde wrote:
         | In my country and some European states .NET is far more popular
         | among devs than Java. Depends mostly on the region and what is
         | taught in universities. The two most popular unis in my country
         | all use teach .NET in the final years of studies and a lot of
         | professors are MS MVP's.
        
         | GiorgioG wrote:
         | I've primarily been a .NET Developer (a few stints using
         | Java/Python) since I finished college when the original .NET
         | first RTM'd (2001). I think today's Microsoft and the Microsoft
         | of 20 years ago are very different. Make no mistake about it,
         | they're still interested in making money first, but their
         | strategy has changed (it had to.) I think that old reputation
         | haunts them (and .NET) It's too bad, because it really is a
         | great cross-platform framework (at least on the server side.) I
         | will often try other languages/frameworks for my side projects
         | and I always go back to .NET. Maybe it's because of familiarity
         | or because I'm obviously more productive with it than
         | Java/JS/TS/Go/Rust/Elixir/Python/etc.
        
         | loudmax wrote:
         | In the late 90's and early 2000's Microsoft made a real effort
         | to prevent people from being able to choose any operating
         | system other than Windows. They've come a very long way since
         | then, but they still profit from the enormous amount of
         | software infrastructure still being developed today that's
         | Windows only. For example, they've made it easy to run native
         | Linux applications on Windows but they've made little effort to
         | run native Windows applications on Linux. Their old reputation
         | still haunts them and not everyone is convinced that they love
         | open source and user choice as much as they say.
        
         | ziml77 wrote:
         | I think .NET is still seen as if it's Windows-only or Windows-
         | first. If it does start being used cross-platform, I think it
         | will take a lot more time to get there, especially since Java
         | has been working just fine for the same sorts of projects.
         | 
         | And it's an especially hard sell given that it doesn't have a
         | good GUI situation. Support for Windows GUIs is back since .NET
         | 5, but the cross platform options are weak. It's very possible
         | when the MAUI library finally releases that we'll see more
         | people deciding to use .NET.
        
           | moogly wrote:
           | AIUI, MAUI does not include Linux support. There was a third-
           | party effort to get that going, but it's not part of MAUI
           | proper, and it looks somewhat moribund.
           | 
           | https://github.com/jsuarezruiz/maui-linux
        
           | atraac wrote:
           | > And it's an especially hard sell given that it doesn't have
           | a good GUI situation. Support for Windows GUIs is back since
           | .NET 5, but the cross platform options are weak. It's very
           | possible when the MAUI library finally releases that we'll
           | see more people deciding to use .NET.
           | 
           | Avalonia is great and recommended by most people that used
           | it. Or do we now only count Microsoft-made solutions and then
           | whine that .NET is not open to OSS?
        
         | adamredwoods wrote:
         | The package manager is not the best, it may have improved since
         | last I used it. Also .Net really needs Visual Studio (not VS
         | Code) to unlock its full potential.
        
           | solarkraft wrote:
           | VS holds .NET back, IMO. VScode (proprietary version) is less
           | powerful (especially on the refactoring side), but does have
           | a bunch of nice features.
           | 
           | Rider is the perfect replacement, though. Comes with all the
           | features of ReSharper (this is a big deal for many .NET
           | workflows, VS may have integrated many of its features, but
           | not all of them) and extensions and themes you can actually
           | use (IME with VS of the 50% that promise to do what I want
           | 90% are broken).
           | 
           | JetBrains just know what they're doing. They're clearly
           | prioritizing quality (something the VS team seems to be
           | actively working against).
           | 
           | Oh, and it's damn near 100% compatible with VS projects (one
           | thing I missed about 2 years ago were live updates of WPF
           | XAML, everything else just worked).
        
           | atraac wrote:
           | I'm using Rider professionally and it's miles ahead of VS.
           | Colleague of mine works on the same project using vscode
           | without issues as well. You don't need Visual Studio for
           | anything anymore...
        
         | solarkraft wrote:
         | History. Microsoft technology used to suck terribly for small-
         | time developers. It was always popular in the "enterprise"
         | (which also brings with it some extra architectural baggage),
         | but if you wanted to ship an app with it to consumers you
         | basically couldn't ... until Xamarin, Mono and dotnet core.
        
       | gmaster1440 wrote:
       | MAUI was the big release I was looking forward to most with .NET
       | 6, appears to be postponed.
        
         | hbcondo714 wrote:
         | > .NET MAUI will be released a little later than .NET 6
         | 
         | I wonder when, that could mean 2022
        
           | T-A wrote:
           | "We are now targeting early Q2 of 2022 for .NET MAUI GA."
           | 
           | https://devblogs.microsoft.com/dotnet/update-on-dotnet-maui/
        
         | WorldMaker wrote:
         | A lot of MAUI components are in .NET 6 they are just still
         | marked Experimental/Preview to give everything more time to
         | bake. If you want to start with MAUI in .NET 6 it sounds like
         | it is as good a time to start as any. The impression given is
         | that MAUI is retaining the Experiment/Preview designation in
         | .NET 6 not because it isn't "ready" (though that can be argued
         | both ways), but most specifically because .NET 6 is an LTS with
         | three years of support and MAUI is still moving fast enough
         | they aren't ready to commit it to LTS support.
        
         | spaetzleesser wrote:
         | No worries. There will be a shiny new successor to MAUI soon
         | and MAUI will be all forgotten.
        
       | polskibus wrote:
       | I wish they put more effort into round 10 version of C# .
       | Features presented will have minimal impact on productivity and
       | maintainability.
        
         | int_19h wrote:
         | C# is already evolving fast enough that quite a few devs are
         | uncomfortable with it. Speaking strictly for myself, I love
         | getting new language features faster - but there's a balance to
         | strike here for the overall good of the ecosystem. You don't
         | want to drive out all the people who can't keep up.
        
         | sedatk wrote:
         | I've been a huge proponent of file-scoped namespaces and it's
         | in C# 10. I think it'll improve code readability and
         | maintainability significantly despite being a seemingly minor
         | change. It's also in line with "minimal API" and "top-level
         | code" changes. I wrote about it here: https://ssg.dev/a-pledge-
         | for-namespace-directives-in-c-15a32...
        
         | ulugbek7 wrote:
         | I love C#10 for a few features. The language is developing
         | rapidly. And C# is already productive. I would like to see
         | fewer features in each release.
        
         | tonicbbleking wrote:
         | Discriminated unions is one of those features that everyone
         | talks about, but never gets championed. Wish C# 10 already had
         | this feature.
         | https://github.com/dotnet/csharplang/discussions/2962
        
           | throw868788 wrote:
           | Maybe try F#? I know it isn't always an option but if you
           | can, especially recently, its been quite productive to work
           | in.
        
           | keithnz wrote:
           | you can actually do them pretty easily in C# without language
           | support anyways.
           | 
           | for instance, the F# example from
           | https://fsharpforfunandprofit.com/posts/designing-for-
           | correc...
           | 
           | can be done in C# like https://gist.github.com/keithn/ceeeed5
           | f7eb567e1b2333747065d1...
           | 
           | almost similar amount of code, however, no exhaustive
           | checking. Not that I find that to be much of a problem, but
           | it would be nice
        
         | oaiey wrote:
         | Static interface members enabling generic math and other cool
         | features slipped the C# 10 quality bar. That is why the release
         | looks a bit thin.
         | 
         | But honestly, with file scoped namespaces and global usings ...
         | there is enough to see.
        
       | eatonphil wrote:
       | Is there a mature(!) webview library for .NET so I can build
       | cross-platform GUIs with HTML/JS/React but write the backend in
       | C#/F# and bundle that whole thing into a single file (not a
       | zip/something that gets extracted on run) for every platform?
        
         | abdusco wrote:
         | Hopefully with MAUI + BlazorWebview component:
         | 
         | https://devblogs.microsoft.com/dotnet/announcing-net-maui-pr...
         | 
         | Unless it gets rebranded again before it's usable.
        
         | WorldMaker wrote:
         | WebView2: https://developer.microsoft.com/en-us/microsoft-
         | edge/webview...
         | 
         | For instance, in WPF applications:
         | https://docs.microsoft.com/en-us/microsoft-edge/webview2/get...
        
           | eatonphil wrote:
           | If it is cross-platform it doesn't seem to be very mature
           | cross-platform:
           | https://github.com/MicrosoftEdge/WebView2Feedback/issues/645.
        
             | WorldMaker wrote:
             | Edge on Linux itself only just exited "beta" status a
             | couple weeks back, so yes Linux support on WebView2 is
             | behind other platforms and still playing catch up.
             | Hopefully should be corrected "any day now". Appreciate the
             | link to the tracking bug.
        
       | qwertox wrote:
       | For me Hot Reload is the most important feature, which will very
       | likely be a reason for me to move a bit from Python over to .NET,
       | which I haven't touched for 10 years. Back then I really used it
       | a lot (after moving away from OLE/DCOM/ActiveX), in C++, Managed
       | C++, C# and IronPython (no GIL!). I absolutely loved it, but it
       | was limited to the Microsoft ecosystem.
       | 
       | Yesterday, while randomly googling for "hot reload" I got aware
       | of the drama which went down around two weeks ago, when Microsoft
       | decided to remove this feature from the release, even after
       | including it in the previews.
       | 
       | Here is a good summary
       | https://www.youtube.com/watch?v=L9_pzDjw9HQ
        
       | abdusco wrote:
       | > In .NET 6, in-memory single file apps have been enabled for
       | Windows and macOS. In .NET 5, this deployment type was limited to
       | Linux. You can now publish a single-file binary that is both
       | deployed and launched as a single file, for all supported OSes.
       | Single files apps no longer extract any core runtime assemblies
       | to temporary directories.
       | 
       | This is a great! Now I can publish statically linked executables
       | and run it everywhere. I don't have to tolerate Golang and its
       | quirks just to have cross-compilation and static binaries, even
       | though they will be larger in size.
        
         | malkia wrote:
         | For an internal tool that reformats our code base, I've used
         | that to pack the `dotnet format` (although technically, not
         | allowed case, since it's a tool, and need to be run from an
         | "sdk" environment). It works for what we use it (whitespace
         | formatting, but not for msbuild/analysis - which is clearly
         | understood).
         | 
         | One thing though, is that native .dlls are still outside
         | (DetoursServices.dll for example in BuildXL). But still pretty
         | impressive what it can done. That, and the new embedded .pdb
         | (for .NET only, e.g. not native).
         | 
         | I wish "publish" was used more by the place I work for (most of
         | the folks would simply Release (F5) and store what's there in
         | p4). I've only recently discovered about "publish" and that is
         | after haven't worked with .NET for so long...
        
           | jmnicolas wrote:
           | Yeah "publish" is magical, I specifically jumped from .net
           | 4.8 to 5 just for this feature.
        
             | merb wrote:
             | msbuild had publish since at least .net 3.5 (when I started
             | to use the platform) it was just a little bit akward to use
             | tough. and of course dotnet publish is 1000x better than
             | msbuild with it's obscure syntax (which got way better in
             | .net5 and 6 with -p: syntax, etc.)
        
         | dsizzle wrote:
         | Kind of curious that Microsoft had a feature that was available
         | in Linux but not Windows, no?
        
           | exyi wrote:
           | Yea, funny :D However, the problem was mostly deploying
           | dotnet apps on servers which did not have dotnet installed.
           | Windows has .NET installed anyway, so there the problem did
           | not really exist
        
             | oaiey wrote:
             | .NET (Core) 5 is not installed on Windows. Windows comes
             | with .NET Framework 4.x.
             | 
             | I think the user interest was startup times of lambdas and
             | containers. Therefore Linux was a priority.
        
         | mrweasel wrote:
         | Wait, wait... .Net can build "static linked" executables that
         | doesn't require that I install .Net to run? I had no idea, I
         | guess it's time to revisit .Net
        
           | abdusco wrote:
           | That's exactly what it is. You can even cross-compile for all
           | supported platforms.                   $ dotnet new console
           | -n HelloWorld         $ dotnet publish --project HelloWorld
           | -r osx-arm64 --self-contained -o out -p:PublishTrimmed=true
           | $ du -sh out         10M
        
         | kreeben wrote:
         | >> Single files apps no longer extract any core runtime
         | assemblies to temporary directories
         | 
         | I might be ignorant here but if you're not specifically
         | pointing out what version DLL's you want, aren't you in fact
         | publishing a dynamically linked executable instead of a
         | statically linked one?
         | 
         | Doesn't these single-file apps rely on the GAC?
        
           | sedatk wrote:
           | The whole runtime gets included in the binary.
        
             | kingcharles wrote:
             | This actually makes sense in 2021 since we have the
             | resources to allow things like this. 20 years ago this
             | might have seemed insane.
        
               | vidanay wrote:
               | 30 years ago we used DOS and DLL Hell was a completely
               | unknown concept. We did have to deal with himem.sys
               | though.
        
               | justin66 wrote:
               | On the contrary, 30 years ago we were using Windows 3.0,
               | which is about when dll hell started being a real thing.
               | 
               | (DLL hell _stopped_ being a problem a lot sooner than you
               | probably think, too...)
        
               | svick wrote:
               | Keep in mind that it's just one option. If you want, you
               | can still deploy your app separately from the .Net
               | runtime.
               | 
               | Also, to keep the size at least somewhat in check, unused
               | parts of the base library are not included in the single-
               | file mode.
        
               | ourmandave wrote:
               | "Insert floppy disk 435 of 880 and press [Enter] when
               | ready..."
        
               | vidanay wrote:
               | Invalid media type
               | 
               | Abort, Retry, Fail?
               | 
               | FFFFFFFUUUUUUUUCCCCCCKKKKK!!!!!!
        
               | cm2187 wrote:
               | Keeping in mind it's also a double edge sword. TLS
               | deprecations alone will ensure your app will die after a
               | few years if it doesn't run on an up-to-date CLR.
        
             | BiteCode_dev wrote:
             | Does this mean you need one binary per OS so that the
             | runtime matches, or do they do some magic so that one
             | single binary can run on all Oses ?
        
               | sebastienros wrote:
               | You create one binary per OS.
        
               | jonathanlydall wrote:
               | You create a single binary which has the runtime and
               | dependencies self contained within.
               | 
               | You of course have to choose your target platform for
               | this as it makes .exes for Windows, ELFs for Linux, etc.
               | 
               | If you want you can still choose to distribute IL DLLs
               | and users then use their already installed dotnet on
               | their machine to run them.
        
               | e12e wrote:
               | > You of course have to choose your target platform for
               | this (...)
               | 
               | https://github.com/jart/cosmopolitan
               | 
               | (but, yeah, you probably want one version per target,
               | even if hacks are cool)
        
           | voxic11 wrote:
           | There is no GAC.
           | 
           | > .NET Core and .NET 5 and later versions eliminate the
           | concept of the global assembly cache (GAC)
        
             | backoncemore wrote:
             | Interesting. I haven't worked in .NET for several years
             | now, but the GAC was always an absolute headache to deal
             | with.
        
               | exyi wrote:
               | Thankfully they did not port this hell to Linux
        
             | cm2187 wrote:
             | Surely the binaries generated by the JIT still get cached
             | somewhere?
        
         | azth wrote:
         | You should also be able to do this in Java with jlink.
        
           | vb6sp6 wrote:
           | yes but then you have to write your program in java
        
             | kreeben wrote:
             | and now you have two problems
        
               | to11mtm wrote:
               | Three problems, since POM.XML is probably involved
               | somehow.
        
             | azth wrote:
             | Yes, arguably a better decision than writing it in golang
             | to begin with.
        
         | polskibus wrote:
         | What do you mean by golang quirks?
        
           | abdusco wrote:
           | No passable debugger, weird typing system, verbose error
           | handling, lack of exceptions, generics, syntactic sugar ...
           | 
           | I'm a novice at Golang, and I dislike much of the language,
           | except that it's fast and can produce small binaries.
        
             | Thaxll wrote:
             | "verbose error handling, lack of exceptions"
             | 
             | Exactly why I prefer Go to Java and C#.
        
               | grumpyprole wrote:
               | But Go has no sum types either!
        
               | exyi wrote:
               | Understandable, but it's a matter of taste. For people
               | who prefer a language with exception, it's good that
               | there now exist a viable solution other than sticking to
               | a language that might not fit their taste so well.
               | 
               | It seems to me that F# could get a bit more love from HN-
               | style nerds. Obviously, it's more similar to C# than
               | Golang, but specifically error handling can be done in
               | much nicer way using the Result type.
        
       | kbd wrote:
       | Is there any reason I should care about .NET today if I'm not
       | already in the ecosystem? I've done C# professionally in the
       | past, and C# is a good language. I wish Microsoft focused on open
       | source and wider industry adoption for C#/.NET sooner so that it
       | could have taken some share from Java. Now .NET is finally open
       | source but Microsoft is a bad steward of the open source
       | ecosystem for .NET, and I certainly wouldn't feel comfortable to
       | say to my team "let's do this next project in C#". I don't see
       | any particular reason to make my own tools in C# vs anything
       | else.
       | 
       | So without already being in an existing Windows-based Microsoft
       | shop, is there any reason I should be interested in .NET today?
        
         | a_lost_needle wrote:
         | Low/No code solutions are really eating the lunch of where C#
         | was useful in large internal apps. I use it because F#, but
         | it's getting harder to sell that.
        
         | UglyToad wrote:
         | Depends what you're after. The only correct advice for "what to
         | do a project in" if you're looking to ship and/or make money is
         | "use what you know" so any advice beyond that is heavily
         | contextual.
         | 
         | There is no killer feature for .NET I think. That's why it's a
         | hard sell. I think its sales pitch is more or less parallel to
         | Java (though I prefer C# to Java and VS to IntelliJ).
         | 
         | Do you want a statically typed, extremely fast, cross-platform
         | language with a comprehensive standard library and huge
         | ecosystem of 3rd party packages with almost unrivalled devX
         | (Rider on non-Windows OSes) and streamlined packaging and
         | deployment that allows you to scale from single person PoC to
         | large team development within the same codebase with no
         | additional overhead?
         | 
         | I'd note that it's a bit of a jack-of-all-trades when it comes
         | to desktop and ML. The ML.NET package keeps getting better but
         | for those areas where there's an obvious standard, e.g. Python
         | for ML, you may as well use the standard for that thing. The
         | desktop story continues to disappoint and I'd advise people to
         | steer clear of desktop unless they want a nasty surprise. But
         | for web applications I'd not want to use anything else.
        
         | icey wrote:
         | C# is fast and .NET core is cross-platform. It's good for
         | games, web, and mobile development. F# is a great functional
         | programming language. There are fun tools like SignalR (easy
         | websockets), Blazor (write C# and run it in the browser through
         | WASM), and LINQ (built right into the language and allows you
         | to query objects like a database).
         | 
         | Toplevel programs should make it easier to experiment with C#
         | if you're interested. We also have first-class support for C#
         | commands in https://ab.bot if you just want to play around with
         | the language and make a fun Slack bot or something, although it
         | might take us a week or so to get move up to .NET 6.
        
           | kbd wrote:
           | > and LINQ
           | 
           |  _Shudders_ at memories of coworkers writing giant,
           | ridiculously inefficient LINQ queries without understanding
           | how it 's actually using the database and what it's doing
           | server-side
           | 
           | > Toplevel programs should make it easier to experiment with
           | C# if you're interested.
           | 
           | Definitely interested in that small feature :) If I had extra
           | time I'd like to see what it takes to brew install dotnet and
           | write a simple CLI program. Can .NET deploy a static binary
           | nowadays?
        
             | sbelskie wrote:
             | > Can .NET deploy a static binary nowadays?
             | 
             | You can bundle everything in a single file but that file
             | contains the runtime, so even small Hello World apps are
             | 50MB+ last I checked, though there have been some
             | improvements recently with trimming and AOT is hopefully
             | coming next year with .NET 7.
        
               | kbd wrote:
               | Very cool, thanks for answering. Yeah I understand they'd
               | have to bundle the runtime so that makes sense. Glad to
               | know they're working on improving that use case as well.
        
             | int_19h wrote:
             | LINQ is best when used on in-memory object graphs, partly
             | for the reasons you brought up, and partly because then
             | you're not dealing with weird limitations or deviations
             | from how functions normally work etc. For in-memory
             | queries, it's basically just a very advanced form of
             | sequence comprehensions.
             | 
             | (I also suspect that the vast majority of LINQ code in the
             | wild is of that variety, rather than Entity Framework etc.)
        
             | tfigment wrote:
             | True of nearly all ORMs really. LINQ on objects basically
             | makes C# a very nice functional language. Dapper is
             | arguably better for database but then use LINQ in those
             | results is very nice.
        
               | mumblemumble wrote:
               | I almost wish they hand't wrapped IQueryable and
               | IEnumerable under the same branding. I get that there's a
               | lot of overlap at the interface level, but, in terms of
               | what they're doing under the hood and the effect on how
               | you use them, they're really quite very different.
        
               | kbd wrote:
               | > True of nearly all ORMs really.
               | 
               | I disagree in a respect. I think with an ORM it's clear
               | when you're hitting the database, though it makes it
               | _easy_ to write loops over (related) rows ( "n+1
               | problem"). I think with LINQ using the same
               | syntax/expressions across local and remote operations it
               | can be more blurred what's happening.
        
         | Frondo wrote:
         | I've spent much of my money-making programming time doing CRUD
         | web apps in PHP. Several years ago, when .NET Core was in its
         | infancy, I had the chance to try a different language for a
         | new/different CRUD web app.
         | 
         | The .NET Core ecosystem was a lot sparser back then but picking
         | up the language was actually the most pleasant "learn a new
         | language and be productive in it" experience I've ever had, and
         | I don't think I'd ever turn away from it now. YMMV, of course,
         | depending on how much you like whatever you're writing in now.
        
         | b8 wrote:
         | C# is good for game development, building applications with
         | sockets or creating small GUI applications. Though I admit that
         | I have a bias since C# was the first language that I learned to
         | program with. Plus C# has garbage collection and
         | multithreading!
        
         | mattferderer wrote:
         | * Runs great on Linux in my experience & others
         | 
         | * Great performance -
         | https://www.techempower.com/benchmarks/#section=data-r20&hw=...
         | 
         | * Open source - Microsoft has made a lot of missteps but they
         | have came a very long way. The bright side is both how far
         | they've came & the outcomes of the recent missteps.
         | 
         | * Very productive toolset imo. I focus mostly on web based tech
         | though. I really like the syntax & type system.
         | 
         | * Swiss Army Knife in that you can use .NET to do just about
         | any type of project - Web (front & back end), mobile, games,
         | IoT, desktop, machine learning, etc.
         | 
         | * You can use C# & F# syntax, both very popular (though let's
         | all be honest, F# is a 2nd class citizen in .NET but it's got a
         | great fan base)
        
           | throw868788 wrote:
           | I don't think F# is that second class anymore especially if
           | you are developing on Linux/Mac OSX. The more concise
           | language/syntax is a big plus when you don't want the heavy
           | IDE and want to be cross platform. The VS Code plugin for
           | example seems more mature than Omnisharp and while like any
           | other Code plugin less flaky than many of the others.
           | 
           | It seems to be keeping up with the broader .NET ecosystem
           | pretty well I think -
           | (https://devblogs.microsoft.com/dotnet/whats-new-in-
           | fsharp-6/). In some ways it is ahead of C# as well so I
           | wouldn't say it is behind at all.
        
             | svick wrote:
             | I think there's at least one way in which F# is a second-
             | class citizen: documentation. The documentation for
             | anything in .Net will contain code in C#, but code in F# is
             | quite rare.
             | 
             | So if you want to use F#, I think you still need to be able
             | to read C# code.
        
             | runevault wrote:
             | It might not be full second class but I dunno I'd go all
             | the way to first class. For example F# doesn't support the
             | source generators feature that came with .NET 5 (unless
             | they added it in 6 and I missed it but when I looked at
             | that post you linked I didn't recall seeing it).
        
         | rc_hackernews wrote:
         | As someone who programs with .NET in their day job...no
         | probably, not.
         | 
         | Outside of a few areas related to DDD, event sourcing, and some
         | distributed-system frameworks (NServiceBus and MassTransit)
         | there's really no killer app for .NET, in my opinion.
         | 
         | The big selling point for .NET now is that it runs on
         | Linux...which is not really a selling point in the grand scheme
         | of things.
        
           | oaiey wrote:
           | ASP.NET Core is an excellent and high-performance general
           | purpose web framework.
           | 
           | Blazor is an excellent C# on the browser stack.
           | 
           | And MAUI will target React Native (native controls) and
           | Cordova (Blazor on Maui) at the same time ... which is
           | extremely powerful. But that is half a year out.
           | 
           | .NET has a lot to offer if you take individual app models of
           | it. If you want to stick in one language, it is even a top
           | contender.
           | 
           | Linux selling point is already gone. That is standard already
           | for 5 years now.
        
         | xupybd wrote:
         | F# is the reason I'm investing in .Net. So far it's been an
         | amazing developer experience.
         | 
         | For internal admin tools I can throw together a windows form
         | app in C# much quicker than any other system I've worked with.
         | I'm pretty new to the eco system so to it's amazing how fast
         | you can get up to speed.
        
         | magicalhippo wrote:
         | > I certainly wouldn't feel comfortable to say to my team
         | "let's do this next project in C#".
         | 
         | Could you expand a bit on that?
         | 
         | I used .Net 1.1 and 2.0 for awhile, and coming back to it now
         | while deciding the future path for our application.
        
         | wvenable wrote:
         | Outside of a few very small stumbles, I don't think that
         | Microsoft is a bad steward of open source .NET. Especially if
         | you use Java as the alternative example where there were
         | decades of Sun/Oracle shenanigans around open source Java.
         | 
         | Microsoft has done an amazing amount of _work_ writing and
         | rewriting code to make cross platform open source .NET a real
         | thing. All open licensed and developed in the open.
        
           | kbd wrote:
           | > Microsoft has done an amazing amount of work writing and
           | rewriting code to make cross platform open source .NET a real
           | thing. All open licensed and developed in the open.
           | 
           | It's fitting you mention all the work _Microsoft_ has done
           | rewriting code. You 're talking about .NET itself but I'm
           | talking about the ecosystem, where Microsoft often does take
           | others' projects and release their own version (the Windows
           | package manager comes to mind), training the community to
           | only trust things that come from them. Of course there was
           | the recent famous example of Microsoft deleting public code
           | so they could feature it in Visual Studio, but this tweet is
           | typical of the attitude I've seen from the community: https:/
           | /twitter.com/GeoffreyHuntley/status/14540569884432179...
        
             | wvenable wrote:
             | This reply doesn't really have anything to do with your
             | original comment. If Microsoft is producing a solid
             | language / framework in the open and improving their
             | product such that 3rd party "light-weight" libraries like
             | Nancy are no longer necessary, why is that a bad thing?
             | 
             | In my opinion, while other ecosystems have _exploded_ in
             | complexity in recent years, the increasing simplicity and
             | batteries-included nature of .NET is an appealing contrast.
             | 
             | That's my answer to your question about why you should be
             | interested in .NET if you're not already in the ecosystem.
        
               | atraac wrote:
               | > If Microsoft is producing a solid language / framework
               | in the open and improving their product such that 3rd
               | party "light-weight" libraries like Nancy are no longer
               | necessary, why is that a bad thing?
               | 
               | Because they are killing community made solutions by
               | reimplementing the same solution and utilizing
               | community's habit of favoring only MS software that they
               | themselves engraved into that community throughout the
               | years, even if original solution was better, thus closing
               | the circle. They essentially kill the community around
               | .NET themselves because instead of supporting projects
               | like Avalonia, they reinvent the wheel(often ineptly) to
               | ride on that 'Microsoft ecosystem' wave. The only
               | exception to that that I know so far has been Polly that
               | they pulled into .NET Core.
        
               | wvenable wrote:
               | If it's all open source, why does it matter? My
               | node_modules folders are a good example of why having
               | thousands of individual open source fiefdoms is not
               | always a good thing.
               | 
               | I don't think the Avalonia example is a good one either.
               | Nobody talks about why Ruby on Rails doesn't support
               | Sintara. In other ecosystems, every project is in
               | competition. Why should .NET be singled out.
               | 
               | I think the argument that open source software can't
               | compete with Microsoft is total bunk. If the alternative
               | is competitive, it can succeed. Dapper has been around
               | for over 10 years. Avalonia is "used by >170,000
               | companies, including 431 on the Fortune 500 list"
               | according to their own website. Xamarin joining Microsoft
               | is pretty much why we're talking about .NET 6 right now.
               | Microsoft's first party solutions are really very good
               | (in house or acquired). This is again why you might
               | choose .NET over a more chaotic ecosystem.
        
         | FinalBriefing wrote:
         | Probably not.
         | 
         | I've heard the more recent releases of .NET have been pretty
         | good, but I don't see any real reason to be interested in it.
         | There are already plenty of good options out there.
        
         | T-A wrote:
         | MAUI, maybe?
         | 
         | https://github.com/dotnet/maui
        
           | spaetzleesser wrote:
           | Based on past experience it's a very very very bad idea to
           | rely on anything that MS does in the desktop development
           | area. I would be shocked if MAUI wasn't dead in five years.
        
       | mmpdev wrote:
       | > System.Linq -- DistinctBy/UnionBy/IntersectBy/ExceptBy
       | 
       | I'm excited by having these built in. I always found it awkward
       | to need to do: `.GroupBy(item => item.Property).Select(group =>
       | group.First())`.
        
       | osigurdson wrote:
       | We recently got through upgrading a large code base from .NET
       | framework to .NET core 3.1. It was quite challenging as it seemed
       | to touch every corner of .NET including AppDomains, .NET
       | remoting, serializing type information, C++ interop which
       | requires environment variables to be set in process (that one is
       | very obscure), etc, etc.
       | 
       | In any case, the performance results were really outstanding
       | (particularly vs Mono) especially given we use C++ for many
       | performance sensitive areas already. Looking forward to upgrading
       | to .NET 6 in the coming months.
       | 
       | Great work! Congrats to the .NET team!
        
         | Rochus wrote:
         | > In any case, the performance results were really outstanding
         | (particularly vs Mono)
         | 
         | Interesting. Do you have measurement results? According to my
         | measurements the difference is not that big, see
         | https://www.quora.com/Is-the-Mono-CLR-really-slower-than-
         | Cor..., especially the section Update September 15th.
        
       | manomanomano wrote:
       | Java user here. What is a good book/set of resources on getting
       | started in .NET/C#, possibly this version 6, without knowing the
       | ecosystem beforehand (but with a experience in programming)?
       | Thanks!
        
         | tonicbbleking wrote:
         | Learn .NET is a great place to start:
         | https://dotnet.microsoft.com/learn
        
         | griffiths wrote:
         | The official resources and documentation are pretty good.
         | 
         | https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcor...
        
         | smt88 wrote:
         | I learned C#/.NET by jumping into an existing project, so I
         | can't answer your question directly.
         | 
         | I can, however, recommend you use Rider as your IDE. It
         | includes JetBrains' excellent ReSharper code analysis tool,
         | which actually corrects a lot of your generic OO code and will
         | automatically rewrite it for you to be more idiomatic (avoiding
         | memory and performance issues, for example). Rider knows the
         | sharp edges so you can mostly forget about them.
         | 
         | Otherwise it should be very easy for you to pick up. .NET has
         | some annoying code organization conventions (lots of
         | subprojects, too many folders, etc.) but you can just structure
         | your project however makes sense for you and avoid all of that.
        
         | manomanomano wrote:
         | Thanks a lot for the suggestions!
        
         | jongalloway2 wrote:
         | For high level, you can start at https://dotnet.microsoft.com/
         | which has links to learning resources for different topics.
         | 
         | There's also a 40 page e-book ".NET for Java developers" here:
         | https://aka.ms/dotnet-forjavadevs
        
         | ulugbek7 wrote:
         | Check `C# X Pocket Reference: Instant Help for C# X
         | Programmers` by Joseph Albahari and Ben Albahari. I've used
         | this book to refresh my knowledge about .NET and C#.
        
       | b8 wrote:
       | I'm glad that Openssl 3 and more support for WASM was added. I
       | doubt that anyone will use WASM though.
        
         | merb wrote:
         | well i hoped it would be easy to publish wasm modules that also
         | works outside the browser. I'm not sure if that is possible
         | tough.
        
         | mattferderer wrote:
         | Why? WASM can be a huge productivity win.
        
       | wcoenen wrote:
       | Is it possible to load ".NET Framework" assemblies into ".NET 6"
       | applications?
       | 
       | (We have a lot of .NET Framework libraries, shared between
       | different applications, and a complex dependency graph between
       | them. So I'm wondering if it is possible to migrate away from
       | .NET Framework by starting with the executables and working our
       | way down the dependency graph.)
        
         | my123 wrote:
         | No, you can however have .NET Standard assemblies that can load
         | into both .NET (Core) and .NET (old) applications.
         | 
         | Those use a common API subset, and are a stopgap to make
         | migration easier.
        
         | geewee wrote:
         | Yes if you can migrate them to .netstandard2.0 you can run them
         | on both .net framework and the newer core/.net5/6 releases.
         | I've just done this exact migration path myself for a legacy
         | application
        
         | MaXtreeM wrote:
         | Others have said no, but I think you can. The ".NET Framework
         | compatibility mode"[0][1] was introduced in netcore2.0 (which
         | actually is now quite a long ago, geez), which means that if
         | your libraries don't use some windows-specific
         | APIs/functionality, like WPF, there is a big chance that you
         | can use them just as they are. I have never used my own .NET
         | framework library like that but I think have used some 3rd
         | party library targeting .NET framework in production.
         | 
         | [0]: https://docs.microsoft.com/en-
         | us/dotnet/core/porting/third-p... [1]:
         | https://docs.microsoft.com/en-us/dotnet/core/porting/#net-fr...
        
       | SloopJon wrote:
       | > Supported for three years as the latest long term support (LTS)
       | release.
       | 
       | This is the first thing I look for in these announcements. .NET 6
       | is the successor to .NET Core 3.1.
        
         | ziml77 wrote:
         | I've been waiting for .NET 6 for the past year for the long
         | term support. As much as I wanted to use .NET 5, I figured it
         | would be best to only use LTS releases in production.
        
           | AtNightWeCode wrote:
           | I never run anything else than LTS in production. The in-
           | between versions have basically been beta quality since .NET
           | 1-preview.
        
             | metaltyphoon wrote:
             | Crazy how bing.com seem to not care for "beta" software :D
        
           | merb wrote:
           | not the best idea. because between .net 5 and .net 6 not a
           | lot has changed. while 3.1 to 6 is waaaaaaaay more work than
           | just 5 / 6 (which prob is just changing the version)
           | especially on aspnetcore
        
         | pbreit wrote:
         | Three years doesn't seem very "long".
        
           | WorldMaker wrote:
           | Indeed, but it seems to be close to the current "industry
           | standard" at this point, for instance: Node LTS is 12-months
           | support plus 24-months "extended security support". (Three
           | years total)
           | 
           | Which is not far from say Ubuntu LTS at five years. (Python
           | and Ruby have more confusing security fix policies than
           | LTS/stable designations, but both are relatively close to the
           | 3-5 year mark for security fixes.)
           | 
           | Definitely not "long" from the perspective of classic
           | Enterprise development (or Windows "LTS" lengths), but from
           | modern viewpoints it is "long". Interesting how such things
           | shift culturally.
        
           | sedatk wrote:
           | True, but it requires way less effort to upgrade to a newer
           | .NET.
        
       | bajsejohannes wrote:
       | Unlike all the preview builds this actually crashed on `dotnet
       | run` after upgrading. Luckily a `dotnet clean` fixes it.
       | 
       | Good to finally have an official version!
        
       | runevault wrote:
       | Been thinking about switching to Rider (already had the personal
       | license for Jetbrains from wanting CLion for Rust) and figured
       | .NET 6 would be a good time to try making the switch. With how
       | blah VS has been for a while hopefully I'll like the Rider
       | experience better (for both c# and f#)
       | 
       | Edit: Though I saw something this morning when I tried to load an
       | f# project I made in VS refused to load even though the new ones
       | generated with Rider are fine...
        
         | simooooo wrote:
         | Rider likes not to stop execution for exceptions like visual
         | studio does, but otherwise it's great
        
         | vyrotek wrote:
         | I'd love to give Rider a try but I need SQL Projects. VSCode
         | and DataStudio both have support for it now so I'm hoping they
         | figure out how to bring it into Rider as well.
        
         | keithnz wrote:
         | I switched to Rider a few years ago. I really like it and I
         | find its Vim emulation a lot lot better than what you can get
         | for Visual Studio. Its F# support is ok, but I'd say
         | VSCode+Ionide is better. But Rider isn't bad for F# still, and
         | it has other tools it brings.
        
         | solarkraft wrote:
         | +1 for Rider. It's one of the 2 .NET IDEs I know that don't
         | suck terribly (the other being the proprietary version of
         | VSCode).
        
           | jcmontx wrote:
           | > proprietary version of VSCode
           | 
           | Do you mean Visual Studio? They don't share anything AFAIK
        
             | vopi wrote:
             | The binary VScode you install is different than an open
             | source build. Microsoft doesn't want OS builds using the
             | same package registery and I assume various tooling iirc
        
               | jcmontx wrote:
               | Very interesting. I wasn't aware of that.
        
         | kiklion wrote:
         | Compare the generated project file between the two.
         | 
         | I noticed for a time that some projects created in rider had a
         | different project type than those created in VS which caused
         | some issues at my company. Was a simple change to the proj file
         | though.
        
         | wsc981 wrote:
         | I've been using Rider for a couple of months now for Xamarin
         | projects, as Visual Studio was for unknown reasons unbearable
         | slow on my iMac - it totally destroyed my workflow and
         | productivity.
         | 
         | Rider is not perfect, but in many ways miles above Visual
         | Studio.
         | 
         | As Rider doesn't have any Forms editor build-in (AFAIK), I am
         | slowly switching most of my views to fully code, so I don't
         | need to rely on Visual Studio's visual layout editors anymore.
        
         | GordonS wrote:
         | I switched from VS to Rider a few years back - it's great, and
         | I'm so glad I made the move!
         | 
         | Rider feels so much faster than VS, and is rock solid - these
         | were my 2 main reasons for switching from VS.
        
       | schipplock wrote:
       | > .NET 6 is the first release that natively supports Apple
       | Silicon (Arm64)
       | 
       | Finally! :)
       | 
       | I was a bit disappointed that MS didn't want to support macOS
       | arm64 natively with .NET 5.
       | 
       | At the same time Microsoft invested a lot of effort in porting
       | Java to arm64. Almost a year ago I could download Java builds for
       | macOS arm64 from Azul (java 8-latest).
        
       | lbriner wrote:
       | I would personally prefer you to fix the multitude of things that
       | don't work well in Visual Studio and library issues that are
       | continually pushed back as "won't fix" or "upgrade to .Net5/6" as
       | opposed to always racing forwards to the horizon.
       | 
       | Even those of us who are actively migrating applications are
       | stuck with web forms, netfx and dotnet core 2/3 and will be for
       | years, so it would be nice that we felt some love rather than
       | being left behind.
       | 
       | MS are starting to feel like Apple where you only have value if
       | you can keep up.
        
         | GiorgioG wrote:
         | Nobody gets promoted for fixing bugs.
        
         | sedatk wrote:
         | It's not perfect but MS has been investing in a scheme to make
         | upgrades as easy as possible for the last five years, .NET
         | Standard being the prime example. This way, we've been able to
         | migrate our project progressively while keeping it up to date.
         | We've been able to use .NET Core versions of libraries as long
         | as they support .NET Standard 2.0. This is way better than
         | "migrate fully or die".
        
         | symlinkk wrote:
         | Why can't you upgrade to the latest version? Sounds like tech
         | debt. And Visual Studio is almost dead, why aren't you on
         | Visual Studio Code?
        
         | lloydatkinson wrote:
         | > Even those of us who are actively migrating applications are
         | stuck with web forms, netfx and dotnet core 2/3 and will be for
         | years
         | 
         | Well, the job market is pretty hot right now so I hear.
        
       | kreeben wrote:
       | >> ASP.NET Core in .NET 6.
       | 
       | I've been on .net since 1.1 and .net Core since 1.0 and this
       | statement makes me so confused.
       | 
       | Core lives _inside_ of .net 6? Is there a non-core ASP.NET that
       | also lives inside that framework?
       | 
       | I thought .net 5 was where the legacy 4.x branch and core 3.1 was
       | married in holy matrimony, minus the worst of the legacy garbage.
        
         | beauzero wrote:
         | Looks like .NET Framework has had it's life extended as well.
         | It is scheduled to be installed on Windows 11 and Server 2022
         | which gives the 10 year native to OS support.
         | https://docs.microsoft.com/en-us/dotnet/framework/migration-...
        
         | GiorgioG wrote:
         | I think "ASP.NET" would imply the legacy web framework, so they
         | had to keep the "ASP.NET Core" name. Not unlike EntityFramework
         | & Entity Framework Core.
        
         | goto11 wrote:
         | The naming really is confusing. "Core" was the keyword for
         | several semi-independent projects.
         | 
         | There is .Net Core, which was a rewrite of the .Net runtime to
         | make it platform independent.
         | 
         | Then there is ASP.Net Core is which is a rewrite of the ASP.Net
         | web stack. Despite the name, this was not initially dependent
         | on .Net Core platform, it could run on both .Net Framework and
         | .Net Core.
         | 
         | ASP.Net Core is the only web framework running on .Net Core
         | though, the old ASP.Net framework is not ported to .Net Core.
         | So to answer your question, no, there is not a non-core asp.net
         | running on the .Net Core platform.
         | 
         | Then there is EF Core which was a rewrite of Entity Framework.
         | Again, this was not initially dependent on .Net Core, although
         | later versions is.
         | 
         | Basically "Core" just means "new backwards-incompatible
         | rewrite".
        
         | tonicbbleking wrote:
         | Naming it ASP.NET 5 would clash with .NET Framework ASP.NET 5
         | MVC, hence the ASP.NET Core 5 name.
        
           | metaltyphoon wrote:
           | I see all 'Core' names being dropped with the release of .NET
           | 7. So it would be .NET 7, ASP.NET 7 , EF7
        
             | cptskippy wrote:
             | I look forward to the announcements of Office Core and
             | Windows Core.
        
               | recursive wrote:
               | https://docs.microsoft.com/en-us/windows-
               | server/administrati...
        
           | [deleted]
        
             | [deleted]
        
           | DaiPlusPlus wrote:
           | Oblig: https://stackoverflow.com/questions/51390971/im-lost-
           | what-ha...
        
             | kingcharles wrote:
             | Wow, I take it you are the author of that post. That is
             | incredible. You need some sort of presidential medal for
             | that.
        
           | SigmundA wrote:
           | So no excuse for .Net 6 since there was no ASP MVC 6 right?
        
             | WorldMaker wrote:
             | There was. ASP.NET MVC 6 and EF6 were the last versions for
             | .NET Framework 4.x. Hopefully with .NET 7 next year and all
             | the versions aligned they will drop the "Core" name for
             | just ASP.NET 7 and EF7.
        
               | orthoxerox wrote:
               | And someone will finally cross out that Jira (er, Azure
               | DevOps) task on their list. "Harmonize branding and
               | version numbers across all major .Net technology
               | offerings", only took them ten years or so.
        
           | olyjohn wrote:
           | And a bunch of people probably had a bunch of meetings and
           | sat around and thought "Yes, this is what we will name it!"
           | FFS!
        
         | DavidKarlas wrote:
         | .NET is sane now... .NET 5, .NET 6, .NET 7... all cool, no more
         | confusion going forward... .NET Framework(full Windows only
         | Framework) is .NET Framework 4.x, stuck there forever only
         | security patches...
         | 
         | Only remaining confusing part left in ecosystem is "ASP.NET
         | Core", because even though .NET got rid of Core, latest version
         | ASP.NET didn't
        
           | vyrotek wrote:
           | And Entity Framework Core unfortunately because EF6 was
           | already a thing.
        
             | WorldMaker wrote:
             | Yeah, hopefully as others have pointed out, with .NET 7
             | next year all the version numbers align so that ASP.NET and
             | EF can drop "Core" again.
        
               | foepys wrote:
               | Searching the internet for help is going to be a
               | nightmare, though.
        
               | WorldMaker wrote:
               | Shouldn't be too bad, I don't think, if you remember the
               | version number. Which anyone that worked in ASP.NET 4, 5
               | or 6 was generally pretty used to (a lot of things
               | changed between versions even the "classic" .NET
               | Framework days). I still have "fond" memories of fighting
               | to find a specific EF6 answer that was different from EF4
               | or EF5, but that was still somewhat easier than having to
               | remember to add "core" to all your searches lest you get
               | classic EF3 results when searching for EF Core 3.x help.
               | Having a version number high enough that you no longer
               | need "core" is something I'm looking forward to.
        
               | svick wrote:
               | I guess they could do that, but what makes you think they
               | actually will?
        
           | jaywalk wrote:
           | Well, part of the problem with the naming for ASP.NET is that
           | the .NET Framework version (WebForms) was simply called
           | ASP.NET, so they couldn't just drop the "Core" like they did
           | with .NET itself.
        
             | merb wrote:
             | btw. webforms is dead. thank god.
        
             | JasonCannon wrote:
             | ASP.NET isn't only WebForms. It also covers the Razor
             | engine as well as their WebAPI (API only).
        
         | [deleted]
        
         | phillipcarter wrote:
         | > Core lives _inside_ of .net 6? Is there a non-core ASP.NET
         | that also lives inside that framework?
         | 
         | Yep!
         | 
         | > I thought .net 5 was where the legacy 4.x branch and core 3.1
         | was married in holy matrimony, minus the worst of the legacy
         | garbage.
         | 
         | .NET 5 was the next evolution of .NET Core. There was no great
         | merging of legacy .NET Framework into the .NET Core branch or
         | something like that. It saw a bunch of foundational stuff land
         | in so that .NET could support modern client apps from Xamarin
         | and further support the modern versions of WinForms and WPF.
         | 
         | If that sounds confusing, it kind of is. But it's a clear
         | branding effort - .NET is not a choice between the "slim .NET
         | Core" and the "big .NET Framework. It is either .NET or the
         | legacy stuff (still called The .NET Framework).
        
           | dschuessler wrote:
           | Microsoft branding is terrible. My only point of contact with
           | it is Visual Studio Code which is different from Visual
           | Studio which is different from Visual Studio for Mac.
           | 
           | There was a brief period of time after I recognized that .NET
           | really works on all platforms without proprietary stuff and
           | before the `dotnet watch` desaster in which I was at least
           | curious about .NET. But even then I never fully figured out
           | how .NET, .NET Core, ASP.NET, .NET Framework, .NET MAUI and
           | the kitchen sink relate to each other.
           | 
           | If the purpose of branding is to make something recognizable,
           | Microsoft consistently fails across the board with me.
        
             | JasonCannon wrote:
             | >.NET, .NET Core, ASP.NET, .NET Framework, .NET MAUI
             | 
             | ASP.NET Is the web framework that comes with .NET
             | 
             | .NET MAUI is the application user interface framework that
             | now comes with .NET (Since .NET 6)
             | 
             | .NET is the overarching term for everything .NET.
             | 
             | .NET Framework refers to every version of .NET 4.8 and
             | before. .NET Framework only ran on Windows (unless you used
             | Xamarin to run it on other frameworks. Xamarin was a third
             | party implementation of the .NET framework, it is now owned
             | by Microsoft as well).
             | 
             | .NET Core is the new version of .NET. In the first 4 (I
             | think) versions it had it's own branding, .NET core 1, 2,
             | 2.1, and 3. .NET Core runs cross platform across the
             | desktop OS's natively. Xamarin was still used for mobile
             | development.
             | 
             | What would have been .NET Core 4 has been rebranded as .NET
             | 5. Xamarin at this time was brought into the fold, allowing
             | full functionality of .NET Core API's across desktop and
             | mobile. I believe this rebranding was done because .NET
             | Core was being considered full feature enough to take over
             | the legacy of .NET.
             | 
             | One thing you didn't mention but I'll touch on as well, is
             | .NET Standard. Lot's of people get confused about .NET
             | Standard. .NET Standard is just the definition of what
             | different frameworks that implement .NET Standard can use.
             | So if you write your code to target .NET Standard you can't
             | use .NET Core specific API's but what you can do is have
             | the same code compiled against .NET Standard referenced in
             | your .NET 4.5 - 4.8 Code, or your Unity Code, or your
             | Xamarin code. It was primarily designed with libraries in
             | mind.
        
               | svick wrote:
               | > ASP.NET Is the web framework that comes with .NET
               | 
               | Not quite. ASP.NET is the web framework that comes with
               | .NET Framework. ASP.NET Core is the web framework that
               | comes with .NET Core and .NET.
               | 
               | > .NET Framework refers to every version of .NET 4.8 and
               | before.
               | 
               | It was fine to call .NET Framework 4.8 just ".NET 4.8" in
               | the past, but I would avoid it now, to clearly separate
               | .NET Framework 4.8 from .NET 5.0.
        
             | dustinmoris wrote:
             | > Microsoft branding is terrible.
             | 
             | Agreed.
             | 
             | > I never fully figured out how .NET, .NET Core, ASP.NET,
             | .NET Framework, .NET MAUI and the kitchen sink relate to
             | each other.
             | 
             | You're not the only one who is massively confused about
             | everything that is labelled .NET or Core.
             | 
             | If anyone else is struggling, I recommend this (I wrote
             | it):
             | 
             | https://dusted.codes/dotnet-basics
        
               | Douger wrote:
               | You've done a really nice writeup here. To me it reads as
               | someone patiently explaining the basics without being
               | patronizing.
        
               | kingcharles wrote:
               | Great article, thank you.
        
             | rbobby wrote:
             | The naming for .NET got tough when it was decided that open
             | source and cross platform was the way forward. If that had
             | not happened it would all be called .NET framework to this
             | day.
        
             | spaetzleesser wrote:
             | Agreed 100%. Even seasoned .NET devs can't tell what all
             | this stuff means and what the implications are. I wonder if
             | anybody at MS really knows.
        
             | phillipcarter wrote:
             | We used to have a saying on the team when I worked there:
             | 
             | "Nobody can name things like we can't!" (followed by cry-
             | sobbing)
             | 
             | The more serious response to this is:
             | 
             | For better or for worse, The .NET Framework (which is now
             | squarely legacy tech) has stuck around and been reliable.
             | People have had their trust in it validated. For two
             | decades now, if you're a CTO at some big enterprise, you
             | know that .NET Framework will get the job done for much of
             | your development needs. From a Microsoft branding
             | perspective, this is amazing. But it's got all kinds of
             | problems can't be fixed unless you break everyone. Uh-oh!
             | 
             | This is the biggest reason why branding and naming has been
             | so complicated pver the years. And it's even come with
             | little sub-problems, like the fact that the version number
             | for one "flavor" of .NET would match up with the version
             | number for another "flavor" of .NET and so now you're
             | screwed no matter which decision you pick.
             | 
             | A cleaner approach would be to throw it all away and do a
             | complete rebrand (we had a little proposal to call it
             | "Concert" where C# and F# could be played in harmony with
             | each other, how cute) but with that you throw away the
             | brand of one of the most successful pieces of technology
             | ever produced by the company. Not exactly a winning
             | proposal.
             | 
             | The other factor here is that with .NET there is _so much
             | software involved_. It 's three entire programming
             | languages, a runtime, a huge standard library, a web
             | framework, a database access and management framework, a
             | machine learning framework, several Windows app frameworks,
             | a mobile framework, IDE tooling, command-line tooling, and
             | a bunch of other stuff too. .NET is far larger than many
             | other competing stacks in terms of what a single vendor
             | produces. Since Microsoft produces so much software for
             | .NET and aligns their releases, they also message each one,
             | and with that there's a big sea of stuff to keep track of.
             | 
             | I don't know if I have an answer for how to handle the
             | complexity of it all. A lot of folks I know in the F#
             | community only keep track the F# language and IDE tooling
             | updates, then dive into specific stuff only when they care
             | about it (e.g., doing web programming? check out the
             | ASP.NET release notes). But that may not be an option if
             | you're a decision-maker at a company.
        
             | ozim wrote:
             | There are more purposes for branding and if you have people
             | calling themselves ".NET developers" you probably want to
             | stick to that brand instead of coming up with something new
             | that people would not trust.
             | 
             | I believe people would not jump as easily onto that wagon
             | if it would be called "Silverlight Core".
        
         | cl0ckt0wer wrote:
         | the old "framework" versions are in maintenance mode. That is
         | the OG aps.net and framework. it's currently at 4.8 and will
         | probably stay there forever. This includes the OG versions of
         | things like ASP.NET and Entity Framework.
         | 
         | The open source multi platform rewrite, originally named core,
         | now named "", is going to be the active platform going forward.
         | There are several core rewrites of the popular modules that
         | will be the ones that are actively developed going forward.
         | 
         | We can either stay on 4.8 forever, or migrate to the "" which
         | is where all the new and exciting things are being developed.
         | MS has promised they will support 4.8 for the foreseeable
         | future, for what it's worth.
         | 
         | Here's a video explainer: https://youtu.be/4olO9UjRiww
        
         | na85 wrote:
         | Microsoft is easily the worst at naming things.
         | 
         | At this point I've given up hope at grokking the various names
         | within/peripheral to dotnet.
        
         | mbesto wrote:
         | Welcome to .NET :)
         | 
         | It requires a PhD to understand versioning at this point.
        
       | [deleted]
        
       ___________________________________________________________________
       (page generated 2021-11-08 23:01 UTC)