[HN Gopher] .NET 6 is now in Ubuntu 22.04
___________________________________________________________________
.NET 6 is now in Ubuntu 22.04
Author : styx31
Score : 334 points
Date : 2022-08-16 13:17 UTC (9 hours ago)
(HTM) web link (devblogs.microsoft.com)
(TXT) w3m dump (devblogs.microsoft.com)
| game_the0ry wrote:
| Question for the experienced .net folks - how is the dev
| experience of .net on linux vs .net on windows? Is it smooth or
| clunky?
|
| Pretty cool and interesting that a big linux vendor is on board
| with .net.
| EnKopVand wrote:
| It depends a bit on what tools you use, but if you've jumped
| the ship from VS to VSC and mainly use the dotnet cli for
| things then there isn't much of a difference between platforms.
| If you're using VS, as in really use it and all it's feature,
| there is going to be a massive difference.
|
| That being said, I've used .Net and C# for over a decade and
| it's frankly just a clunky language and toolset. It's gotten
| better with Core (now just.Net), but it's still just not there.
| It's not a secret that we've been doing more and more
| TypeScript where I work, but I recently did a little bit of Go
| and Gorm made EntityFramework feel like something from the
| stoneage.
|
| So I'm not sure I'd really recommend it unless you already do a
| lot of .Net. It's not that it's bad, it's just that it's a
| dated way to build things in a world where the Java way of
| doing things makes less and less sense.
| TheRealDunkirk wrote:
| I haven't used Go, and Gorm is new to me. I've just looked at
| it (with 15 years of AR experience, and a couple of EF), and
| it looks quite a bit like EF to me. In your mind, what makes
| it significantly better than EF?
| EnKopVand wrote:
| I think it's the first time I've used an ORM where it was
| effortless. I still struggle with EF from time to time.
|
| It obviously lacks a lot of the wider .Net features, like
| having easy access to ODATA for all your models.
| hu3 wrote:
| Interesting. Does Gorm have anything like Linq?
| autocompletion of queries? Compile-time validation between
| code and schema?
|
| Once I disable Entity Framework object cache globaly
| (AsNoTracking), it becomes close to the ideal db toolkit for
| me.
|
| I see a lot of strings in Gorm docs. Those are probably not
| checked during compilation. This alone differentiates Gorm
| and EF quite a bit. https://gorm.io/docs/create.html
| game_the0ry wrote:
| Yeah, I was specifically curious about VS (not VSC).
|
| I am not a vs/c#/.net dev but I tried it once on a windows
| machine and thought it integrated well and seemed to be a
| really nice DX. Probably the nicest DX for an "enterprise"
| stack.
| EnKopVand wrote:
| I went from VS Enterprise to VS Professional to VSC over a
| decade. We still use Azure DevOps, and, a lot of Azure
| things in general, so it's not like I'm anti Microsoft or
| anything, but I frankly don't miss VS the slightest.
| debug-desperado wrote:
| Everything in the feature-list for Gorm is bog-standard for
| C# and Java ORMs. Do they support any special query languages
| comparable to OData, LINQ, or JPA?
|
| Not wanting to get in a debate on whether you should use an
| ORM, but I just don't see anything really special about Gorm
| that makes the other frameworks "ancient".
|
| When I look at this page:
| https://gorm.io/docs/advanced_query.html I see the same exact
| crap that makes me wary of JPA Criteria API.
| danjc wrote:
| Not exactly Linux but switched to Mac earlier this year and
| pretty happy with Visual Studio 2022 there. Not nearly as
| feature rich as the Windows version but very comfortable and
| performant.
| spaetzleesser wrote:
| With Rider it's quite pleasant. No complaints.
| neonsunset wrote:
| On Linux you can use Rider or VS Code both of which are able to
| satisfy most of your professional needs, especially when it
| comes to back-end and/or web dev. I'm not sure what is the
| situation when it comes to visualizer for XAML used in cross-
| plat UI frameworks like Avalonia or Uno Platform but honestly
| I've never relied on those because even on Windows they can
| never compete with something like Xcode visualizer for Swift
| UI.
|
| Other than that, it is smooth and in many advanced scenarios
| Linux has better support than macOS, unfortunately (still
| decent, just has quirks).
|
| Also, check out Native AOT in the upcoming .NET 7 because it is
| really nice for building small and lightweight CLI utilities in
| .NET and just shipping them to users like you would if they
| were written in C++ or Rust.
| cabirum wrote:
| Meh. In the end, Microsoft _will_ betray those who trusted it.
| Long term, better just to pretend it does not exist and never,
| ever depend on anything with Microsoft name on it.
| elforce002 wrote:
| I agree with you.
| zenron wrote:
| Well I guess everyone should migrate their open source projects
| off github. Any day now...
| alexklarjr wrote:
| I searched for any news regarding recent removal of
| MagiskOnWSA repo from github, but of course none found.
| Really nothing to worry about, instead look how easy to
| develop using powerful and free dotnet core|framework|. and
| deploy apps on Azure in just one click.
| mrkeen wrote:
| Yep.
|
| https://techcrunch.com/2019/07/29/github-ban-sanctioned-
| coun...
| mikro2nd wrote:
| Long since done.
| stusmall wrote:
| It's MIT licensed. If they do then it can be forked and
| community maintained. It could be similar to the mass forking
| of projects when Oracle acquired Sun. .NET now has a way bigger
| community than a lot of those projects did and they thrived.
| cardanome wrote:
| MIT does not have a patent-grant clause though.
|
| There is a good reason projects like the Rust Language are
| dual-licensed under MIT AND Apache2 because only the later
| protects you from software patent claims.
|
| So I wouldn't be so sure about MS not having any legal means
| to shut down forks. Even if they might not win in court, as
| long as they can make up something up, they still have enough
| legal war money to effectively shut down any unwanted fork
| just by threatening legal action.
| [deleted]
| omajid wrote:
| Microsoft publishes a patent promise here, though:
| https://github.com/dotnet/runtime/blob/main/PATENTS.TXT
| cardanome wrote:
| "We promise not to sue you" is much weaker than a proper
| patent-grant.
|
| That promise seems only to apply if you use the .NET
| runtime. If you used a forked project, it might not
| apply.
|
| See also: https://endsoftwarepatents.org/2014/11/ms-net/
| Salgat wrote:
| .NET Core is open source and any forks receive a perpetual
| license protecting it against any Microsoft patents, so long
| term it'll be just fine. The only thing Microsoft really
| controls with absolute authority is the trademark.
| dnndev wrote:
| Not true. To blanket state microsoft is not reliable is
| ignorant. Anyhow, be on your way. I will continue using .net /
| c# for another decade.
| alexklarjr wrote:
| It was VB, Access and Sharepoint heavy marketed by MS
| evangelist drones as primary LOB tools just before
| Windows.NET The next .CLOUD or .AI frameworks is probably on
| its way in minds of board of directors. Microsoft is great in
| producing APIs and frameworks thats not last. And drones will
| happy to explain how powerful and simple things now.
| mrkeen wrote:
| I hope it lasts that long.
|
| I picked up and used XNA for the global gamejam 2012. It
| wasn't a terrible experience, so I went to use it again for
| 2013 but they'd since killed it off.
| the-lazy-guy wrote:
| Millions of businesses run on Microsoft platforms and software
| developed on/for Microsoft platforms for decades. I think you
| are painting darker picture than it really is.
|
| Or please elaborate a little what you mean by "betraying".
| cabirum wrote:
| I believe, sooner or later, MS will put some arbitrary
| restrictions on .net or some part of its toolchain, forcing
| users to purchase a license to make it usable. It will
| probably involve "cloud" to sign/notarize your binaries to
| distribute them and give MS complete control of the
| ecosystem.
|
| Obviously, I have no idea what exactly will MS do, but after
| reaching some adoption target, MS will try to extract as much
| money as it can, because that's what they do.
|
| The other posters in this thread mentioned the debugger is
| still proprietary. Anyway, I'm not touching this.
| nonbirithm wrote:
| Technically the restrictions already exist, just as a part
| of the development experience.
|
| - .NET Hot Reload is only implemented on Windows. It
| requires support in the .NET runtime, which is technically
| possible to implement, but the team has not gotten around
| to implementing it for years. This doesn't have to do with
| the issue around MS removing the "dotnet watch" command,
| it's for the "Edit and Continue" feature in IDEs.[1][2]
|
| - MS was considering deprecating Omnisharp, the open-source
| language server that implements C# support for VS Code, and
| replacing it with a closed-source version. Since the
| announcement, commits to omnisharp-vscode have dropped off
| significantly. The lack of Omnisharp would mean there would
| be no real open-source C# development environment for Linux
| anymore, since MonoDevelop was abandoned a few years
| ago.[3]
|
| [1] https://youtrack.jetbrains.com/issue/RIDER-31366/EditCo
| ntinu...
|
| [2] https://github.com/dotnet/coreclr/issues/23685
|
| [3] https://github.com/omnisharp/omnisharp-
| vscode/issues/5276
| akira2501 wrote:
| > which is technically possible to implement, but the
| team has not gotten around to implementing it for years.
|
| My understanding is that they did in fact implement it,
| but then ripped that code out before the release.
| nonbirithm wrote:
| I believe that issue was about "dotnet watch", which
| reruns the compilation when a file change is detected.
| EnC/Hot Reload sends new bytecode to a running process
| and updates classes/methods in memory. EnC has been
| missing from non-Windows platforms from the start. An IDE
| like Rider can't implement Hot Reload without support
| from the runtime.
| dsissitka wrote:
| Just skimming the diff it looks like it was proper hot
| reloading.
|
| https://github.com/dotnet/sdk/pull/22262/files
| markmark wrote:
| As a user I honestly don't care how Microsoft license
| their tools. If they want to start charging for them I'll
| pay for them if I think they are better than the
| alternatives.
| rjbwork wrote:
| They certainly COULD do some of that stuff, but so much is
| open at this point, that I tend to think that a consortium
| of large businesses with hundreds of billions on the line
| would get together and form the .ORG alliance or something
| like that to rebrand and make it fully independent from MS.
| The entire runtime and compiler are MIT licensed so with
| enough motivation provided, Microsoft's customers could
| easily break away, hire their top .NET engineers, and build
| an entirely independent ecosystem.
|
| I just can't imagine it makes any business sense to be that
| hostile in today's world.
| Hawxy wrote:
| > MS will put some arbitrary restrictions on .net or some
| part of its toolchain.
|
| I doubt this. Microsoft's monetary strategy around .NET for
| a number is years has been "look at how easy you can
| deploy/run/monitor your .NET app on Azure!", I don't see
| that changing to anything else unless there's a massive
| change of priority and executive leadership at Microsoft.
| severino wrote:
| You're right. They run on Microsoft platforms. For decades.
| Not Linux.
| SideburnsOfDoom wrote:
| > Not Linux.
|
| That hasn't been true for the last few years.
| kk6mrp wrote:
| I think you may have missed the train of thought.
| queuebert wrote:
| Yes, we are all so much better off because anything text gets
| sent in Word docs and anything graphical gets sent as
| PowerPoint slides. /s
|
| Microsoft is probably the most aggressively mediocre company
| in history, and the poor quality of everything has extracted
| an enormous lost productivity cost. Those of you old enough
| to remember IIS and early internet Microsoft know.
|
| Even today, it takes _five full seconds_ for my work Outlook
| webmail to load. Every person in the organization waiting for
| each task in Outlook n times per day adds up to a lot of lost
| productivity. And Outlook adds nothing to email that we haven
| 't had since forever. Microsoft just took it over and made it
| slow and convinced the corporate types to use it. Rinse and
| repeat for everything they do.
| SideburnsOfDoom wrote:
| Someone with strong negative opinions about Microsoft, but none
| about the FAANG companies, is usually struck in the past, maybe
| 20 years ago.
| karamanolev wrote:
| FWIW, I'd approach other FAANG with the same "get ready to be
| betrayed" attitude I have to MS as well. Try to entrust as
| little as possible into their hands, but still do what's
| necessary to your business (i.e. don't be fanatical about
| it).
| metaltyphoon wrote:
| Alright, then let's hear: What is your go to stack?
| TheRealDunkirk wrote:
| Not OP, but my favorite stack is Rails/Postgres/Linux. It
| doesn't get more open and less corporate-controlled than
| that these days. To enjoin OP, however, I get worried
| when I think about the GitHub acquisition. To me, GitHub
| was everything open and non-corporate, like my stack.
| Then Microsoft bought it, and now I fear that they will
| bring their MSDN "dev portal" schtick over to it.
|
| They've already started integrating LinkedIn into
| Outlook. They will probably be doing the same thing with
| GitHub in Visual Studio, and downplaying others (like
| GitLab). Will it affect my use? I don't know. I doubt it,
| but I wish I didn't feel like I need to be watching them
| like a hawk now, and be ready to move my code to another
| provider at short notice.
|
| The really stupid part? Out of other companies who could
| have bought it, and would be interested in it, Microsoft
| is probably the best choice. Certainly better than Oracle
| or Salesforce.
| tartoran wrote:
| The stack could still be one of these; it's just a
| reminder that betrayal will come and maybe not put all
| eggs in one basket type of things.
| karamanolev wrote:
| Not sure it matters, but my go-to is
| Python/Django/nginx/Ubuntu Server (VMs). I like open
| things with a track record (no chancing the latest shiny
| thing) that have proven to work for small-to-mid scale
| and I can count on in terms of securing talent. None of
| that "3 years of experience" for a framework that is 1
| year old.
|
| I also have no issues depending on corporate things that
| I don't like, for example GitHub, as long as they can be
| replaced with minimal loss. I'd git remote set-url origin
| <something else> and be done with it.
| RajT88 wrote:
| I knew there'd be at least one of you guys in this thread.
| labrador wrote:
| Like a "reply guy" on Twitter mansplaining Microsoft
| make3 wrote:
| I mean Microsoft does have a history of fucking the open
| source world. We can like their new approach without denying
| that, and understand people having their reserves.
| mixmastamyk wrote:
| Don't forget their customers.
| bayindirh wrote:
| Make us two. I didn't get the memo which states that we need
| to unconditionally trust Microsoft.
|
| We still have copilot case in front of us.
| RajT88 wrote:
| It's funny you say this because nobody in this thread is
| actually saying:
|
| > unconditionally trust Microsoft
|
| But the poster I was responding to was pretty clearly
| saying that we should:
|
| > unconditionally _dis_ trust Microsoft
| bayindirh wrote:
| I'm also saying the same thing. We should not trust
| Microsoft, ever. However with your wording, you leave the
| impression that you don't agree with your parent (which
| is perfectly OK in my book), hence I'm not agreeing with
| you, but your parent.
| RajT88 wrote:
| OK. I mean, yeah I disagree. There's ample reason to
| distrust Microsoft these days, but far less than there
| used to be.
|
| I've signed many antitrust petitions for them over the
| years. And they have won a fair amount of good will since
| Satya came on and pushed for cultural change, as well as
| a larger pivot towards cloud and open source.
|
| So, you know. It's a mixed bag is my take.
| bayindirh wrote:
| Sorry, I just can't see the change Satya brought to the
| company.
|
| Considering their "collaboration" with Canonical, it
| feels like Microsoft is paying Canonical in order to get
| help for strangling Linux desktop inside the Windows
| ecosystem, finally extinguishing desktop Linux installs
| once and for all.
|
| As a payback they're leaving server space to Canonical,
| but port their software to work on Ubuntu, so they have a
| suitable "free" platform to monetize their software.
| Canonical can make boatloads of money by selling support,
| Landscape and similar services meanwhile.
|
| I'm thankful to them for their Copilot shenanigans
| though, they kickstarted the motivation inside me to be
| even more serious about the services and software I use.
| I left GitHub, slowly moving away from Google services,
| etc.
| RajT88 wrote:
| > Sorry, I just can't see the change Satya brought to the
| company.
|
| I would say that if that is your perspective, then you
| probably didn't have a close up view of them and how they
| operated before and after. There's been a lot of spilled
| ink about it; I won't rehash it here.
|
| > it feels like Microsoft is paying Canonical in order to
| get help for strangling Linux desktop inside the Windows
| ecosystem, finally extinguishing desktop Linux installs
| once and for all.
|
| I expounded on this in another thread - Desktop Linux
| isn't likely to be something MSFT spends any amount of
| time concerning themselves with as competition.
| Realistically, it's not real competition and any harms
| done to it probably were borne out of callousness or
| ignorance rather than competitive spite. The competition
| is OSX and ChromeOS (which I would not consider 'Desktop
| Linux').
| bayindirh wrote:
| > you probably didn't have a close up view of them and
| how they operated before and after.
|
| I have witnessed "before" enough, so I distanced myself
| from them pretty sharply, and I didn't bother to check
| "after" that close. It's my fault, I accept it, but from
| this distance the end result doesn't show any meaningful
| differences. So, it's something to ponder if you ask me.
|
| > Desktop Linux isn't likely to be something MSFT spends
| any amount of time concerning themselves with as
| competition.
|
| It's may not be competition, but is a big hurdle against
| locking down PC ecosystem and converting them to
| appliances. If they can run all Linux apps under Windows,
| they can revoke all 3rd party signing keys, make Secure
| Boot mandatory and tell judges "See, it all works under
| Windows. We're no monopoly. We already ship the
| environment free with new PCs, anyway."
|
| This stance against Microsoft is one of the rare firmly
| held strong opinions of mine. I certainly would prefer
| not hold this so firmly, but they made it impossible over
| the years.
| metaltyphoon wrote:
| There always is.
|
| 1) Don't trust Go because of Google
|
| 2) Don't trust C#,F# because M$ (yes with dollar sign)
|
| 3) Don't trust Java because Oracle
|
| 4) You gotta use XXX tech, which has no jobs in your area
|
| Yada Yada... yet is probably using VSCode or GitHub. Just
| ignore it.
| InitEnabler wrote:
| Yup. Basically the programming version of "No ethical
| consumption under capitalism." saying.
| pxc wrote:
| It's the opposite.
|
| > There is no ethical consumption under capitalism
|
| is said to de-emphasize or _criticize_ arguments that are
| centered on consumer choice which is exactly what you and
| GP are doing by saying
|
| > You have no choice but to depend on big corporations
| for key software platforms; advising or choosing to stay
| away from this one or that one matters little
| nikanj wrote:
| 5) You gotta use unstable alpha because decades-in-
| production tools are obviously oldschool and thus slow
| [deleted]
| ChrisRR wrote:
| I don't keep up with desktop dev, but can I develop a Linux UI
| using C# and .NET yet?
| rcarmo wrote:
| Yes. I've done it (a PoC and a personal app) for Linux and the
| Mac last year. Notes at
| https://taoofmac.com/space/blog/2021/11/14/1600
| ZiiS wrote:
| GTK/Gnome style UIs have supported C# for decades at this
| point. Including some programs that were shipped by most
| mainstream Distros
| https://en.wikipedia.org/wiki/Tomboy_(software) (not without
| controversy; but technically they worked well)
| magicalhippo wrote:
| There's also the more direct route by using say Gtk
| directly[1].
|
| [1]: https://github.com/GtkSharp/GtkSharp
| hu3 wrote:
| Check https://avaloniaui.net
|
| There's also https://github.com/dotnet/maui from Microsoft but
| it's not mature yet.
| runevault wrote:
| Last I saw MAUI for Linux hasn't shipped yet, to the sadness
| of many. Avalonia is probably your best bet if you want Linux
| support for now.
| cwbrandsma wrote:
| I would check Maui for that. I haven't used it, but apparently
| there is a community supported version that gives Linux desktop
| support.
| lucidone wrote:
| Had to fix a bug in a hobby app that uses .NET Core for its
| backend last evening. I miss working in this ecosystem daily
| (back to node and rails for work), it's such a pleasure. The best
| developer experience I've ever had. If anyone is hiring and you
| use .NET... :)
| RexM wrote:
| I'm not sure where you're located, but feel free to send me an
| email (it's in my profile.)
| mrweasel wrote:
| I don't know where in the world you're located, but there are
| way more .Net jobs available than than Node or Rails here in
| Denmark.
| lucidone wrote:
| Middle of nowhere, Canada, far away from any metro area. I've
| been working remotely for years as a result. Seems tough to
| find any .NET work in digital space (plenty of javascript and
| rails from my experience). I ascribe this to the perception
| of .NET being more corporate.
| mrweasel wrote:
| > I ascribe this to the perception of .NET being more
| corporate.
|
| Seems about right, most of the .Net jobs are very corporate
| :-)
| andrewstuart wrote:
| As a recruiter, it is clear that the most successful languages
| still growing in popularity in 2022 are:
|
| C#
|
| JavaScript/TypeScript
|
| Python
|
| Edit: golang is small in terms usage but is on the way up
| definitely
|
| All the rest are in decline or remaining at a constant level of
| acceptance.
|
| So if hiring / recruiting is important, use C# or TypeScript or
| Python.
|
| If you want to cause yourself deep hiring/recruiting pain, build
| your systems with Ruby or use lesser known frameworks and
| languages such as Erlang/Elixir.
|
| C# seems like an excellent choice for Linux based development -
| it's mature, there's a vast talent pool, theres vast knowledge
| and community resource for getting problems and questions
| answered.
| FlyingSnake wrote:
| I'm curious, why not Java? I'm sure Java and JVM languages like
| Kotlin are quite popular in the industry.
| andrewstuart wrote:
| It's just my opinion that Java is waning in popularity.
|
| It will always be big and always be around, but it's losing
| popularity.
| rnk wrote:
| Your list was surprising but I'm in infrastructure
| software. There seems endless demand for c++, java and
| lately rust as the languages used for database
| implementations.
| int_19h wrote:
| You should clarify which country you recruit in/for, because
| these things can vary a great deal between different markets.
| andrewstuart wrote:
| Australia.
| radicalriddler wrote:
| Yup, Australia has a real hard on for C#. As a dev in
| Australia, I can support the list you gave, but I'd be
| cautious to extend that globally.
| AtNightWeCode wrote:
| Why not use PublishSingleFile for containers instead and get
| image sizes well below 100MB?
| ptx wrote:
| Does it come with telemetry enabled by default[1] as the
| Microsoft binaries do? Or does the Ubuntu version either remove
| that code or make sure to set the DOTNET_CLI_TELEMETRY_OPTOUT
| environment variable everywhere?
|
| If "Canonical and Microsoft are committed to working together",
| probably the former.
|
| [1] https://docs.microsoft.com/en-us/dotnet/core/tools/telemetry
| sedatk wrote:
| Yes, telemetry collection is still opt-out. I just tried it.
| omajid wrote:
| Are you sure about that? Can you share the steps I can run to
| reproduce that?
|
| I am looking at the sources at
| https://packages.ubuntu.com/source/jammy-updates/dotnet6 and
| (as far as I can tell) they are applying a patch called
| 1500sdk-telemetry-optout.patch (originally from Fedora https:
| //src.fedoraproject.org/rpms/dotnet3.1/blob/f36/f/cli-...)
| that is supposed to make telemetry opt-in.
|
| There's a better fix landing upstream for .NET 7:
| https://github.com/dotnet/sdk/pull/25935
| sedatk wrote:
| Repro steps: sudo apt install dotnet6
|
| - Observe the "telemetry enabled" message.
| omajid wrote:
| Most distro packages for .NET have disabled telemetry. As far
| as I can tell, this is the case for:
|
| - Alpine:
| https://gitlab.alpinelinux.org/alpine/aports/-/blob/master/c...
|
| - Arch Linux: https://github.com/archlinux/svntogit-
| community/blob/package...
|
| - Fedora:
| https://src.fedoraproject.org/rpms/dotnet3.1/blob/f36/f/cli-...
|
| - RHEL: https://gitlab.com/redhat/centos-
| stream/rpms/dotnet6.0/-/blo...
|
| - Ubuntu:
| http://archive.ubuntu.com/ubuntu/pool/universe/d/dotnet6/dot...
|
| The homebrew build of .NET is the only non-Microsoft build of
| .NET that seems to keep it enabled
| (https://github.com/Homebrew/homebrew-
| core/blob/HEAD/Formula/...).
| pxc wrote:
| And still, there is no Visual Studio for Linux, and Microsoft is
| committed ( https://isdotnetopen.com/ ) to ensuring that VSCode
| provides a second-class .NET experience to Visual Studio proper.
|
| Seems best avoided by any company which is not already a
| Microsoft shop.
| jayd16 wrote:
| Just grab Rider. Its really good.
| pxc wrote:
| Yes, JetBrains has done a nice job reverse engineering key,
| proprietary pieces of Microsoft's .NET ecosystem to create
| proprietary components of their own IDE.
|
| That does not an open platform make.
| turtlebits wrote:
| I still feel Microsoft development experience is pretty poor and
| has been sometimes hostile in the past, and still don't have much
| confidence nowadays.
|
| Maybe because it's not a popular language, but the F# experience
| for me has been bad - tried it two years ago with F# 5, and
| recently with F# 6. The documentation in both cases was
| immature/inconsistent to broken.
| moonchrome wrote:
| Every time I tried F# with .NET tooling it felt like the
| implementations were there to tick the "supports F#" checkbox -
| and nobody actually used it for the thing I tried to do because
| it broke really early on.
|
| Early on one of the big selling points was reading all those
| type provider articles. Then I've tried it a couple of months
| ago and it was such a broken mess - not worth the time. From
| what I've read this isn't just my experience.
|
| With, record types, switch expressions, top level expressions,
| file scoped modules, global usings, etc. C# removed a lot of
| cruft. Roslyn source generators actually work unlike type
| providers. If they improved the REPL/scripting aspect of C# I
| think there would be very little arguments for F# other than
| catering to FP crowd who like to like |> to |> write |> like |>
| this instead of this(like(write(to(like))))
| markmark wrote:
| F# is very much a second-class citizen in the Microsoft world.
| pipeline_peak wrote:
| Is the runtime environment CLR?
| ledgerdev wrote:
| Yep, very similar to the JVM. Also .net7 is releasing platform
| native aot exe compilation (for simple scenarios) so you don't
| have to run the full CLR & JIT saving lots of memory.
| bariskaya wrote:
| Seems like great news but I wonder if these releases help the
| .NET ecosystem in a meaningful anyway. Almost all .NET developers
| I know still use Windows even on cloud.
| cyral wrote:
| Been running .NET on Linux for years and develop with it on
| Mac, great experience.
| osigurdson wrote:
| At least 95% of our .NET workloads run on Linux.
| bariskaya wrote:
| oh boy! It seems I was wrong all along. thanks all for the
| replies
| pmontra wrote:
| Which OS are the developers using to write the code?
| keewee7 wrote:
| >Almost all .NET developers I know still use Windows even on
| cloud
|
| That seems untrue. On the Cloud side every .Net shop I know
| from startups to government/enterprise are now deploying to
| Linux or Linux containers.
|
| On the developer side 75% of .Net devs are on Visual Studio on
| Windows but a big and fast growing segment are using JetBrains
| Rider on Mac/Ubuntu.
| bariskaya wrote:
| Yeah the comments show that you are right. It was wrong to
| make an assumption based on my small sample set.
| jayd16 wrote:
| I work in games so it's Unity C# (which uses a Mono port but
| .net 6 'soon') and a backend that uses .net in a linux
| container. Using C# on both makes it easier for devs to work
| full stack. It's been easy to run the backend app in k8s.
| runfaster2000 wrote:
| We maintain container images for both Linux and Windows. I can
| tell you that they both get a LOT of use (>10M pulls/month).
| .NET is very much a cross-platform app stack. Also, we get
| plenty of bug reports on Linux (which we diligently fix). The
| days of .NET being Windows-only (and closed source) are long
| over.
| manigandham wrote:
| Used .NET (Framework) since version 2.0 released 15 years ago.
| Been running on Linux since .NET Core 1.0 became available.
| cwbrandsma wrote:
| I was talking with a Microsoft employee that works in azure.
| Something like 60% of their VMs are Linux.
| RajT88 wrote:
| I met a guy a while back who did stints for both Amazon and
| Azure orgs.
|
| It's the reverse in AWS, they have a bit more Windows market
| share than Linux. And he also backed up your statement.
|
| His take (which was just his speculation) was that the
| virtualization stacks ran those OS's more efficiently. HyperV
| with Linux VM's and KVM with Windows VM's. I have no idea if
| that's true or not.
| StevePerkins wrote:
| How much of that 60% is running .NET apps, though?
|
| Not everyone who uses Azure is a "Microsoft shop", in terms
| of programming tech stack. Plenty of people use Azure as a
| cross-cloud redundancy play, or because they do business with
| Amazon competitors that refuse to have their data on AWS.
| WorldMaker wrote:
| My understanding is that a growing percentage of that is
| .NET. Even "big corporate" realizes .NET Linux deployments
| on Azure are cheaper and are trying to cost-cut/cost-save.
| There's still a small feature parity difference in Azure
| between Linux and Windows servers, primarily in my
| experience in "no touch" Application Insights
| telemetry/logging for application state (and user)
| monitoring as a major one. If that feature gap closed I
| expect that 40% to drop rapidly in Azure simply for cost
| cutting reasons. Anecdotally, I've been feeling internal
| pressure in my company to move .NET deployments to Linux
| servers for cost savings and we've done some initial trial
| balloons on the engineering effort for working around that
| feature gap.
| thedougd wrote:
| I've moved Windows Server into contained status at my
| organization and will not accept new software that required a
| Windows Server to run.
|
| If you plan on shipping server software, I expect it to run on
| Linux, particularly in a container.
| adelarsq wrote:
| We use .NET on Linux cloud for some years. Even on Windows we
| use Docker instead
| sf_rob wrote:
| Might this gain them marginal .NET developers? Maybe they have
| reason to believe that this will accelerate growth.
| giaour wrote:
| I've shipped .NET applications in organizations where adding
| Windows hosts never would have been contemplated, but adding
| a new application framework that ran on our standardized
| Linux environments was no big deal. Ops folks are often much
| warier about adding heterogeneous compute environments than
| they are about adding new application architectures, so an
| easier onboarding process for Linux shops experimenting with
| .NET could plausibly drive adoption.
| osigurdson wrote:
| I'm not sure but, it is nice to be able to install things
| without having to add additional repositories.
| mythz wrote:
| I've been developing ASP.NET Core Apps on Windows since 2017
| (when .NET Core support was added to our FX) and have created &
| deployed >50 .NET Apps exclusively to Linux, primarily Ubuntu
| so this is a welcomed announcement.
|
| .NET definitely has first-class support on both Linux and
| Windows.
| mixxit wrote:
| We use linux for everything
| synergy20 wrote:
| A fully devoted Linux developer here that never touched Windows'
| ecosystem(.NET, Visual C++, win32 api, all those), any reason for
| me to jump on .NET? where does this runtime run(x86/windows, now
| linux, what about MacOS, and embedded systems), and what's the
| selling point(web framework in c++ like language? a better
| c++/java?)
|
| https://learnxinyminutes.com/docs/csharp/
|
| it looks more like Java than c++ to me.
|
| On a different note, I will state this again: I think microsoft
| will acquire Canonical one day.
| password4321 wrote:
| I don't think it offers anything compelling for cross-platform
| web/network services that Go does not.
|
| Microsoft relies on "fire and motion"1 to sell to developers,
| and typically reimplements instead of working with open source
| projects.
|
| Recent example: only Visual Studio 2022 supports .NET 6, time
| to upgrade.
|
| 1 https://www.joelonsoftware.com/2002/01/06/fire-and-motion
| stetrain wrote:
| Or you can use VSCode, Rider, or your text editor of choice
| plus the cli tools.
| stetrain wrote:
| It runs on Windows, Mac, and Linux x86/x64/Arm64
|
| The main target is enterprise software systems and web
| backends. Asp.Net is a very mature framework for Web APIs and
| MVC applications.
|
| Entity Framework is a decent ORM solution supporting several
| popular DBs with tools for code generation and migrations, and
| LINQ is a complementary query language that is useful for in-
| memory collection operations as well as db queries.
|
| And I think the largest value is in the NuGet software library
| ecosystem, things like MassTransit for service bus and queue
| communication and many many others.
|
| It's a well-supported ecosystem of first party and third party
| software with a lot of modern features, but definitely still in
| the realm of managed runtimes so not a competitor to C, Rust,
| etc.
| phwak wrote:
| > _Asp.Net is a very mature framework for Web APIs and MVC
| applications._
|
| *ASP.NET Core
| stetrain wrote:
| True, the non-Core versions really aren't worth considering
| for a new dev entering the ecosystem, and MS has made it
| clear that .NET Core is .NET going forward.
| WorldMaker wrote:
| ASP.NET is rumored to drop the "Core" name somewhere in
| major version 7/8/9, just as .NET dropped "Core" in .NET
| 5, which is a higher version number than both sides of
| the fork. There was briefly an ASP.NET 6 (technically,
| the baroque "ASP.NET 5 MVC 6"). There's never yet been a
| version higher than that. I _think_ part of the hold up
| there were some builds of the old Entity Framework made
| to version 8 or 9, and ASP.NET is not likely to drop
| "Core" until EF Core is able to drop "Core"?
| Tao3300 wrote:
| I've spent most of my career in Java and there are certainly
| some things that C# (I know, somewhat tangential to .NET at
| this point, but still relevant) does better. E.g. if I want to
| use declarative style to describe something I want out of a
| data structure, I'd much rather use LINQ than Streams.
| sedatk wrote:
| I think C#/.NET has more performance-oriented affordances than
| Java:
|
| - It supports structs, and unboxable structs called "ref
| structs". They let you to avoid GC/heap-alloc for small data
| structures with clear ownership semantics.
|
| - It uses type reification for generics instead of type
| erasure. Combined with value-types, this can produce very
| optimized code. The downside is larger binary sizes.
|
| - It allows unsafe programming with pointer arithmetic where
| performance is truly critical. This is where C# is closer to
| C/C++ than Java.
|
| - Supports native compilation to a target architecture. This
| lets you avoid JIT overhead and lets you ship self-contained
| binaries (like Go).
|
| - .NET supports source generators which can let you keep
| maintainable code and generate an optimized one.
|
| Performance aside, C# is a very pleasant language to use, and
| .NET is a delightful runtime. I'd say give it a try and see it
| for yourself.
| MarkSweep wrote:
| I wonder if this opens the door for .NET applications to be
| included in Ubuntu? Neither this blog post nor Ubuntu's [1]
| mention that as a possibility.
|
| Just thinking from a Ubuntu package level, where libraries live
| in packages separate from executables, it might be possible to
| create library packages using the result of 'dotnet store'. Then
| executable packages could reference them when running 'dotnet
| publish'. [2] That way multiple executable packages could share
| common libraries.
|
| Replicating the packages of a language package manager (Nugget in
| this case) into a system package manager (apt in this case) is
| probably not fun. You will end up with dependency nightmares or
| one system package per version of Nugget package. So maybe it's
| not worth doing.
|
| [1]: https://ubuntu.com/blog/install-dotnet-on-ubuntu
|
| [2]: https://docs.microsoft.com/en-
| us/dotnet/core/deploying/runti...
| guhidalg wrote:
| I don't think it would be wise for apt to repackage or recreate
| Nuget functionality. The initial install of dotnet should be
| done by apt, the packages should be handled by Nuget.
| pxc wrote:
| If you want to package an application which depends on a
| library, you have to package the library, too. This is the
| (pretty much sole) reason that distros package libraries.
|
| From a technical perspective it's pretty much a solved
| problem for any language ecosystem whose dependency
| management is reproducible, is uniform enough to support
| basic automation, and supports some measure of vendorization.
| jayd16 wrote:
| Ironically, .NET is positioned to use a shared runtime but
| Linux has all the package manager tooling and Microsoft's never
| took off. The buggy nature of shared runtimes on Windows meant
| that the culture is to ship a full runtime with your .NET app.
|
| I'm not sure going back to shared runtime libs is worth the
| headache but I guess if you were really resource constrained
| but running .NET it would work for you.
| WorldMaker wrote:
| Ubuntu _briefly_ included Mono-based apps in the core
| distribution. Sadly the backlash controversy after that around
| the size of the Mono runtime (which wasn 't much bigger than
| Python at the time, but got a bit of a "but we've already got
| Python, we don't need 2 Pythons" in response, and ahead of the
| whole python2/python3 split, hah) and the worse controversy
| about Microsoft-adjacent conspiracy theories did a lot of
| damage to the then-nascent world of Gtk+ based .NET apps in
| Linux and left some scars.
|
| The first part seems to add confidence that _if_ the right apps
| /developers came along, Canonical themselves likely wouldn't
| have a problem putting them in the distribution. The second
| part would explain why there aren't just apps waiting in the
| wings for it and why "the community" (or at least certain vocal
| parts) may still not be as welcoming of .NET-based apps in the
| distribution this time around like it played out that previous
| time.
| samuell wrote:
| Moved to Debian 11 after (X)ubuntu moved to snap packages.
|
| Anybody knows if this affects the ease of installing on Debian 11
| in any way?
| 6581 wrote:
| > Anybody knows if this affects the ease of installing on
| Debian 11 in any way?
|
| MS provides packages for Debian. https://docs.microsoft.com/en-
| us/dotnet/core/install/linux-d...
| [deleted]
| alanwreath wrote:
| I swear Ubuntu is being prepped to become Windows 12
| Bolkan wrote:
| I know right, I can't wait.
| noisy_boy wrote:
| I'll take the opportunity to jump on this thread to fish for
| recommendations on courses/guides to learning C# to be used with
| .NET - for programmers. I mainly see those that are way too
| simple or way too Windows specific.
| runfaster2000 wrote:
| Anyone notice the part of the announcement about Chiseled Ubuntu
| Containers?
| kapilvt wrote:
| yeah I'm quite curious, but it appears to be undocumented
| outside of the code, it reads like a way to strip a container
| given a yaml config file to extract out the important bits.
| ZeroCool2u wrote:
| I've recently been working with a C# app that's based on a nearly
| out of support .net 3.X version I think. It's fully inherited
| from a tech partner, but we have free reign to modify it as
| needed. I was excited to try and port it from a Windows only
| older .net app to .net core 6, but unfortunately too much of it
| doesn't have a simple to port to equivalent in .NET 6 and it
| would require us to completely rewrite it. This is all because
| it's a SOAP client, so I'm happy to forgive Microsoft for not
| spending too much time there. We don't have any control over that
| part either. It's the only thing in our entire infrastructure
| that runs on Windows and costs multiples of just about anything
| else we've got running, because of the Windows license. Huge
| bummer. We did get it streaming our data into BigQuery though, so
| that was cool to see work so well even on an older code base.
|
| I think at this point my last real major gripe with .NET is
| Visual Studio. I've used it on and off over the years, but every
| time I get back into it, it's just so much mental overhead to try
| and understand how the hell things are organized. It's like
| jumping into an ice bath coming from JetBrains/VS Code land. Just
| really unpleasant, but I don't think I'll be able to get away
| from it with this older C# code base.
|
| Somewhat unrelated. I really wish Microsoft would improve the
| install/packaging story for their C++ build tools on Windows.
| Trying to guide your IT department on how to install specific
| compiler versions to get TensorFlow/PyTorch and more importantly
| other less popular Python packages that require you to build from
| scratch on Windows has been a nightmare for so long. It's one of
| the things I mostly singularly dread dealing with. I really wish
| we could just enable the dev/compiler tool chain support without
| requiring admin credentials and have it be fully automated
| instead of trawling around the nightmarish Microsoft downloads
| site.
| pathartl wrote:
| There's always Rider which works very well for .NET stuff.
|
| For older applications, I would consider Mono or WINE if you
| really want to run it on Linux. We are experiencing the same
| scenario where we have an application that was built on .NET 4
| over 10 years ago and there's a couple of packages we rely on
| that will not work on .NET 5/6. We have a rebuild planned, but
| it will be a large overhaul.
| mook wrote:
| > I really wish Microsoft would improve the install/packaging
| story for their C++ build tools on Windows.
|
| Not sure if this is what you mean, but vs_installer.exe
| supports command line arguments like --add, so you should be
| able to craft a giant command line for IT to copy. Used it for
| work for the NodeJS equivalent of your use case.
| hnra wrote:
| SOAP as in WCF? If so then there is now a WCF port out now:
| https://github.com/CoreWCF/CoreWCF
| ivraatiems wrote:
| > I think at this point my last real major gripe with .NET is
| Visual Studio.
|
| I don't understand - what's stopping you from using JetBrains
| Rider? I use it and I work on some pretty ancient .NET projects
| from time to time.
| sylens wrote:
| Not everybody's company is going to pay for a license if they
| already are licensing Visual Studio for everyone.
|
| As an individual, I only have a little bit of time to tinker
| with personal projects, and while I like C#/.NET so far, I'm
| not yet at the point where I feel comfortable paying for
| Rider's subscription. So I'm also mostly using VS2022
| Community and VS Code (on macOS) so far. Hoping to eventually
| get to a point where paying for Rider becomes a no brainer.
| mikece wrote:
| It has been rumored for years that Microsoft might acquire
| Ubuntu. This is an interesting move though not proof of any such
| future merger. All of that said, it would be nice if Microsoft
| had the same level of cooperation with Fedora and another distro
| or two as well.
|
| (And where the hell is support for .NET Core on FreeBSD???)
| Bilal_io wrote:
| [redacted]
| runfaster2000 wrote:
| Fedora and Red Hat have offered .NET packages for years. We've
| worked very closely with those folks and they've taught us a
| lot about how to work collaboratively with distro maintainers.
| We meet with them weekly. Notice that Fedora is mentioned in
| the blog post and here: https://docs.microsoft.com/dotnet/core/
| install/linux#officia....
|
| Also notice that our default build instructions are for Fedora:
| https://github.com/dotnet/installer#building.
|
| I'm the post author.
| ladyanita22 wrote:
| This just puts Ubuntu at the same level as Fedora/RH/Arch
| were before, am I right? In the sense that this just means
| .Net is in the official repos (as was the case for
| Fedora/Arch before)
| omajid wrote:
| Yes.
|
| But your list is incomplete! .NET is also part of Alpine's
| community repository https://pkgs.alpinelinux.org/packages?
| name=dotnet*&branch=ed... and is also available in Homebrew
| https://formulae.brew.sh/formula/dotnet
|
| Other distributions are welcome to join:
| https://github.com/dotnet/source-build/discussions/2803
| [deleted]
| runfaster2000 wrote:
| Folks are working on FreeBSD support:
| https://github.com/dotnet/runtime/pull/71486
| wongarsu wrote:
| I would have expected .NET's core demographic to be mostly
| CentOS and RHEL users. But I imagine Microsoft really wants you
| to run your workloads in Azure instead of on-premise, and
| Ubuntu fits that model better.
| runfaster2000 wrote:
| We started with Red Hat. They were our .NET Core 1.0 launch
| partner (and remain a very close partner). You can run Red
| Hat on-prem or in the cloud (obviously).
| keewee7 wrote:
| >I would have expected .NET's core demographic to be mostly
| CentOS and RHEL users.
|
| Why? There is nothing "Enterprisey" about .NET Core. It's a
| perfect fit for both fast-moving startups and big
| enterprises.
| throy939849500 wrote:
| For FreeBSD support, see the following issue for the porting
| effort. The community has been working like hell to make it
| happen since 2015 and at this point we have regular unofficial
| builds: https://github.com/dotnet/runtime/issues/14537
|
| About 2 months ago they crushed hopes that official FreeBSD
| support will happen anytime soon by clearly stating that at
| this point, updating their Quality Assurance process to support
| FreeBSD would not make business sense for them as they have to
| put together an extensive test suit and manual testing
| procedures for every OS. Microsoft folks remain friendly and
| helpful in the thread though.
|
| The FreeBSD ports system insists on requiring third party
| applications to be able to be built from source offline, while
| the .NET build process downloads packages left and right at
| various parts of the process. This is one of the things that
| complicates its inclusion in the ports tree. Building .NET for
| FreeBSD is close to rocket science, the community has worked to
| make the process way simpler. It is frustrating that the .NET
| team refuses to take things from there. Providing FreeBSD
| support is what I would expect from them to strengthen their
| cross-platform posture. This is the last major platform they
| need to support, and one being heavily used for servers.
| pxc wrote:
| > The FreeBSD ports system insists on requiring third party
| applications to be able to be built from source offline,
| while the .NET build process downloads packages left and
| right at various parts of the process.
|
| As someone who is not a part of the FreeBSD community, I just
| wanted to chime in to say that the FreeBSD Ports people are
| absolutely correct here, and that the build time behavior you
| describe is Bad Behavior(tm) that is likely to get in the way
| of any distribution (Linux or FreeBSD or macOS or anything
| else) that follows basic best practices with respect to build
| sandboxing on their CI/CD systems, build clusters, etc., even
| if it can eventually be hacked around.
|
| Building software outside of a sandbox with restricted
| network access is how you get lovely exports like credential
| scrapers in your setup.py or your NPM install hooks, perhaps
| running as root. Downloading your dependencies at build time
| from _within_ the build system without first emitting a
| manifest with hashsums of what you intend to download is a
| huge problem for reproducibility, too.
| 323 wrote:
| > Microsoft might acquire Ubuntu
|
| That would make a lot of sense, despite the backlash it would
| generate.
|
| Remember when they acquired GitHub, developers were vouching to
| move over to GitLab. Yet very few did.
|
| The same would probably happen if they acquire Ubuntu.
| Developers would vouch to move to another distribution, yet few
| will, because Ubuntu is so much nicer to use than the
| competition.
| pwdisswordfish9 wrote:
| The word you're looking for is "vow".
| pxc wrote:
| > Remember when they acquired GitHub, developers were
| vouching to move over to GitLab. Yet very few did.
|
| GitHub benefits from a powerful network effect: if you want
| contributions from the greatest number of developers, you
| need to be on the platform they use and understand.
|
| Ubuntu doesn't have a comparable form of social lock-in. As
| long as they are popular and until portable and/or
| containerized package formats for Linux mature, they do exert
| some network pressure on _publishers_ , but not really end
| users.
|
| > Ubuntu is so much nicer to use than the competition.
|
| I don't think this has been true for some time. Canonical's
| server offerings are pretty much coasting on the mindshare
| that they gained with current-gen Linux sysadmins and
| developers who grew up experimenting with desktop Linux in
| the aughts, when the usability delta between Ubuntu and other
| mainstream distros really _was_ vast.
|
| They still benefit quite a bit from their willingness to
| bundle proprietary software with the OS, and from sheer
| inertia on the desktop, where they are still most likely to
| receive native packages by proprietary software vendors.
|
| But the collection of desktop operating systems that actually
| attract new users to the ecosystem who will become the next
| generations of Linux sysadmins is increasingly comprised of
| distros that are not based on Ubuntu. User-friendly Arch
| downstreams now have more and more of theml mindshare that
| Ubuntu did when I was 'growing up.
|
| The most popular Ubuntu-based distribution, which has
| actually surpassed Ubuntu both in interest from new users and
| in its reputation for OOTB usability, deviates strongly from
| Ubuntu in some core technical aspects that make some Ubuntu
| knowledge non-transferable.
|
| APT is aging poorly, even compared to its RPM-based
| counterparts. It has recently been at the center of some high
| profile blowups where package installation triggers a
| catastrophic cascade of uninstallations that newbies would
| likely perceive as 'bricking' their installations. This has
| damaged the reputation of the most popular Ubuntu-based
| distros, including Ubuntu itself as well at driving home the
| case for portable/containerized package formats.
|
| The success and growth of these portable package formats,
| including Snap itself, additionally threaten to undermine
| Ubuntu's strategic advantage because they work pretty much as
| well on any distro as they do on Ubuntu.
|
| Moreover, Canonical's own offering in that space is _already_
| driving users away from Ubuntu. Snap is slow, clunky, space
| hungry, and bandwidth hungry, and the way that Ubuntu has
| chosen to force Snap packages for key software, e.g.,
| Firefox, has had a negative impact even (and perhaps
| especially) among non-technical users precisely because it
| has a shitty UX.
|
| Meanwhile Snap has failed to gain much developer interest
| outside of Canonical, and looks likely to suffer many of the
| same adoption problems as previous Canonical offerings in the
| space of core system software like Upstart and Mir. It seems
| that Canonical has not figured out a way, in the past decade
| or so, to displace Red Hat as the most influential
| corporation on projects that require widespread, cross-distro
| adoption to succeed.
|
| Similarly to the situation witb portable packaging formats,
| there's a pretty clear trend in the wider Linux world away
| from relying on old-school package management 'raw' in favor
| of immutable operating system images. There are Ubuntu
| derivatives in this space, but the clear leaders are NixOS on
| the radical side and Fedora Silverblue for the more
| conservative approach that reinforces/enhances traditional
| package management tools with OSTree to gain some of the same
| benefits.
|
| It may be that Canonical's advantage in the server space and
| among developers is 'sticky', now that Ubuntu is established
| in those markets, and that it's less ripe for the same kind
| of play that Ubuntu made by building mindshare first on the
| desktop. They may also catch up in some of these areas.
|
| But for all of the reasons I outlined above, I don't think
| Canonical is in nearly as strong a position to retain its
| relevance as GitHub was, especially in the long term, in the
| face of one more thing that makes it less attractive to new
| desktop users for whom much of the appeal of running Linux in
| the first place is escape from Microsoft.
| pmontra wrote:
| I'll be one of the few. Maybe I'll give a try to Debian but
| probably I'll end up using one of the Ubuntu replacement
| distroes that will popup. Or Pop!_OS outright.
|
| I'll never trust Microsoft again after all they did in the
| 2000s. Transitively, I'll never trust any comparably sized
| company.
| sylens wrote:
| I've always thought that a Microsoft Linux distribution would
| be incredibly interesting. They could give the user experience
| a new round of polish without being weighed down by the years
| of legacy support, compatibility, and cruft on Windows.
| bearzdev wrote:
| they have an internal distro on github:
| https://github.com/microsoft/CBL-Mariner
| nikanj wrote:
| Young me would've lost a good bottle of Scotch over this headline
| - especially coming straight from Microsoft.
|
| The times sure have changed
| omajid wrote:
| You are a few years late :)
|
| From the .NET Core 1.0 announcement made in June 2016:
| https://devblogs.microsoft.com/dotnet/announcing-net-
| core-1-...:
|
| > Today we are at the Red Hat DevNation conference showing the
| release and our partnership with Red Hat. Watch the live stream
| via Channel 9 where Scott Hanselman will demonstrate .NET Core
| 1.0. .NET Core is now available on Red Hat Enterprise Linux and
| OpenShift via certified containers.
| nikanj wrote:
| I wasn't young in 2016 either :")
| mk89 wrote:
| Well, times clearly changed but the end goal remains the same.
|
| I don't have data, however, from what I see/read, there is a
| tendency of developers/companies using .NET environments to
| just go for Azure. It looks like it comes as a big package,
| while it doesn't have to be like this, but hey, that's how it
| works especially in enterprise companies.
|
| How much does/did it cost to port .NET to mac/Linux? Compared
| to what you gain just by having a few customers in the cloud,
| maybe crumbs: provide a good dev environment, people will
| clearly opt for your cloud services.
| lol768 wrote:
| For reasons currently unclear to me, installing this seems to
| cause apt to remove Discord. The following
| packages have unmet dependencies. libc++1-14 :
| Depends: libunwind-14 (>= 1:14.0.0) but it is not installable
| libc++abi1-14 : Depends: libunwind-14 (>= 1:14.0.0) but it is not
| installable E: Unable to correct problems, you have
| held broken packages.
| jcelerier wrote:
| it's always the same debian / ubuntu package mess. moving to
| Arch has made this specific headache entirely go away
| jpetso wrote:
| On an opposing note, updating my Arch system (pikaur -Syu)
| recently wanted to install Electron 20 and remove Electron
| 19, which the element-desktop package was still depending on.
| I wasn't using it so that's an easy uninstall. But there's
| nothing inherent about Arch that prevents these issues from
| popping up every now and then.
| jcelerier wrote:
| > On an opposing note, updating my Arch system (pikaur
| -Syu) recently wanted to install Electron 20 and remove
| Electron 19,
|
| hm that's weird, with yay it only ever adds new electron
| versions, never removes the old ones. e.g. there's
| electron12 to 20 in the repos and they can be installed
| side by side
| progman32 wrote:
| Or Gentoo with their"slot"s.
| ladyanita22 wrote:
| Can you have several versions of the same package with
| pacman?
| mminer237 wrote:
| Ubuntu's .NET runtime relies on libunwind v13. Discord relies
| on libunwind v14. apt only allows one version of something to
| installed at once.
| skrebbel wrote:
| Every once in a while I consider switching to Linux and then
| I read things like this and then i remember why I keep
| sticking with Windows.
| fulafel wrote:
| This is not generally the case: "apt only allows one version
| of something to installed at once" - apt and dpkg always
| supported having different major versions of a shared library
| installed concurrently.
|
| See eg https://www.debian.org/doc//debian-policy/ch-
| sharedlibs.html which says
|
| > The run-time shared library must be placed in a package
| whose name changes whenever the SONAME of the shared library
| changes. This allows several versions of the shared library
| to be installed at the same time, allowing installation of
| the new version of the shared library without immediately
| breaking binaries that depend on the old version.
|
| In this libunwind case the situation is more complicated, the
| its different versions have conflicting subdependencies.
| runfaster2000 wrote:
| Context:
| https://bugs.launchpad.net/ubuntu/+source/dotnet6/+bug/19844...
| bob1029 wrote:
| The .NET ecosystem is giving me a lot of confidence these days.
| I've been on this rollercoaster since .NET Core 2.x and don't
| think I will be getting off any time soon.
|
| We recently upgraded from 3.1 to 6, which was a total non-event.
| The code base that was around for Core 2.x is still the same one
| we have today. Some substantial changes made to the web
| interfaces and hosting, but nothing in the business logic or data
| models was impacted.
|
| We currently use Self-Contained Deployments to Windows machines,
| but there are only 2 minor methods stopping us from using a Linux
| image as well. Looking for a really good reason to make the jump,
| but I can't justify it to the business yet.
| lovetocode wrote:
| I just jumped on the .NET Core gravy train after 6+ years of
| Ruby on Rails development. I feel so productive and confident
| working with .NET. Ill be riding this rollercoaster with you
| for a while!
| imafish wrote:
| Any interest in doing a short comparison? As in, why are you
| in no rush to switch back to rails? Any features you miss
| from rails? (edit: register beat me to it. I'll leave my post
| as a +1)
| lovetocode wrote:
| For the most part, I think there is a lot of feature parity
| between the .NET and Ruby on Rails frameworks when it comes
| to developer tooling.
|
| As I grow older I guess I am growing more fond of
| statically typed languages. It's easier for my
| decaying/distracted brain to reason about. There is less
| mental overhead I suppose [might be a good blog post?]
|
| They both have a good database migration system and various
| generators for scaffolding views, controllers, etc. To be
| fair I believe Entity Framework does most of the work for
| the .NET side on the database developer tooling but I just
| consider it part of the .NET ecosystem since it seems to be
| the go-to ORM/database tooling library. I want to be fair
| to Rails -- I really think they set the bar very high for
| other frameworks. Productivity w/ Rails was unprecedented
| when it first came out. I started during the Rails 3 to 4
| upgrade.
|
| Both ecosystems have easy access to outside libraries using
| Nuget/Gemfile. So pulling in a background processor like
| Sidekiq [Ruby] or Hangfire [C#] is fairly easy.
|
| Cross platform support is acceptable across both frameworks
| as well. I can setup an EC2 instance and run both Rails and
| .NET applications side-by-side. So deployments are going to
| be similar but I would argue that .NET has the upper-hand
| because it can deploy do a self-contained deploy so you
| don't have to worry about installing dotnet in the
| deployment environment.
|
| I am using Blazor Server and I am not going to say
| something drastic like it will kill React but it is pretty
| awesome. I can build my entire web experience with C# but
| with Rails I have to introduce React when I sometimes dont
| want to. Blazor prevents me from having to write HTTP code
| from my front to backend systems and as an indie developer
| that is a godsend.
|
| Both have gorgeous documentation -- I thought Rails was
| good and thorough but .NET ate their lunch.
| platz wrote:
| I would advise against Blazor Server. In contrast to
| standard frontend SPA frameworks, Blazor Server requires
| a peristent websocket connection to each client to
| execute the C# code you write on the client and maintain
| state. I found that connection is easily/fequently
| disrupted resulting in an app reset, lost state, and poor
| user experience, to say nothing of the scalability
| implications.
|
| Though, for a purely back-office app with minimal state,
| that might be OK
| useerup wrote:
| > Blazor Server requires a peristent websocket connection
| to each client to execute the C# code you write on the
| client and maintain state
|
| Blazor Server retains the circuit for up to 3 minutes if
| the connection is lost, so you do not loose the
| connection even if the websocket connection is
| interrupted.
|
| It is also not correct that it needs a websocket
| connection. It builds on SignalR which will use
| websockets if available but will fall back to other
| methods such as long polling to emulate a persistent
| connection.
|
| Blazor Server absolutely has it's place, but you need to
| know when that is. You can even scale it out on multiple
| servers, but at least until .NET 7 you'll need to ensure
| "sticky" connections (the client must connect to the same
| server based on e.g. IP address, cookie or similar).
| lovetocode wrote:
| It sounds like you have been using Blazor a lot more than
| I have so I'll take your word for it. I haven't any
| massive traffic yet. Is this something I can reproduce
| with a benchmarking tool?
| theonething wrote:
| > with Rails I have to introduce React
|
| Do you know about Hotwire? It's Rail's html over the wire
| solution and seems comparable to Blazor.
| lovetocode wrote:
| Hotwire I believe wasn't introduced yet but was close to
| release when I left the Rails dev community.
| gregmac wrote:
| > As I grow older I guess I am growing more fond of
| statically typed languages. It's easier for my
| decaying/distracted brain to reason about. There is less
| mental overhead I suppose
|
| I'm not even sure it's an "older" thing -- it's nice just
| to have less mental overhead.
|
| The things that used to turn me off from static languages
| (eg: most of the benefits dynamic languages have) have
| disappeared. Generics allows creation of some powerful
| re-usable code (eg, List<T> or RunningAverage<T>). Tools
| to easily convert any random JSON or XML to concrete
| classes make it a simple extra step to consume any API.
|
| The benefits are massive. Code-completion just frees your
| brain from having to remember or deeply think about
| what's available. Type-safety giving compile-time (or
| even coding-time) errors prevents so many stupid problems
| that, in a dynamic language, take a runtime check to
| find.
| Akronymus wrote:
| Technically it isn't .net core anymore, but just .net.
|
| The many different versions were quite confusing. I am happy
| that they are now unified.
| billpg wrote:
| Old .net has become ".net framework".
|
| I'm just glad the number-space has been sorted out. It was
| annoying to learn that ".NET 2", ".NET Standard 2" and
| ".NET Core 2" are very different things.
| Akronymus wrote:
| > Old .net has become ".net framework".
|
| From my understanding, thats not quite right. AFAIK
| framework was adapted to differentiate it from standard,
| core and mono.
| WorldMaker wrote:
| Old .NET was _always_ ".NET Framework". Microsoft had
| many years of branding advice early in .NET history that
| it was never to be called just .NET because their
| branding teams were using that as a wider initiative that
| included other things. Most of those other things died or
| were rebranded and .NET Framework was the last one
| standing. .NET 5 was the first ever "just .NET",
| technically from a historical perspective.
| mbesto wrote:
| .NET's terminology is as clear as mud:
|
| https://stackoverflow.com/questions/51390971/im-lost-
| what-ha...
| hermitdev wrote:
| It's really too bad the naming/versioning has gotten so
| confused. I used to be a heavy .Net user, then stepped
| away for a while when I changed jobs. Every time I try
| and come back, I get so confused. Am I looking at the
| right docs? Is this API available for the platform I'm
| on? It's bad enough with .Net, itself, but what about GUI
| libs? What's even supported anymore? What's _actually_
| stable and not in pre-release? It 's a shame, because
| .Net is damn good, but the messaging around it has been
| awful in my experience.
| tartoran wrote:
| Yes, big poop show on naming convention changes done
| terribly. Eventually the dirt will settle and become
| easier to navigate if it hasn't started already.
| zasdffaa wrote:
| Christ, the mess that are the docs. And the complexity.
| Just lost well over an hour trying to get a non-trivial
| regex working (that would have taken me 30 secs in
| emacs). Gave up and just used split() and it just worked.
| Never again, I swear.
| custard42 wrote:
| What was the problem -- the regex pattern, or some API?
| zasdffaa wrote:
| Capture pattern [edit: I meant capture brackets]
| extraction. Could get one of them (?!) or nothing at all,
| but... never again. MS doc examples = no success, not SO,
| not various blogs.
| octopoc wrote:
| Might want to check out RegexStorm [1]. It's a .NET regex
| tester in your browser. Yeah the docs are great but
| there's nothing like instant feedback to test your regex.
|
| [1] http://regexstorm.net/tester
| zasdffaa wrote:
| Thanks but regexes I know pretty well, the regex object
| docs just were horrible.
| Akronymus wrote:
| > Christ, the mess that are the docs.
|
| You don't love getting 404s almost all the time?
| register wrote:
| I have been a long time "enterprise languages" developer.
| First Java/J2EE then .NET in the last 10+ years. I already
| felt that moving to .NET was a jump forward with respect to
| J2EE but have always been curios about startup
| languages/stacks like Ruby and Clojure. Lately I was much
| tempted to do some side project on Rails because I find the
| Hotwire/Nojavascript trend very reasonable for a lot of real
| use cases . How do you compare modern Rails with modern .NET?
| lovetocode wrote:
| I haven't worked with Rails since Rails 5 so I dont know if
| I could do a fair comparison of how they are as it stands
| today. Check one of the comment replies above where I
| outlined some of my thoughts in a similar question.
| TheRealDunkirk wrote:
| I'm glad for you, but ActiveRecord is still the best ORM of
| all time. OF ALL TIME. I rewrote one of my main Rails
| applications in .NET, and trying to use Entity Framework was
| like pulling teeth for me, in comparison.
| pjmlp wrote:
| Unfortunately we were a tiny Lisbon startup with our own
| in-house clone of AOL Server and Tcl was never a hyped
| language, otherwise I don't really see what it does better.
|
| Our Tcl ORM was doing Sybase, SQL Server, DB2, Informix,
| Oracle and even Access, across Windows 2000/NT, AIX, HP-UX,
| Solaris, Linux, in 1999 - 2002.
|
| But we never went big into US, so Rails gets the credits.
|
| And we were not alone in this regard, there was Vignette,
| Cold Fusion, Zope,...
| echelon wrote:
| I'm glad it works for you. It gave my team years of
| headache while we ported it all to jOOQ.
|
| Also our Ruby engineers liked the flexibility so much that
| they exposed our entire database as a service to customers,
| which we had to emulate and support.
|
| Two sides to every position.
| z9znz wrote:
| > they exposed our entire database as a service to
| customers
|
| ActiveRecord is the least of your problems, then... seems
| like you may have a fundamental problem of inexperienced
| or foolish devs.
| pianoben wrote:
| Amen to that. We had a high-level engineer who sincerely
| believed that Rails and Postgres were the right tools for
| Everything. Consequently he shipped a mission-critical
| query engine whose API is - you guessed it - just
| ActiveRecord!
|
| It's great if your users are disciplined and experienced
| Rails engineers who understand how the system works, but
| we don't live in fantasy land and a year later, we are so
| very constrained by the unlimited DB access that we're
| rewriting it all and leaving ActiveRecord out of the
| equation.
|
| I'll always maintain that Rails is the first tool I'd
| reach for in a new web startup, and the first one I'd
| discard after growing past ~20 engineers.
| Spivak wrote:
| > It's great if your users are disciplined and
| experienced Rails engineers who understand how the system
| works.
|
| I'm continuously shocked at how much bad ActiveRecord
| code there is lying around given that it's so easy to
| just look at the SQL it generates and be like "yeah this
| looks reasonable".
|
| _WHY SPONGEBOB WHY!?!_ Why do you pass around your
| relations making all of ActiveRecord part of your
| external API? It 's so hard to do stupid things with AR
| if you pretend that AR objects can't leave the scope they
| were fetched in.
| jen20 wrote:
| > given that it's so easy to just look at the SQL it
| generates and be like "yeah this looks reasonable".
|
| This makes the assumption that the viewer knows what
| reasonable SQL looks like in the first place.
| TheRealDunkirk wrote:
| You shouldn't blame Ruby (or ActiveRecord) for
| infrastructure decisions that are inherently bad,
| irrespective of platform or technology. I mean, this is
| HN, and you WILL, but you _shouldn 't_. ;-)
| kirse wrote:
| If you're on that .NET train check this out as well, keep it
| on the DL though
|
| https://fsharpforfunandprofit.com/why-use-fsharp/
| lovetocode wrote:
| Thank you -- I have heard of fsharp but wasn't really
| familiar with the answer to the question of why use it?
| belmont_sup wrote:
| The benefits of tools built into the functional
| programming world with complete access to all C#
| libraries.
|
| But it's hard to convince a C# dev to use F# when they're
| so comfortable and see no obvious need to switch.
| EddySchauHai wrote:
| My friend works at an F# consultancy - from what I've heard
| it's definitely growing in popularity! I used it for some
| windows profiling in 2020 which was pretty cool too, albeit
| only really a single script.
| TillE wrote:
| C# is such a cozy language, anyone familiar with C++ or Java
| can instantly bang out half-decent code, and there's a ton of
| great features to gradually learn and use. And the
| performance is about as good as it gets for a language with
| garbage collection. Big fan.
| orthoxerox wrote:
| And ASP.Net Core is an insanely fast web framework. It
| beats every other major framework written in a managed
| language by a mile. There's no way your backend will
| outgrow it if your workload isn't RAM-limited.
| wiseowise wrote:
| > And ASP.Net Core is an insanely fast web framework. It
| beats every other major framework written in a managed
| language by a mile*
|
| * In synthetic benchmarks
| KronisLV wrote:
| Would you call TechEmpower benchmarks synthetic? I think
| they're a pretty useful data source and indeed support
| the claim that the performance of .NET is rather good.
|
| https://www.techempower.com/benchmarks/#section=data-r21
|
| Personally I think that some of their tests are pretty
| close to what web applications might actually do a lot of
| the time (fetching the data, processing it, saving it),
| for example, see here: https://github.com/TechEmpower/Fra
| meworkBenchmarks/tree/mast...
|
| Sure, sometimes the code you see in benchmarks can be a
| bit more clever than the code you'd see normally, but for
| the most part TechEmpower seems close enough to be a
| vague indicator towards what frameworks/languages/stacks
| have decent performance.
|
| It also helps you get a feel for how big the differences
| are between any two given platforms, like using something
| like Java + Spring and Python + Django, which may or may
| not be relevant in actual business conditions, since you
| might also want to iterate quickly.
| gregmac wrote:
| Ok, but how else do you compare two frameworks?
|
| The only other real way is to write two programs that do
| the same thing in both. You need to put in the same
| degree of runtime/environment-specific optimizations
| (which, notably, will result in different code), but
| except for in trivially simple applications (eg: "TODO
| app") which are arguably also "synthetic", the
| optimizations are always going to leave room for debate.
| neonsunset wrote:
| It produces best performance OOB with minimal API way of
| registering your endpoints. Which is expected to be the
| default way for many newcomers to the framework. On
| 5800X, hello world with some logic and cached JSON output
| (not raw bytes but actual response object so no cheating)
| produces over 4GB/sec when benchmarked over localhost on
| .NET 7.
|
| Host: https://gist.github.com/neon-
| sunset/767cb0693c3ff222f78b236c...
|
| HTTP Benchmark: https://gist.github.com/neon-
| sunset/d936e54bfec1031d1628c338...
| TrueSlacker0 wrote:
| I am in the process of moving a .Net web forms to .Net
| core razor pages and the performance difference is
| insanely noticeable.
| u1tron wrote:
| What kind of applications you build primarily with.net6?
| bob1029 wrote:
| For work, a workflow/BPM platform for community banks &
| credit unions.
|
| For fun, a game engine complete with a pure software
| rasterization pipeline.
| [deleted]
| benbristow wrote:
| > Looking for a really good reason to make the jump
|
| Not having to pay for Windows Server licences?
|
| Better start-up performance, likely better overall performance,
| less resource usage.
|
| Assuming these are specific Windows calls, moving to something
| more cross-platform you could open development to colleagues
| with Mac or Linux machines (via VS Mac, JetBrains Rider or VS
| Code) if there are any.
|
| Options to use Kubernetes or deploy to container services that
| run on Linux
|
| A few reasons.
| maccard wrote:
| > Not having to pay for Windows Server licences?
|
| Chances are that those licenses are paid for already so this
| is a sunk cost.
|
| > Options to use Kubernetes or deploy to container services
| that run on Linux
|
| I think this would be a hard sell - "hey, let us migrate
| platforms so we can rewrite our entire production
| infrastructure "
| mwcampbell wrote:
| Do you use ASP.NET Core Identity or roll your own auth? The
| thing that bugged me about ASP.NET Core Identity when I looked
| in late 2020 was that it stores too much info in the cookie
| itself. So if a user logs in, and then their authorization
| details change, the cookie could become stale. I've come around
| to the conclusion that the cookie should just be an opaque
| identifier pointing to a database record on the server. Most of
| us aren't trying to optimize authorization for Google (or
| Microsoft) scale.
| bob1029 wrote:
| I DIY auth with .NET.
|
| Every client gets 256 bits of entropy cookies which uniquely
| identify their "device". The server will then deal with this
| as required to guide auth flows.
| NDizzle wrote:
| Cost... linux images should be a fraction of the cost of a
| Windows image. Unless, of course, you're using Azure, where
| they subsidize the cost of SQL Server by charging more for
| linux boxes/containers.
| bob1029 wrote:
| Currently, our customers are the ones running the software on
| their machines.
|
| We haven't run into a customer that wants us to host for them
| yet (and probably won't ever in our market of banking).
| zip1234 wrote:
| Azure App Service linux is much cheaper than windows.
| tomnipotent wrote:
| For most businesses with less than a hundred instances, the
| cost is negligible and probably is cheaper than the companies
| Slack bill.
| NDizzle wrote:
| Windows server licenses[1]!? Even looking at EC2 it's
| nearly 3x more expensive to run Windows than Linux, at a
| glance[2].
|
| [1]: https://www.microsoft.com/en-us/windows-
| server/pricing?rtc=1 [2]: https://parquantix.com/linux-
| windows-aws-cost-comparison/
| tomnipotent wrote:
| Yes, still irrelevant. The only people that seem to
| complain about the cost are people not actually
| responsible signing off on invoices. Compared to the many
| other costs a company is spending money on, it's unlikely
| the MS expenses will even show up in a budget review
| unless you're really screwed the pooch.
| sixothree wrote:
| I would not say the cost is a fraction. The cost of the
| machines are certainly a fraction reduced.
| eitland wrote:
| .Net has run better on Linux (edit: better than on Windows)
| machines since at least before the pandemic.
|
| I'm a Java dev, but I have also developed on .Net and running
| modern .Net on Linux is about as simple as it get.
| wing-_-nuts wrote:
| Does visual studio run on linux yet? That's my rubicon for
| taking .net seriously. It's not just about the runtime, the
| tooling has to be present as well.
| NDizzle wrote:
| Code does... Visual Studio itself not so much.
|
| Why is that a requirement to take it seriously? I've been
| deploying apps developed in OSX/Windows to linux boxes
| for 20 years...
| eitland wrote:
| I don't know.
|
| I don't like Visual Studio and haven't touched it since I
| realized VS Code worked fine.
|
| (I'm more of an Eclipse/NetBeans/VS Code kind of person.)
| tm-guimaraes wrote:
| VS does not run there. But you have Jetbrains' Rider
| there.
| jackmott42 wrote:
| No, but they make a high quality plug in for VS Code
| which gives you a similar overall experience, as well you
| can use JetBrains C# IDE which is very good and often
| preferred even on Windows.
| fenring wrote:
| try Rider from JetBrains, it's as good or better as
| Visual Studio. I'm developing .NET projects (web) on
| macbooks with Rider for last 2 years, and do not miss
| Visual Studio at all
| ledgerdev wrote:
| Extremely unlikely vs will ever run on linux, pretty sure
| it's built using wpf which is window only. The tooling on
| linux is just fine, and VSCode and Jetbrains rider are
| your main options.
| keewee7 wrote:
| JetBrains Rider on Ubuntu/Mac is probably a better
| development experience than Visual Studio on Windows.
| RexM wrote:
| I use JetBrains Rider on Windows instead of Visual Studio
| and love it.
| octopoc wrote:
| Same here. Resharper + Visual Studio is about equivalent
| to Rider, but the performance of Resharper + Visual
| Studio is *horrible* compared to Rider.
| ok123456 wrote:
| As long as it's not a desktop application that requires
| WPF.
| kaba0 wrote:
| WPF won't run on linux, so that's not in question either
| way.
| zenron wrote:
| Your rubicon is about 5 years out of date. VS Code and
| Rider are excellent tooling for .Net on or off Windows
| OS.
| guitarbill wrote:
| This is not quite true on an M1 Mac. The VS Code C#
| extension only supports .NET Core, and the latest and
| deprecated release 3.1 has no ARM build. .NET 6 does, but
| is somehow unsupported.
|
| To me, it's clear Microsoft wants to force people to use
| VisualStudio over VSCode. Likely not an issue for a .NET
| shop, but it's yet more shenanigans by Microsoft
| artimaeis wrote:
| Er, what? The VS Code extension gets updated all the
| time, it was updated in tandem with .NET through to .NET
| 6 and is currently being developed for .NET 7.
|
| https://marketplace.visualstudio.com/items?itemName=ms-
| dotne...
|
| Works with Linux x64, Alpine Linux 64 bit, macOS Intel,
| Linux ARM64, macOS Apple Silicon, Alpine Linux ARM64,
| Windows ARM, Windows ia32, Windows x64
|
| .NET 6 is the first where they fully supported M1 Macs,
| maybe you last looked before .NET 6 released? Either way,
| VS Code is definitely a supported way to work with .NET.
| m_st wrote:
| That would be Visual Studio Code then. Runs just fine on
| Linux, yes.
| bsuvc wrote:
| Use Rider.
|
| You're welcome.
| no_wizard wrote:
| lower hosting costs is the reason that I used in a previous
| company. Linux deployed cost 2-5x less, at least for the
| workloads we had. Provisioning windows machines in the cloud
| was prohibitively expensive comparatively.
|
| Just one thought worth looking at.
| ocdtrekkie wrote:
| I think the .NET Core model is probably fine for web apps, but
| I literally laugh at the idea anyone would deploy desktop
| software with it: The .NET team's idea of an "LTS" version is 3
| years, which is an absolute joke.
|
| If you continue to use .NET Framework 4.8, your software will
| receive security updates until the _heat death of the universe_
| , too much, including Windows itself, depends on it. (Same,
| hilariously, with Visual Basic 6.) Microsoft's lifecycle for
| new runtimes is so short you're better off using a dead one.
|
| .NET Core has too many caveats and too few selling points to
| get any reasonably competent desktop developers to move over,
| IMHO, especially considering the fact that every executable you
| ship to customers has a Microsoft imposed support death date.
| louthy wrote:
| > too few selling points
|
| There are significant performance improvements, and the new
| language features of C# depend on the later versions - that
| might not be such a big deal, but it will become more acute
| as the language improves.
| ok123456 wrote:
| You can get most of the new language features to work with
| .Net Framework by overriding the LanguageVersion in the
| build. I did this to get nullable type annotations and
| pattern matching to work when I inherited a .Net Disaster.
|
| There are a few that require compiler interop which don't
| work, like using new syntax on records for specifying the
| fields (e.g., "record A(int a, int b)").
| louthy wrote:
| Not all, some rely on the runtime, like static interface
| methods.
|
| Records can be enabled like this [1]
|
| [1] https://github.com/louthy/language-
| ext/blob/main/LanguageExt...
| ok123456 wrote:
| I found that, but I didn't want to introduce more
| complexity into the build by requiring those same stubs
| be defined for just a slight advantage.
| [deleted]
| WorldMaker wrote:
| Also, proper High DPI support in both WinForms and WPF in
| .NET 5+. There is starting to be a very notable difference
| there between applications compiled on .NET Framework (or
| VB6) versus those recompiled for .NET 5+ WinForms/WPF with
| older apps not just looking dated, but sometimes
| aggravatingly unusable/inaccessible on modern monitors.
| int_19h wrote:
| I don't think I've ever seen a WPF app broken on hi-DPI,
| and I use a 4K display with 225% scaling. It was designed
| from grounds up as resolution-independent.
| WorldMaker wrote:
| WPF does in general have many fewer issues than WinForms
| and the ones I've seen that were basically just broken
| were all WinForms. There's still some changes to WPF that
| are noticeable if you are looking for them (mostly in the
| default controls).
| dnndev wrote:
| Where do you host your .net projects? I am especially interested
| in anything other than azure webapp and VM's/IIS.
| ArrayBoundCheck wrote:
| I use a VPS. The strange thing is one site never drops a
| connection and another one does. I'm not sure if its the
| physical location or my config but one of the two instance
| works very well. Its a $5 VPS too
| neonsunset wrote:
| Anything that's win-x64, linux-x64 or even osx-arm64 (at home
| :D) honestly. At work we utilize a mix of k8s linux hosts
| (standard mcr.microsoft.com/dotnet/aspnet:6.0 image) and
| windows hosts where services are ran with Kestrel (default
| ASP.NET Core host).
|
| Literally 'dotnet {AppName.dll}' and that's it.
| mythz wrote:
| Hetzner & Digital Ocean are great value hosting providers, we
| maintain GitHub Action deployment scripts that can deploy to
| any generic Linux host using Docker Compose + SSH, that our
| latest Litestream support uses to effortlessly deploy .NET
| RDBMS Apps (with savings up to 40x vs Azure's recommended
| managed RDBMS configuration):
|
| https://docs.servicestack.net/ormlite/litestream
|
| If you don't want to use Docker, you can also easily deploy to
| Linux using rsync + supervisor:
|
| https://docs.servicestack.net/netcore-deploy-rsync
| ledgerdev wrote:
| Super easy to package into docker. Then run at google cloud run
| or azure container apps. Both are amazing.
| starik36 wrote:
| I host them on my Raspberry Pi 4 at home. I combine it with
| noip.com to get around the dynamic IP problem. Obviously that's
| not for mission critical apps.
| pmontra wrote:
| A customer of mine is running .net on a Debian host on the
| Google Cloud. Another one in a container in perhaps k8s on a
| minor cloud provider.
| Const-me wrote:
| Last couple times I used cloud VMs with ARM64 CPUs running some
| Linux. A systemd service to run asp-net only takes a few lines
| of text in the *.service file, like following:
| [Service] Type=simple ExecStart=/usr/bin/dotnet
| /some/path/myapp.dll WorkingDirectory=/some/path/
| Restart=always User=someone Group=someone
| [Install] WantedBy=multi-user.target
| hadrien01 wrote:
| I have a couple apps on Azure App Service, but all the
| companies I've worked at simply host them on Docker images (on
| AWS or on a private cloud)
| manigandham wrote:
| Package as a Docker container and run on any host. I've used
| everything from digitalocean VMs to Kubernetes across all major
| clouds.
| jayd16 wrote:
| Yep, both AWS and GCP have been fine.
| nso wrote:
| As a systemd service on physical ubuntu servers. Each app
| running on its own port, haproxy server in front routing
| different domain:80s to the corresponding ports. Stateless apps
| so sideways scalable.
| UglyToad wrote:
| I have two DigitalOcean sites on the same VPS just serving from
| kestrel behind an nginx reverse proxy and then one site on a
| Hetzner VPS where I was playing around with k3s.
|
| For digitalocean I followed this post which is probably way out
| of date now https://www.hanselman.com/blog/publishing-an-
| aspnet-core-web...
|
| For the k3s site the source is here
| https://github.com/EliotJones/LetsShip/blob/main/kubernetes/...
| though worth noting I have set up LetsEncrypt incorrectly but
| that's my lack of k3s understanding.
| fezfight wrote:
| Embrace
| ac130kz wrote:
| aliswe wrote:
| Elaborate, or be gone, ghoul!
| pipeline_peak wrote:
| Does it actually run well like on Windows? If not then,
| it's pathetic.
| metaltyphoon wrote:
| Yes, actually it runs better.
| pipeline_peak wrote:
| Runs better than on Windows, or better than the past
| Linux implementations?
| metaltyphoon wrote:
| It runs better than on windows. For example, all ASP
| performance testing, from techempowered, is done on Linux
| and not on windows. There are tons of info, videos about
| testing different workloads on both OS and seeing that
| Linux always wins
| hardware2win wrote:
| I do build .net apps and deploy em on linux since 2018
|
| It works as expected - good
| dralley wrote:
| Not what that means. "embrace" as in EEE means embracing some
| pre-existing open source standard, prior to "extend"ing it with
| features and quirks that people start relying on. Thus making
| the standard irrelevant if the implementation that everyone
| actually uses is different.
|
| .NET is their own thing to begin with and nobody suggests
| rewriting core pieces of Linux with it. It would be more
| accurate to say, based on the reports of .NET working better on
| Linux than on Windows, that they're promoting the embracing and
| extending of their own Windows ecosystem by the Linux
| ecosystem, because they feel that they'd benefit more on
| balance from keeping those customers on .NET and using Azure
| than they would by keeping them in the Windows ecosystem which
| is probably a lost cause anyway.
| pessimizer wrote:
| > .NET is their own thing to begin with and nobody suggests
| rewriting core pieces of Linux with it.
|
| Yet. But on a few distros it was heavily encroaching on
| default installed GUI applications. I don't know if that's
| increased recently because I've been straight Debian for 5
| years now, but there's not a huge jump from that to the rest
| of userland.
|
| edit: I think Miguel de Icaza was responsible for a lot of
| that incursion, and he seems to be drifting into the EEE
| interpretation of MS handling of .NET, too:
| https://news.ycombinator.com/item?id=31761130
| colejohnson66 wrote:
| It doesn't make sense to apply EEE here, but it doesn't stop
| every popular thread about .NET having _someone_ claim EEE.
| But every time, it 's a different stage. Sometimes it's the
| "embrace" stage, others say it's the "extend" stage, and
| others say it's "extinguish" stage.
| Bolkan wrote:
| You want the linux community to embrace, extend, extinguish
| dotnet?
| zuminator wrote:
| This would be the "extend" stage, I think.
| dralley wrote:
| It would be neither. This comparison makes zero sense.
| bbkane wrote:
| Microsoft seems like "a house divided" when it comes to opening
| .NET. They open source the core language, but have different
| proprietary dev tools (debugging for one) you need to pay for.
|
| https://isdotnetopen.com/ goes over these in more detail, but I'd
| rather use an ecosystem where I don't have to worry things will
| be progressively locked down in the future.
| dnndev wrote:
| what? this is crazy. I have been using .net since 2001 and they
| have always had a community version or a free way of
| developing. There is no more concern using MS than there is
| using any other platform in my opinion. They are divided
| because they have different audiences, its ok, they are
| different service lines (corporate vs startup)
| svick wrote:
| Many developers distrust closed source developer tools,
| whether they are free or not.
| chrbr wrote:
| I have debugging in Rider (JetBrains' .NET IDE), what nuance am
| I missing about the debugger argument? Other than Rider also
| being a paid product, I guess.
| Nullabillity wrote:
| JetBrains had to reimplement their own debugger to get around
| this.
|
| And that one isn't usable outside of Rider either.
| brtkdotse wrote:
| The debugger is part of Visual Studio, which is a paid product.
| I don't think it's unreasonable to not publish the source for
| it.
| chaorace wrote:
| Yeah, but the general standard is for open languages to
| either have an open debugger (e.g.: V8 JS) or else otherwise
| have support for an open debugger interface (e.g.: Rust via
| GDB).
|
| It's not strictly unreasonable for MS to offer a proprietary
| debugger, but it _is_ bass-ackwards for the core .NET team to
| not offer an open source debugger or open standards compliant
| debugger interface to go with their open source language.
| Krytos wrote:
| Roslyn (the open-source compiler) can create open-PDB
| debugging files that are also an open-source format. You
| are 6 years too late to make that comment.
|
| And I think lldb works with .NET apps.
| ynik wrote:
| The debugger interface is open (it's part of the CLR
| itself), and so is the debug symbol file format. However
| the debugger interface is low-level, making writing a
| debugger engine from scratch fairly complex. The complaint
| is that Microsoft uses a restrictive license for their
| higher-level wrapper around the low-level API.
|
| But it should be possible to write independent .NET
| debuggers -- I believe Jetbrains has done so, Rider can
| debug C# code without the problematic Microsoft component.
| hardware2win wrote:
| Samsung did it too
| jillesvangurp wrote:
| Of course, this being open source might enable third parties
| to invest in their own tools; including debuggers. Part of
| that deal is that developers are no longer passive by-
| standers. If it bothers you enough you might fix it or help
| fund somebody else to fix it.
|
| Providing the basics as open source and then charging a
| little for some extras should not be the end of the world.
| You see the same in the Jetbrains ecosystem where e.g. the
| community edition of Intellij is free and open source but
| they have a paid version with a lot of extras.
|
| Paid products for developers are not as common as they used
| to be but we are talking about tools that improve
| productivity a lot for people that make a lot of money using
| those tools. Developers (my self included) are oddly stingy
| when it comes to spending on software but at the same time
| think nothing of blowing a few thousand dollars on hardware.
| TheRealDunkirk wrote:
| There's a free version of VS which has a full debugger. Am I
| missing something? Are we talking about debugging the .NET
| code itself?
| svick wrote:
| There is VS Code, which is _not_ a version of VS, is free,
| and has this debugger.
|
| There is also VS Community, which is a free version of VS,
| has this debugger, but has fairly strict licensing
| limitations (e.g. it can't be used in corporations).
| phillipcarter wrote:
| There's nothing inherent about the debugger that forces it to
| be in visual studio. There was a moment, circa 2016 or so,
| when it could have been opened and then collaborated on with
| Jetbrains. Instead, MS leadership circled the wagons due to
| OSS FUD that they get sometimes, and Jetbrains was forced to
| build a better debugger that's also tied to its IDE.
| jeroenhd wrote:
| Visual Studio Code also uses the debugger and that's a free
| tool marketed as open source. The open source version
| (VSCodium) doesn't ship a C# debugger for this reason.
| jayd16 wrote:
| I guess I'm not that worried about it. There are other
| debuggers available. JetBrains has a proprietary one. Samsung's
| is MIT licensed and linked in your link.
|
| It seems like they spooked the community with this VSCode
| plugin thing but it also feels like not that big a deal. MS
| wants VSCode to interface with things they can sell along with
| the open source. Is that so bad? I get the worry that the MS
| support of OSS could dry up but that could be said for all
| kinds of OSS projects with corpo backers, no?
___________________________________________________________________
(page generated 2022-08-16 23:01 UTC)