[HN Gopher] .NET 6 Preview 5
___________________________________________________________________
.NET 6 Preview 5
Author : dustinmoris
Score : 151 points
Date : 2021-06-18 13:50 UTC (9 hours ago)
(HTM) web link (devblogs.microsoft.com)
(TXT) w3m dump (devblogs.microsoft.com)
| hansor wrote:
| Still no any sane official library to support GUI in .NET CORE...
| wiso wrote:
| http://avaloniaui.net/
| Felk wrote:
| Not official, but I have had good experiences with AvaloniaUI,
| which sticks very close to WPF and is part of the .NET
| foundation umbrella. It inherits quite a lot of what made WPF
| mature and robust
| AbuAssar wrote:
| Did you try uno?
| slownews45 wrote:
| This was my question - anything like even windows Forms (which
| was a super easy way to get little apps together). Microsoft
| went crazy with their GUI approaches for a while - just
| straight insanity for little purpose that I could see.
| WorldMaker wrote:
| .NET 5 supports WinForms and WPF, just Windows only.
| slownews45 wrote:
| Fantastic - I could never get the designer working right
| but after all the whiplash of microsofts UI approaches I've
| moved away so have no current experience. Good to hear its
| supported.
| WorldMaker wrote:
| I find "whiplash" comments interesting. Microsoft has
| been relatively consistent since Vista, everything post-
| Vista XAML based. Some of the runtimes (which .NET
| versions are supported, what if any other languages are
| supported) and brands have shifted every five years or
| so, but there are lines of consistency from start to
| finish, and upgrade paths at nearly every stage, and XAML
| is generally XAML throughout. Things have generally been
| well supported for good maintenance lifetimes at each
| stage. (With the shortest probably being Silverlight, and
| its extended security support hasn't even expired yet,
| even if no one should have built new apps against it in
| at least five or six years now and no modern browser has
| supported running them.)
|
| Compared to Win32 not changing much since roughly 1995 or
| so, it's wild and constantly shifting, but compared to
| say JS frontend frameworks it's more stable than a lot of
| things people are doing in UI.
| aspaviento wrote:
| They are working on MAUI
|
| https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui
| SideburnsOfDoom wrote:
| MAUI (.NET Multi-platform App UI) is the new thing in cross
| platform UIs.
|
| https://devblogs.microsoft.com/dotnet/introducing-net-multi-...
|
| Unfortunately I don't know much about it yet, it's not my area.
| Is it not sane?
| MeinBlutIstBlau wrote:
| I've never heard of it but I'll keep it on my radar. I love
| the idea of having a universal GUI using C#. I haven't done
| much android development, but I only know that it would be a
| tad less tedious if I didn't have to deal with android
| studio.
| oaiey wrote:
| Maui is Xamarin.Forms. It is undergoing renovation to
| compete with React Native, Flutter and the self rendered
| stacks.
| fuzzy2 wrote:
| What's wrong with WPF or WinForms? It's not cross-platform, of
| course. Or is that not sane enough? :-D
| egeozcan wrote:
| Have a look at this: https://docs.microsoft.com/en-
| us/dotnet/maui/
|
| Example: https://devblogs.microsoft.com/dotnet/introducing-net-
| multi-...
| solarkraft wrote:
| I wonder when whey will make the debugger work with non-
| proprietary versions of VS Code.
|
| I am not joking, I wish I was. The official C# debugger is not
| only proprietary, it's also not licensed for VS Code versions
| compiled from source.
|
| The rest looks cool, hopes are high for MAUI. But really man,
| forcing me to jump through a bunch of hoops just to get a
| (somewhat) working debugger ... That kind of a move is a remnant
| of the old Microsoft that absolutely needs to die for the new
| Microsoft to live on.
| cyral wrote:
| Don't know how JetBrains did it but Rider's (their C# IDE)
| debugger works excellently. Haven't used VisualStudio for years
| actually.
| solarkraft wrote:
| As far as I know they have (somewhat, they do use MSBuild)
| completely developed their own .NET tooling ecosystem
| (ReSharper being the most prominent example).
|
| And it shows that they actually know what they're doing. I
| don't know what it is with Microsoft in particular, but they
| have really mastered the art of building user hostile
| applications. God, Visual Studio is a mess. I envy you.
| qntmfred wrote:
| just out of curiosity, what's your use case for using a version
| of VS Code compiled from source?
| gostsamo wrote:
| Not gp, but think about it that way: what makes necessary for
| VSCode to have a proprietary version and key plugins?
|
| In addition, I'm not even sure if the telemetry on VS Code
| can be turned off. I think "yes", but never bothered checking
| while VS Codium was available.
| solarkraft wrote:
| Using a program which is advertised as non-proprietary as
| such. Not trusting Microsoft to be nice.
|
| Pretty important in case they fall back into old Microsoft's
| _Embrace, Extend, Extinguish_ hab... oh, look ...
| tintan wrote:
| As a java developer for years it is amazing to see .net basically
| become the best cross platform framework.
| gameswithgo wrote:
| If it has been a few years since you looked at C# or F#, it may
| be worth a look again now. Lots and lots of optimizations have
| been added in the last 5 years, and you can even use SIMD
| intrinsics directly now. By some measures C# is now the best
| overall performing garbage collected language (Such as The
| Benchmark Game)
| xtracto wrote:
| I programmed professionally in .NET around 2003 with the
| initial versions. I liked it a lot and over the next years I
| tried to keep up to date about it on my spare time (I remember
| reading about LINQ development, the amazing CLR improvements,
| etc), all while I developed in Java, ruby and nowadays
| TypeScript.
|
| The problem I see with .NET now (I did some tinkering on it via
| Unity) is that even though some of it is "open source",
| Micorsoft's grip is still pretty tight on it. Or at least it
| feels like that.
|
| Given Microsoft's history I find it very difficult to "commit"
| to using the .NET framework for something real, because I feel
| I will be bitten back with the 'proprietary' aspects of it as
| soon as I go to production. It's a sunk cost that I cannot
| afford.
|
| And it is not personal 'hatred' or anything given that I use
| VSCode as an editor and TypeScript itself comes from Microsoft.
|
| I wish Microsoft would donate .NET to some 3rd party open
| source foundation (like what happens with all Apache projects,
| or LibreOffice, the MariaDB foundation, etc).
| oaiey wrote:
| Modern .NET is legally owned by the .NET Foundation. It is
| MIT/Apache licensed with the exception of some debuggers in
| VS Code (which propably conflict with VS itself).
|
| Granted, the .NET Foundation is not the Apache, Eclipse,
| Linux or CNCF Foundation and it is dominantly financed by
| Microsoft, but there are relative important peers like AWS or
| RedHat involved.
| hu3 wrote:
| Plus now we have Jetbrains Rider. So there's an excellent
| non-Microsoft IDE alternative.
| gtsteve wrote:
| Rider is no joke. If you haven't used it or gave up on it
| a few years back, give it a shot. There are a few things
| it can't do like attach to managed modules hosted in
| unmanaged processes but it's a joy to code in.
| Someone1234 wrote:
| One of the biggest things was the addition of Span<T> and
| Memory<T>, and their usage in underlying types within the .Net
| framework. While C# _always_ had the ability to use raw
| pointers, these two types allow you similar performance
| characteristics without unsafe blocks (and frankly are near
| idiot-proof instead of being a giant foot-gun with pointers to
| managed types).
|
| https://docs.microsoft.com/en-us/dotnet/standard/memory-and-...
| Thaxll wrote:
| "By some measures"
|
| By some other measure it's not, out the three fastest:
| Java/C#/Go they're all pretty much as fast.
| manigandham wrote:
| Add in the massive standard library, project types, and
| overall productivity and it's the best platform available
| now.
|
| I'm working in production projects across all 3 languages now
| and Java and Go are way behind when it comes to producing a
| polished product as quickly as possible.
| Thaxll wrote:
| C# is not even close to Java in term of libraries.
| NicoJuicy wrote:
| Which are missing? :)
|
| There are currently 244,641 libraries through nuget
|
| https://www.nuget.org/packages
|
| Ps. You can use libraries from f#, c# and VB.net. So as a
| .net developer, your statement doesn't make any sense.
|
| You could have mentioned the different frameworks. But
| there is interop through the CLR between languages.
| pionar wrote:
| Eh, I've been a .net developer for almost 15 years.
|
| The parent post is correct that the third-party ecosystem
| (especially OSS) is sorely lacking in quality.
|
| Like look at logging - logging in .net is SO anemic. Even
| with third-party libs, there are so many features missing
| that have been in java libs like slf and log4j2 for
| years, yet we have nothing close in .NET.
|
| Hell, you could just pick a feature from spring and
| compare to what's available in .NET ecosystem, and you'll
| be sorely disappointed.
| ceesharp wrote:
| Can you give an example what is missing in e.g. Serilog?
| pionar wrote:
| The ability to change logging levels of either a category
| or all categories at runtime is one.
|
| Being able to monitor levels via an administrative
| endpoint.
|
| A decent rolling file implementation that can compress
| the archived files.
|
| These are all things I've had to implement (on top of
| serilog, no less) in the past year.
|
| log4j2 has these out of the box.
| manigandham wrote:
| Quantity of libraries is a poor metric. Like I said, the
| standard library in .NET covers a lot, and lets you make
| everything from CLIs to enterprise web apps. And when you
| do need 3rd-party code, there are plenty of commercial
| and OSS options to solve your problem.
| EvilEy3 wrote:
| It's not just quantity. Java benefits from all the major
| players that are using it. Quality of libraries is head
| and shoulders above anything you can find in .NET world.
| sremani wrote:
| Many of the .net libraries are poor afterthoughts of an
| existing Java library.
|
| Java simply has developer mindshare, the .Net developer
| stereotype is so rigid and engrossed that the pay
| difference between a .Net dev and their Java peer is
| usually around 20% if not more.
| aksss wrote:
| your average .net dev gets paid less than your average
| COBOL dev too, but I wouldn't say that informs us of much
| other than scarcity of expertise. We used to say, "you
| can through a rock into a crowd and find somebody who can
| at least be productive on .net". Finding a stone cold
| expert on .Net is far more difficult, but for the average
| enterprise doing internal development weighing whether to
| adopt one platform or another, resource
| availability/scarcity matters.
| EvilEy3 wrote:
| > your average .net dev gets paid less than your average
| COBOL dev too
|
| I don't see how this is a valid comparison. Java being
| paid better has nothing to do with scarcity of expertise.
| aksss wrote:
| The comparison was to illustrate that scarcity of
| expertise absolutely affects pay rate, notwithstanding
| other explanations.
|
| Whether that explains part or most or all of Java dev pay
| premium is at least debatable. For instance, I would
| never make the same "throw a rock into a crowd" statement
| about finding a competent (but not expert) java
| developer. That alone means I would expect to pay some of
| a premium for finding them in that crowd.
|
| What's the counter argument to scarcity? Alignment with
| better paying industries, weighted so heavily in that
| direction that it shows up as a premium for their
| developers? I mean, if you start getting into the
| conversations about the obscurity of domains, or
| supplemental education associated with Java developers
| either by coincidence or requirement, or general demand,
| I think you're still commenting about scarcity.
| kemonocode wrote:
| Here's hoping .NET can some day shake off its Windows exclusivity
| stigma, as I've been writing pretty interoperable C# code for the
| past 3-4 years or so, and it's been a joy. Night and day compared
| to Java, at least.
|
| I'll admit it takes some time to get started, but it's smooth
| sailing once you get past the initial hurdles of setting up your
| project, understanding some idiosyncrasies when it comes to
| ASP.NET/Web API/Entity Framework if you're going that route for
| your backend and such. And now with Blazor, I can even work on
| the frontend and touch Javascript as little as possible.
| rcarmo wrote:
| I've been playing with the AoT compiler and it is decent,
| especially if you strip the binaries to get 10-20MB files.
|
| Biggest hurdle for me (as a UNIX greybeard, Java survivor and
| occasional LISPer) is ramping up on idiosyncratic C# syntax and
| various generations of .NET libraries
|
| But what little I've done in the past couple of months (with
| .NET 5) works OK in Linux, and the tooling (VS Code + Remote to
| have .NET on a remote VM at a safe distance from my Mac)
| suitably lightweight and hassle-free.
|
| (full disclosure: I actually work at Microsoft these days but
| never developed for Windows alone - did mostly C++ and Java
| when I targeted it - and never did .NET before, as it only
| makes sense for me to use it now that I can target Linux)
| heavyset_go wrote:
| What's the cross platform GUI situation like on .NET? I know
| MAUI won't work on Linux, and no Linux support is a deal
| breaker for me.
|
| F# is really nice, and I enjoy using it for web related things,
| but I have to reach for different languages if I'm looking to
| build a GUI right now.
| 5e92cb50239222b wrote:
| Java is miles ahead in terms of cross-platform support. .NET
| applications may be running fine on other operating systems (I
| write them at $DAYJOB and they mostly do), but the development
| tooling is absolutely incomparable across OSes. As long as .NET
| is being developed and pushed by Microsoft, the situation won't
| change, because it doesn't align with their incentives.
|
| Some people/companies also care about more than the big three
| operating systems that MS cares to acknowledge. .NET has no
| official FreeBSD port, for example.
| manigandham wrote:
| VS Code is available everywhere and can even connect to
| remote environments. Visual Studio is on Windows, and there's
| a Mac version that's slowly getting better.
|
| What other languages stacks provide a much better tooling
| experience? If you use IntelliJ then you get the same thing
| with Rider (which is just IntelliJ + Resharper), and the rest
| are all basically VSCode at this point.
| Zingler wrote:
| It's been a while since I looked at .Net, but last time I
| checked it was inferior in terms of multi-platform tooling
| to many languages.
|
| So take VS Code for example, last I looked you could not
| build Xamarin apps in it, where as with Go, JS, Dart, etc
| you can use VS Code to create anything in those languages.
| pjerem wrote:
| Take a look at Rider, it's relatively recent, it's
| possible you missed it. Basically, it's Resharper
| embedded in an IntelliJ IDE, and it's superb.
| 5e92cb50239222b wrote:
| Well, perfview, for one. I have to keep a Windows VM nearby
| just for that thing. It doesn't come in handy every day,
| but is absolutely indispensable when it does. They have a
| shitty Linux port which basically doesn't work and receives
| almost no development.
|
| I should also add that you /can/ dump a dotnet application
| running under Linux. It's just you can't do anything really
| useful with it, the best tooling is Windows-only. Clearly
| shows you their priorities.
| NicoJuicy wrote:
| Use perfcollect for Linux: https://github.com/dotnet/core
| clr/blob/master/Documentation/...
|
| Since that is adapted to use Linux specifics :)
| philliphaydon wrote:
| I use jetbrains rider. Tooling on linux is just as good as
| Windows. Developing .net is far more enjoyable than Java.
| nightski wrote:
| Yea Jetbrains Rider is fantastic. I'm assuming the parent
| never tried it. Seeing as it is essentially IntelliJ the
| comparison to Java tooling seems ironic.
| pjmlp wrote:
| On an IDE written in Java....
| Semaphor wrote:
| Seconding Rider. I use Windows and still prefer it to VS.
| cyral wrote:
| I second this. .NET core works flawlessly on Linux and
| JetBrains Rider (and on Mac, which is what I develop on).
| The standard libraries and ASP.Net core are really well
| designed and a joy to work with.
| [deleted]
| thrower123 wrote:
| If you're writing Java, you're going to use IntelliJ (unless
| you're a masochist). Conversely, if you're writing C#, you'll
| want to use Rider.
|
| Rider is better than Visual Studio at the moment; we'll see
| what happens if they actually get VS 2022 cut over to be
| 64-bit, maybe the performance will be back to usable for
| medium-large solutions.
| pjmlp wrote:
| When I write Java I actually don't ever touch InteliJ
| because I am not a masochistic.
|
| No support for JNI debugging, no incremental compiler, 10
| finger key chords, requires explicit menu actions to
| display project errors, never stops indexing the world,....
| 5e92cb50239222b wrote:
| > Conversely, if you're writing C#, you'll want to use
| Rider.
|
| Sure, that's what I do, and what my friend did before he
| went to another company where they somehow managed to fuck
| up the project configuration so bad it was absolutely
| impossible to deploy from under anything other than Visual
| Studio. It's using some sort of integrated Azure wizardry,
| I don't work there and can't pry into their secrets. The
| thing is, you can't work with that project without a
| Windows license and a Visual Studio license. MS has zero
| interest in supporting this use case (can't blame them, I'm
| just stating the fact.)
| [deleted]
| oaiey wrote:
| And that is the thing right! When you stop understanding
| the tools, you are screwed. I (as a .NET fanboy) prefer
| CLI tools anytime over some VS Azure toolbox no one
| understands).
|
| Azure CLI just works fine without VS.
| GiorgioG wrote:
| You can't please everyone all the time.
|
| Rider is my daily driver - no matter what OS I use (primarily
| Windows/Mac and occasionally Ubuntu.)
| NicoJuicy wrote:
| .net is catching up very quickly in cross-platform support.
|
| Tooling for. Net is miles ahead of anything else I've
| witnessed.
|
| As for FreeBSD there's a huge nuance:
|
| > FreeBSD support still requires additional work to implement
| features that are missing in the runtime to reach parity with
| the other operating systems. The community will most likely
| need to do that work in .Net 3.0/3.1 but I would like to see
| official automated daily builds for FreeBSD restarted with
| the master (.Net 5) branches of the necessary repos.
|
| As for your statement on Microsoft. I'd trust Microsoft with.
| Net more than Oracle with Java.
| throwaway93983 wrote:
| Where is this FreeBSD quote coming from? Link please, I
| tried to google it without success.
| NicoJuicy wrote:
| https://github.com/jasonpugsley/installer/wiki/.Net-
| Core-3.0...
| snup wrote:
| the miles you mention are one thing, but performance was
| always more important to me.
|
| java pendant c# was always much more performance focused than
| java, having structs, unmanaged c# and c++ interoperability.
| it took java 16 years or so to accept that structs have their
| justification.
|
| i also find the c# language much nicer than java. f# versus
| clojure are both excellent additions and again, f# is the
| more static and performant while clojure has very nice and
| inspiring features and aspects. it depends on what one wants
| here.
|
| finally i think even if java is the larger universe, the .net
| universe certainly is not small either. if .net would not
| have taken the cross platform road i would have switched to
| the java runtime, but happily the opposite happened.
| lvass wrote:
| Perhaps developers should still consider .net as windows-only.
| Given how the large the runtime is and it's creator's
| reputation for pushing malware, I would not dare run .net core
| directly in any of my machines, and many non-windows users
| would probably feel the same. I don't think I even have the
| option in openbsd. Targeting Linux though I guess makes sense
| because of containers.
| HeyLaughingBoy wrote:
| I know. The first time I deployed a .NET application to a box
| running Linux it was like a great disturbance in the Force :-)
| rtomanek wrote:
| > interoperable C# code for the past 3-4 years or so, and it's
| been a joy. Night and day compared to Java, at least.
|
| Can you give an example of this interoperability, please? Also
| -- what was the difference compared to Java that you noticed?
| kemonocode wrote:
| I've mostly been writing backend code which pretty much works
| just the same whether deployed on Windows and Linux, that's
| interoperability by default.
|
| With Java the issues came from elsewhere- it was less so the
| interoperability and more just how messy the whole ecosystem
| is and how there are some aspects of the language itself
| (such as the excessive verbosity and the way the standard
| library is structured) that kept mounting up as little
| annoyances over time. Kotlin wasn't really an option at the
| time, either.
| cameronh90 wrote:
| It's interoperable by default, unless you add a Windows-
| specific library like WinForms.
| pantalaimon wrote:
| eh, Windows Forms is the default GUI library, this means
| relying on third party libraries if you want to write
| cross-platform desktop apps.
| sgtfrankieboy wrote:
| The default "GUI" library for .NET Core has always been
| web.
| WorldMaker wrote:
| There isn't really a "default" GUI library at this point.
| WinForms and WPF are both rather equal in support.
| (Arguably WPF gets far more updates than WinForms, most
| months.)
|
| MAUI (in .NET 6+) will be a first party library for some
| types of cross-platform desktop apps.
| schoolornot wrote:
| They played games for so long with keeping it closed source and
| then only opening parts of it to ECMA and then advocating Mono
| before finally opening more parts of it. I wanted to play with
| LINQ back then and couldn't. So non-MS people said screw it and
| moved on.
| blacktriangle wrote:
| It's not really about the exclusivity, more so its about being
| driven by MS and their internal needs and their internal
| timelines, and nothing will change this. This is not a
| criticism of MS, .NET is their platform to support their
| products, it's just a reality. It's the same problem with Swift
| trying to escape the Apple ecosystem while ultimately being
| driven by Apple's needs.
|
| So if you're an MS dev whose looking for some additional reach
| into other platforms, the increased interoperability is great.
| However for those of us not working on MS platforms, .NET has a
| huge uphill battle competing with every other platform
| available to us.
| brokencode wrote:
| Out of curiosity, what is missing in .NET that isn't being
| prioritized by Microsoft and that other languages provide?
|
| C# has been pretty groundbreaking, adding features like async
| await and generators before other mainstream languages.
|
| They are also pushing forward ASP.NET pretty aggressively,
| even having first class support for gRPC and other popular
| technologies.
| oaiey wrote:
| The team quite systematically ignores messaging (as in
| RabbitMQ and friends). HTTP is covered in all aspects but
| messaging really lacks behind.
| gionetrix wrote:
| I'm not sure I follow; why would/should Microsoft make
| libraries for projects they don't own?
| oaiey wrote:
| Because there are two kinds of microservices... HTTP ones
| and messaging ones. There is a gap.
| aksss wrote:
| What's lacking? I'm sorry, I last fooled around with
| message queues like over ten years ago (and it was MSMQ
| and IBM MQ), but was recently working on a hobby Rpi
| project where I came close to dinking around with
| RabbitMQ via Python. It looks like RabbitMQ has a library
| for .Net. Or are you talking about how the native library
| System.Messaging is not generic enough to go outside the
| bounds of MSMQ still? Truly not challenging anything
| you're saying, just curious to know what you'd prefer to
| see.
| oaiey wrote:
| HTTP has a huge infrastructure for translating http
| request into endpoints. With all the bells and whistles.
| Nothing is there for messaging. You can get a library for
| everything but there is no focused stack for processing
| messages.
| aksss wrote:
| I mean, HTTP is a protocol with huge
| footprint/mindshare/utility to put it mildly. Messaging
| has.. who can name it? AMQP. I think it would be
| brilliant if System.Messaging was reoriented to AMQP,
| especially since MSMQ is not coming back. It's a bit lame
| that the namespace is locked into to a proprietary and
| EOL product, for sure.
| brokencode wrote:
| SignalR can be used for some applications, but
| "messaging" is a pretty broad category of different
| solutions, and I'm not sure what you'd want baked into
| ASP.NET to accommodate that. HTTP is standardized enough
| that basically everybody is doing it in very similar
| ways, but many pieces of a web application are better
| left for libraries to support.
|
| Is there another mainstream platform with better
| messaging support without needing libraries that you can
| name as an example?
| oaiey wrote:
| Agree with what you said. It is a complicated problem.
|
| I do not look into other platforms. I look into my
| solutions: http i can write my business logic and that is
| mostly it. On messaging i have to think about threading,
| acknowledging, dead / poison letters, decoding, trace
| contexts, etc. And these is all non trivial code
| especially when done right.
| pjmlp wrote:
| Proper AOT compilation and better handling of low level COM
| APIs.
|
| NGEN never was anything more than a good enough start-up
| accelerator, and while .NET supports COM, is cannot
| directly use COM like APIs like DirectX without some extra
| help in wrapping.
|
| Every time .NET teams try to improve these scenarios,
| usually Windows Dev team comes around and steals the show,
| apparently too much .NET isn't welcomed in some units.
|
| This is how you end up with Longhorn and Midori being
| sabotaged, or .NET Native being dropped.
| Bayart wrote:
| >Out of curiosity, what is missing in .NET that isn't being
| prioritized by Microsoft and that other languages provide?
|
| First class support for native code. I'm not too sure where
| their IL stuff is going anyway.
| oaiey wrote:
| I think this is perceived much worse than it is. I work in a
| polyglot company. .NET had never limited us compared to the
| Java, Python, C++ or JavaScript languages we have also in
| use.
|
| .NET is not tailored to something specific Microsofty.
| However, the .NET community is still challenged when taking
| 3rd party dependencies (which is the actual limitation) and
| then complaints when Microsoft is not delivering the perfect
| kitchen sink.
| R0b0t1 wrote:
| Up until very, very recently .NET was absolutely useless on
| non-Windows platforms, only supporting the bare minimum
| APIs you need for web apps. It's still not very useful on
| non-Windows platforms.
| DarkmSparks wrote:
| 2nd that, couldn't quite put my finger on it, but this says
| it nicely.
|
| I want to like what I'm seeing in .net, but there just doesnt
| seem anything compelling when compared to say Graalvm or even
| nodejs.
|
| The VM market is very very crowded with fantastic offerings
| these days, many of which share many commonalities easing dev
| while each is tailored for a slightly different market.
|
| in the case of .net - xbox.
| oaiey wrote:
| .NET is not tailered to XBox. UWP (which runs Xbox apps) is
| lacking now 2 versions behind .NET itself.
|
| When you wanted to address unity, that is far more than
| Xbox.
|
| And gaming is a maybe 20% share of .NET.
| oaiey wrote:
| When it comes to what it is tailored: there are two VM
| models: CoreCLR optimized for speed and throughout and
| MonoVM optimized for aot and small size workloads (aka apps
| and webassembly).
|
| Nodejs is beat by CoreCLR dramatically on its own domain.
|
| GraalVM i have to little insights but CoreCLR beats/equals
| performance of it java equivalent. I guess you can tweak
| GraalVM a lot more than CoreCLR because that is an actual
| weak point of the CoreCLR.
| tresvert wrote:
| This is a great time to start testing the new features of .NET.
| Anyways, I can't get enough creating new desktop apps on win
| forms.
| u678u wrote:
| I moved from C# to Java project. I preferred C# Syntax but amazed
| by the number of Java libraries. However I've found Java world
| full of neck-beard developers that make everything complicated.
| Spring is toxic - the learning curve is steep and half the devs
| dont understand it well enough which leaves a huge mess.
|
| Dotnet Developers seem much more pragmatic. I wish I could go
| back.
|
| EDIT - I forgot about how bad Java GC is. Still with Java 16 a
| ParallelOldGC Full GC is taking 30 seconds on a big server.
| eatonphil wrote:
| I don't code very much Java or C#. I've tried to get into
| Spring because I wanted to save time but it was too complicated
| for my patience. I also evaluated ASP.NET and it seemed
| significantly more convoluted.
|
| There is a ton of documentation for both Spring and ASP.NET but
| both are so complicated and specific to investing in exact ways
| of modelling users/auth/whatnot that they are both super hard
| to get into as a hobbiest outsider.
|
| I like both languages and they both have good microservice
| libraries and general ecosystem. I just don't think it's worth
| saying Spring is complex without talking about ASP.NET.
| tasogare wrote:
| Asp.net is very well documented. I agree that authentication
| is a mess and the framework slightly over-engineered, but
| it's still very doable to use as a hobbyist.
| Felk wrote:
| You may also be interested in taking a look at
| [quarkus](quarkus.io) in that case. It's a relatively new
| platform developed by RedHat that focuses on cloud usability,
| performance and developer joy, while using well-established
| APIs like JAX-RS, JPA or microprofile
| midoBB wrote:
| If someone is escaping Spring for it's verbosity and
| complexity JAX-RS and the Java EE standards aren't that
| much better IMO.
| eatonphil wrote:
| Oh yes I've found a number of good microservices for both
| languages. I'm just astounded by how complex Spring and
| ASP. Net are. Though to be fair I also find Rails too
| complex.
|
| I guess the problem is that I've just never had to use on
| of these at work.
|
| So when programming in my free time in both Java and .NET
| it's way easier/more fun to just use microservice libraries
| that are easier to pick up.
| nobleach wrote:
| Rails and Spring Boot both scratch a similar itch. Out of
| the gate, a brand new project spins up and can return
| output (JSON or HTML) with almost zero config. The
| developer is responsible for augmenting that project with
| controllers/services/models/etc. What this leads to are
| dark corners. This is fine as not every developer needs
| to understand all of those dark corners. But it also
| leads to blind dependence on the framework and its
| libraries. And when something goes wrong, they can go
| REALLY wrong. That said, Spring implements some great
| patterns out of the box. And spinning up a highly
| performant microservice with JWT auth, security, an okay
| ORM (I don't hate Hibernate like a lot of folks do) is
| cake!
| 5e92cb50239222b wrote:
| >evaluated ASP.NET and it seemed significantly more
| convoluted
|
| Which one? I would be very surprised if it were asp.net core,
| which is their current offering. It is one of the most
| straightforward and clean web frameworks I've ever had to
| work with. Spring seems to me to be a giant bowl of spaghetti
| in comparison to it.
| wayneftw wrote:
| > neck-beard
|
| What's wrong with hair growing on your neck if it grows there?
| It's completely natural.
|
| I know that this is slang/shorthand, but I don't agree with it
| at all. I work with plenty of people who have unruly beards and
| none of them fit the "neck-beard" stereotype.
|
| I don't think it's a very nice term to be perpetuating. Judging
| people purely based on one physical attribute and then mocking
| them for it is not a great look for anyone.
| oblio wrote:
| Hair on your neck makes you look unkempt. I think it's the
| main issue.
| cuddlybacon wrote:
| It is also signals a package of personality traits:
|
| * rejecting other personal hygiene customs
|
| * being noticeably more pedantic
|
| * picking every battle/argument
|
| * lower than normal respect for other's boundaries
|
| * lower than normal awareness of how their actions effect
| others
|
| * making "being rational" a core part of their identity
|
| * dismissing human behaviors they don't do as irrational.
| usually these are the ones where rational explanations do
| exist, they are just difficult to re-invent on the spot.
|
| This package is common enough to have earned itself a name,
| which happens to be the easiest visual indicator.
| [deleted]
| wayneftw wrote:
| So the problem is that unkempt looking people have created
| code that this person has to deal with??
|
| Oh, and every single person who has hair on their neck
| looks unkempt, without exception, am I hearing that right?
|
| Sure, OK.
| WorldMaker wrote:
| For what it is worth, it isn't a neologism to this thread
| it's a (insulting) slang term for certain types of
| pedantic nerds in relatively common usage on the internet
| going back to early internet history (some of the
| earliest recorded usages were in the early 2000s).
|
| https://en.wiktionary.org/wiki/neckbeard
| oblio wrote:
| > Oh, and every single person who has hair on their neck
| looks unkempt, without exception, am I hearing that
| right?
|
| Yes, shave it. Especially if you have long neck hair and
| short or no facial hair.
|
| There are some exceptions, if you have a long beard,
| maybe.
|
| Hair in other places is considered equally distasteful
| (long nose hair, ear hair, whatever).
| aksss wrote:
| It's both hilarious and jarring for me to have found
| myself reading a comment about ear hair grooming and the
| next snaps back to a comment about swift, c#, and Rider.
| :D
| mrighele wrote:
| Any particular reason for using ParallelOldGC with Java 16 ?
| There are other options that should fare much better.
| u678u wrote:
| Lowest memory overhead mainly. Even zgc/g1 have full GCs some
| times, I never had that problem with dotnet.
| sz4kerto wrote:
| Toxic? Isn't this word too strong maybe? Spring provides
| consistent patterns and solutions for many things and their
| solutions is usually good (vary between mediocre to great).
| Learning curve is steep-ish when you start but quite a smooth
| ride later. It's maintained, reliable, not buggy.
| rcarmo wrote:
| Spring is an acquired taste, and many people don't like it
| because they don't know the right patterns, so I agree with
| you and think the parent is exaggerating.
| u678u wrote:
| You're both right. I agree Spring Boot is great if you know
| it well and are knocking out micro-services. If you have a
| ball of mud like my current project with mixes of XML
| config, Attribute config and people rolling their own stuff
| it really isn't adding any value.
| Shadonototro wrote:
| Try ZGC, sub 1ms pauses
|
| https://malloc.se/blog/zgc-jdk16
| pleb_nz wrote:
| I've used .net almost exclusively backend over the last decade
| and recently had to take over a spring project.
|
| I was surprised and found it super easy to architect, build and
| maintain with lots of nice patterns.
|
| It's yaybe heavy, but I wouldn't say it's toxic.
| hooploop123 wrote:
| When I first started development work (my background was in
| engineering math), couple of my colleague mocked me for liking c#
| and .net. They responded by saying, "I don't want to reply to
| that because I don't want to say anything insulting". This was in
| regard to good backend language for crud web server with somewhat
| complex business logic. Responder worked in my team, and I was
| their manager.
|
| It really lowered my confidence, as I had comparatively less dev
| exp than him. It is good to see HN also sees c# as solid and good
| language.
| hu3 wrote:
| That was very unprofessional and disrespectful from them.
|
| Technologies should be debated by weighting their pros and
| cons, not with insults.
| xvilka wrote:
| There is ongoing work[1] on porting it also on BSD systems. I
| hope it will help to make it even more portable in the long run.
| See also other FreeBSD issues[2] that need to be solved for
| complete support. Or the same for NetBSD[3].
|
| [1] https://github.com/dotnet/runtime/issues/14537
|
| [2] https://github.com/dotnet/runtime/labels/os-freebsd
|
| [3] https://github.com/dotnet/runtime/labels/os-netbsd
| ramshanker wrote:
| A perspective from a non-CS engineer.
|
| Don't intend to undermine the progress being made. Nevertheless
| here I am, migrating my dot net core 3.0 application back to Dot
| Net Framework 4.5.1 because I need my applications to run in all
| those Windows 8.1 (enterprise-internal) PCs without needing admin
| privileges to install dot net runtime. Since 4.5.1 runtime comes
| pre-installed with Win 8.1. So that is the version I target for
| all my new inhouse civil-engineering applications. There isn't
| much point bloating the application by 80+ MB just to make it
| self contained executable of dot net core version. After all, I
| need civil engineering to speedup, not fighting latest framework
| versions.
| selimthegrim wrote:
| Have you considered Blockpad (http://blockpad.net) as a
| platform for your applications?
| fuzzy2 wrote:
| If using the self-contained deployment isn't an option then
| this is the correct solution. I don't see what the problem is.
| You can't always use the latest and greatest. I often had to
| use .NET 4.0 because it had to run on some way outdated systems
| where client IT was refusing to install updates.
|
| Bet they got hacked by now, as they should be. ;-)
| runevault wrote:
| Why not use .Net core... 3.1 I think? You can build a
| standalone exe that doesn't require the runtime on the end user
| machine.
|
| https://docs.microsoft.com/en-us/dotnet/core/deploying/singl...
| gtsteve wrote:
| You might not need to do this. You can roll a fully self-
| contained distribution that will work for this OS with options
| to dotnet publish.
|
| Unless you're sending your software to Mars, I say that saving
| 80mb of package bloat is not worth the engineering time
| especially for an OS that will be EOL in less than 2 years.
| Thaxll wrote:
| The main issue with C# is that it's getting very bloated, they're
| adding major features every release, good luck keeping up with
| that.
| tasogare wrote:
| Yes and no. Some of the features are really welcome, some are
| ghetto (like the ref performance ones) and some indeed change
| the visual look of the language a lot (pattern matching). It's
| ok to keep up for someone already knowing the language but for
| a newcomer it's indeed super scary.
| oaiey wrote:
| On the other side, it is never easier to learn C# than now.
| The amount of ceremony removed in C#, the university educated
| functional programming patterns, the universal availability
| on operating systems and the quick setup (including eg.
| notebooks) are just some things.
|
| However, when I think back to my first line of code 30 years
| ago, i would also be scared of modern languages (however this
| applies to all actively maintained languages).
| manigandham wrote:
| As opposed to all the other languages that also add features
| with every release?
|
| You don't need to use any of the new C# features. You can still
| build and run C# 1.0 code today.
| bmitc wrote:
| Take a look at F#. It's a superior language and doesn't add
| new features like C# does (which is mainly stealing from F#
| anyway). Also, Elixir is a language that is very stable from
| release to release.
| runevault wrote:
| I keep hoping they'll finally steal type providers for c#,
| though you could argue source generators are at least a
| first step.
| mikece wrote:
| The goal is to know more and more about less and less...
| refactor_master wrote:
| Can it really be called "bloat" if the features are basically
| invisible unless you explicitly compile an app with them?
|
| That's like saying the English language has accumulated too
| many new words, and that impacts your speech.
| MeinBlutIstBlau wrote:
| We need the esperanto of programming languages!
| Thaxll wrote:
| Yes because then people have 3 different way of doing the
| same thing.
|
| You have that new guy that comes in and whant to rewrite
| everything with the new immutable feature.
| booleandilemma wrote:
| I'm seeing this at work right now. New devs asking which
| way to initialize an object, the difference between record,
| class, and struct, how to use nullable types, etc. I can't
| help but feel C# is getting too complicated for its own
| good.
| dustinmoris wrote:
| If you have 3 teams members speaking 3 different languages
| then it certainly impacts their communication.
|
| If the language has 3-10 different ways of creating a
| class/object and every developer does it differently then it
| certainly impacts the productivity ;)
| thrwawaynetcor wrote:
| I am a C# and ASP.NET Core developer.
|
| You should not pick up this stack for a startup or for any
| operation that involves less than three full-time backend
| developers. Iteration is _so_ slow because all the bad OOPy
| practices and patterns from the 90s are still alive.
|
| In just a month our intern made a web app using Django/Python and
| InfluxDb that would have taken us two months to implement.
|
| It's sad because modern C# is an amazing multi-paradigm language.
| But the .Net ecosystem insists on partying like it's 1999.
| uncheckederror wrote:
| I used this stack to replace a Django/Python app that was built
| over 2 years by another dev in 2 weeks. We regularly have 1
| hour turn arounds between when an issue/feature is filed on
| Github and when a new build is live with that code. The self-
| contained deployments have made it simple to deploy this app,
| and now its supporting apps, to our linux-based cloud
| instances.
|
| As proof: https://github.com/AccelerateNetworks/NumberSearch
|
| I've built on many stacks and although I agree that iteration
| speed is important; It has more to do with how you organize
| your project and the quality of your tooling than with the
| specific language/framework.
|
| If you don't like the OOPy style, don't write in it. Pattern
| matching in C# is quite nice, and you can always mark you
| functions as static. As a bonus, simple functions are easier to
| test to.
| dudeinhawaii wrote:
| I completely disagree. In fact, my friend and I used .NET our
| last Startup Weekend event and were the only team to build a
| complete product against teams using Python/Ruby/NodeJs. You
| can in fact write C#/ASP.NET in a rapid hacked together way
| similar to Python if you want.
|
| In our startup products, we've built entire production sites
| with data stores, front-ends, payment systems, and the core
| product, in a few weeks.
|
| I think it greatly depends on the skill level of the developer.
| In the end, "startup dev" is mostly tying together a dozen
| libraries, a datastore, and whatever your secret sauce product
| might be.
| vyrotek wrote:
| I'm a C# and ASP.NET developer.
|
| You should definitely use this stack for a startup or any
| operation with less than three full-time developers.
|
| I've literally done this at three enterprise scale startups
| with just three devs (including myself). Working on the 3rd
| startup right now. The productivity of .NET, Visual Studio, and
| Azure is amazing.
| UglyToad wrote:
| I must admit I'm a little confused at this (but not
| downvoting), I think the speed of development is probably
| equivalent but with the benefit that as the codebase grows you
| at least have types to make scaling easier but having not tried
| Django I can't really give a fact-based view.
|
| Without knowing what exactly was being implemented it's hard to
| assess. However I think any halfway decent .NET developer can
| probably stand up a low-medium complexity MVC app in a couple
| of weeks. Granted you could go full OO-brain and use all sorts
| of patterns, service layers, onion architecture etc. to bloat
| the code. But you don't have to, if it's a quick throwaway you
| could simply do data access directly in the controllers (even
| using EF to abstract away any SQL writing).
|
| Can you expand some more on what exactly the bloat is that you
| feel slows .NET development down?
| phillipcarter wrote:
| Have you tried F# and one of the libraries that sit atop
| ASP.NET Core primitives?
|
| Check this one out: https://www.falcoframework.com/
|
| The coding patterns and practices are _very_ different in the
| F# space. I personally find them much cleaner.
| manigandham wrote:
| I've used .NET stack in my last 4 startups, and it's let me
| (alone or in a small team) compete with much bigger companies
| by building faster and more thorough projects.
|
| A single django/influxdb project doesn't say much, and I bet
| you can find .NET devs who'll build that in a day.
| popotamonga wrote:
| Totally different experience here, been a dev for 20 years
| tried multiple things and .net is so so so much productive and
| straightforward it's the obvious first choice. Sold my last
| project (1 man) to a company now worth 500M+, running strong on
| .net+EF in pgsql without issues.
| zerr wrote:
| How about using alternative web frameworks? e.g. Nancy, coupled
| with similar alternative ORM, etc...
| sbelskie wrote:
| Carter is probably a better choice than Nancy nowadays, but
| in any case the new minimal api features coming in 6 look to
| provide a really excellent way to build elegant web APIs
| without large framework overhead.
| philliphaydon wrote:
| We kinda stopped developing Nancy when .NET core came out
| because MVC became more opt in rather than opt out, and was
| more performant. (Prior to .NET Core, Nancy could handle
| more RPS over .NET Framework mvc)
|
| Master Jonathan Channon (and contributors) have done an
| awesome job with carter! It's definitely an awesome
| alternative. And I think with the stuff David Fowler has
| been working on to make hello world easier it will help
| make carter better too.
| thrower123 wrote:
| The DI obsession in ASP.NET is a little weird, and I'm not a
| great fan of how magic it makes everything. You don't have to
| do things that way, but if you don't, you'll be fighting
| against the grain the whole time, because everything comes
| packaged as middlewares and components and services that you're
| supposed to just plug into that framework.
| aninteger wrote:
| The only problem with .NET is that the best tooling is quite
| expensive. Visual Studio with ReSharper or JetBrains Rider are
| both up there in price and MonoDevelop didn't work with .net core
| last I tried (2 years ago). That kind of leaves you with VSCode
| or a plain old editor (vim/emacs), but you really don't want to
| write C# code in a basic editor.
| manigandham wrote:
| Visual Studio Community has been free for years and lets you
| build anything. VS Pro and Enterprise are for bigger
| teams/projects with some advanced features but nothing you
| absolutely need.
|
| Also what's the problem with VS Code? It's great for C#, and
| basically the mainstream choice for many other stacks like Go
| and Node already.
| dragonwriter wrote:
| > Visual Studio Community has been free for years and lets
| you build anything.
|
| As long as you have a small number of total VSC users (not
| just on a team/project, but in an org; <=5), _and_ are in a
| small, luddite, or mostly-tablets org (<=250 PCs), _and_
| don't have much money coming through (<=$1 million
| _revenue_.)
|
| Otherwise, its only usable for open source work, academic
| research, and classroom training.
| piaste wrote:
| At a quick googling, the basic VS Pro subscription costs
| $45/mo. That doesn't seem unreasonable to ask, even from a
| small company with $1M annual revenue.
| dragonwriter wrote:
| So? The claim I was addressing was about what VS Code
| Community allows for free, not about the reasonability of
| the price of the more functionally limited, but less
| restrictively licensed, VS Code Pro.
| zip1234 wrote:
| $500/yr is expensive for a professional developer?
| cesarb wrote:
| Yes, after looking up average salaries and doing a quick
| currency conversion, USD 500 is around 60% of a whole month's
| salary for an average software developer.
| cyral wrote:
| More like 5%. Rider is also way less expensive and IMO
| better than visual studio these days
| jorams wrote:
| They're talking averages across (some larger part of) the
| world. Developer salaries in the US are incredibly high.
| 5e92cb50239222b wrote:
| Sure, in many parts of the world that's quite a bit of money.
| For example, it's more than 50% of what I spend on food per
| year.
| jve wrote:
| You spend about for food 1$ a day? Where do you live? That
| looks cheap.
| lp0_on_fire wrote:
| It's not outrageous but it's not a trivial expensive, either.
| sumtechguy wrote:
| It really depends on your 'license' with them. For me as an
| individual it is basically 'free'. As the community edition
| is basically pro in all but name. But for a corp env it is
| like you say it is not 'trivial expensive'. They mowed down
| everyone else because it was that choice for a long time.
| You were talking 20-30k per year per dev in the 90s for
| some stacks. 150-500 per year was a bargain by that metric.
| But now there are 5 other IDEs you can pick from that are
| either cheaper or free. In some cases for some langs the
| cheaper ones are better in all respects. In some cases they
| are charging anywhere from 500-9k per year depending on how
| you buy it. Why would I start a greenfield project with VS
| in that sort of env, unless I was already a 'MS shop'?
|
| VS is nice, and one of the better IDEs but by comparison it
| is wildly overpriced.
| zip1234 wrote:
| It's also free if your organization makes less than $1M.
| xtracto wrote:
| The median salary of a software developer in Mexico for 2020
| was of $1750 USD _gross_ , so after Taxes is around $1400.
| $500 USD a year is crazy expensive.
| neogodless wrote:
| Interesting. I've been in and out of the .NET world over the
| last 15 years, and I've used Visual Studio. If my employer
| sprang for MSDN, I'd use Professional, but for most projects,
| Community worked great. I did have access to ReSharper at one
| point, but I didn't end up using most of the features. I've
| found in my own workflow, you don't need any of those things,
| though I'm sure some people rely on them for some personal
| efficiencies.
|
| At any rate, I've never found even the free Visual Studio
| Community to feel like a "basic editor."
| Dzugaru wrote:
| Visual Studio Community or even VSCode with Omnisharp is a very
| solid choice. You can easily write C# code of any complexity
| without any extra bells and whistles of Rider because the
| language itself is that good.
| NicoJuicy wrote:
| https://visualstudio.microsoft.com/vs/community/ is free and is
| pretty complete for a developer.
| ptx wrote:
| Free for some in some cases, depending on the number of users
| in your organization, the number of computers and some other
| things. They got rid of the actually free but less complete
| version (Express).
| NicoJuicy wrote:
| You can use community for a commercial project as a
| developer.
|
| I would be hesitant to join a company that isn't even
| willing to pay for vs professional.
| phillipcarter wrote:
| Yeah, >250 developers or >1mill revenue and _not_ being
| willing to pay for developer tools would be an enormous
| red flag :)
| foepys wrote:
| You can get very far with the free VS Community and can even
| use it commercially.
|
| ReSharper isn't really needed although nice to have and
| actually not expensive. It costs less than a decent toolbox for
| a handyman.
| mhoad wrote:
| I don't have any .NET background or anything even particularly MS
| specific. However, I spent most of 2020 just playing tourist
| between different development / devops communities to get a feel
| for what are the main ideas, challenges, core truths etc in each.
|
| I looked into Java, Ruby, C#, Dart, Kubernetes, Bazel,
| TypeScript, Flutter, Node, lots of CNCF stuff etc.
|
| I have a bunch of interesting observations that I should probably
| write down somewhere at some point because I haven't seen people
| talk about them much yet.
|
| However, one thing that kept coming up repeatedly is Microsoft is
| actually doing a much better job of thinking "beyond Windows"
| than I would have anticipated otherwise.
|
| .NET is making its way into front end web apps now with Blazor,
| Microsoft has also just recently released something that they
| 100% do not market this way but I look at as almost a successor
| to .NET in some ways. The big difference is that it's language
| agnostic and it's entirely built around the concept of
| "distributed" applications. That came out of the Azure team I
| think and was based on everything they had learned about writing
| distributed / cloud native apps in the last 5-10 years. The
| project is called Dapr and was one of the cooler things I saw in
| 2020.
| mattmanser wrote:
| Given their history of abandoning front-end frameworks, I
| wouldn't put too much faith into Blazor.
|
| And the Azure team is, frankly, grossly incompetent. I've never
| used a worse application than the Azure dashboards. It is by
| far the absolute worst piece of software I have ever had to
| endure. Pathetically slow, shockingly bad UX and incredibly
| inconsistent.
| manigandham wrote:
| What did they abandon? Silverlight? That went the same way as
| Flash because plugins were killed by browsers and mobile.
| Blazor is much different and a core part of the web stack.
| Considering you can still run WebForms apps written in C# 2.0
| today, support and backwards compatibility is actually a
| strength of this ecosystem.
|
| But yes the Azure dashboard isn't great, however that's not
| relevant to .NET.
| dharmaturtle wrote:
| FWIW Silverlight is _still_ being supported. EOL is October
| 12, 2021.
|
| https://docs.microsoft.com/en-
| us/lifecycle/announcements/sil...
|
| As context, AngularJS EOL's December 31st 2021. Silverlight
| debuted 2007, AngularJS 2010.
| fuzzy2 wrote:
| Everything. There isn't a single first-party desktop GUI
| framework left that is actively supported and developed.
| UWP is of course still available but modern apps have
| failed.
|
| You can still use WPF and WinForms, but they have serious
| limitations and feel old. WPF for example makes G-SYNC
| switch to 60 Hz.
| dharmaturtle wrote:
| https://github.com/dotnet/wpf
|
| https://github.com/xamarin/Xamarin.Forms
|
| https://github.com/dotnet/winforms
|
| >There isn't a single first-party desktop GUI framework
| left that is actively supported and developed.
|
| This is demonstrably false...
| fuzzy2 wrote:
| Well, yes and no. We can certainly agree that neither WPF
| nor WinForms are _dead_. How could they be? There's
| simply no alternative. However, they sure aren't alive
| either. Development has been stalled for many years and
| both are very old.
|
| I'm pretty sure it's no longer feasible to modernize even
| WPF. I just checked: It still has its G-SYNC issues, even
| on .NET 5.
|
| Totally forgot about Xamarin too because it's so
| irrelevant. But maybe MAUI will change that, who knows.
| I'll believe it when I see it I guess.
| dharmaturtle wrote:
| > How could they be?
|
| They could be EoLed.
|
| > There's simply no alternative.
|
| Are you seriously saying there are _no alternatives_ to
| WPF or Winforms?
|
| >However, they sure aren't alive either. Development has
| been stalled for many years
|
| https://www.youtube.com/watch?v=NDYcq1yKhiA
|
| > and both are very old.
|
| Linux is old.
|
| > I'm pretty sure it's no longer feasible to modernize
| even WPF. I just checked: It still has its G-SYNC issues,
| even on .NET 5.
|
| Or because the issue only has 6 thumbs up on Github, so
| MS is spending its resources elsewhere.
|
| > Totally forgot about Xamarin too because it's so
| irrelevant.
|
| Sorry, but you just read as so salty you're hard to take
| seriously.
| fuzzy2 wrote:
| What is the alternative then? How would you have created
| a new Windows desktop application in 2015? 2018?
|
| And yes, since 2012 there were no major changes to WPF.
| And even these changes were small. The last truly major
| change came with .NET 4.0. So there was a decade of
| almost nothing, even while XAML evolved with UWP. It
| truly doesn't get any more dead than that.
|
| Of course I'm salty. WPF promised a lot, delivered some
| then died. Xamarin wasn't even part of Microsoft back
| then. UWP is a joke. Microsoft neglected the "Win32"
| desktop for way too long. Now it lets the community do
| what it should've done ages ago.
| WorldMaker wrote:
| Also both in very active development:
|
| https://github.com/dotnet/maui
|
| https://github.com/microsoft/microsoft-ui-xaml (WinUI 3)
|
| WinUI 3 includes all of what used to the the UWP controls
| and Renderer but "lifted and shifted" out of OS updates
| and also made accessible to non-UWP (primarily Win32)
| applications in Project Reunion (and techniques such as
| "XAML Islands").
| mhoad wrote:
| I'm going to ignore the "Shit HN says" vibes on this one for
| the most part, but I suspect that Microsoft and the Azure
| team specifically might have some relevant thoughts about
| building distributed systems regardless of if you like their
| dashboards or not.
|
| As for Blazor, I think you might be missing the larger point
| here that I am trying to make. But .NET is still this Windows
| thing in the minds of most people. That hasn't officially
| been true for a couple of years now but the .NET crowd are
| coming to things like Linux and Front End now for the first
| time.
|
| There are about to be a lot more conversations between say
| the React crowd and the Enterprise app development crowd, I
| am actually excited to see what they can all learn from one
| another.
| gjhr wrote:
| I'd agree with them that the portal is terrible. Multiple
| times a day I get blank page errors, where the page is
| completely blank except for a single non-sensical error
| message in black text.
|
| However their actual services are also pretty terrible.
| Pretty much everything takes significantly longer to deploy
| than the AWS couterpart. There are so many preview and
| deprecated features that it is often hard to judge exactly
| what feature set you are getting, this is often compounded
| by the fact that almost everything has multiple SKUs which
| also change available features. Azure AD RBAC is a bit of a
| mess, although its conceptually simpler than AWS IAM
| policies its just a pain to use in practice, and its often
| slow for changes in permissions to actually reflect. Azure
| VM disks are annoying to use too, you can't set the size of
| the OS drive at creation and extra data disks come
| unformatted. "Grossly incompetent" is probably an overstep
| though, Azure is very impressive, just not as impressive as
| its competitors right now.
|
| Having said all that their are a couple places where Azure
| really shines in my opinion:
|
| * Resource groups (GCP has a similar feature) allow you to
| more easily keep track of related resources across
| services. * Price transparency. Many (not all) services
| tell you up front hourly/monthly costs as you are deploying
| them through the portal. You don't have to track down a
| pricing page or calculator yourself. * Azure functions are
| amazing when using C#/.Net. A huge amount of the regular
| boilerplate is abstracted away into simple C# annotations
| so you can get a large % of business logic.
| lbriner wrote:
| I think I might agree that the Azure portal is slow, has bad
| UX and is somewhat inconsistent but I very much suspect that
| with the pace of change in cloud systems, it is very likely
| to be driven by some database so that it is easy to create
| new config pages for each new product without having to write
| an entire new web app.
|
| It is a web app though and I wouldn't see that AWS is
| necessarily ahead. The IAM setup is still very head
| scratching, although some things like SES setup with DNS are
| very easy.
|
| Like someone else said, not really related to .Net
| manigandham wrote:
| Link to Dapr: https://dapr.io/
| lbriner wrote:
| The difficulty for me as a FT .Net Dev is the pace of development
| is hurting quality. There are many edge cases and bugs that get
| introduced as things change from nuget to dotnet pack, from
| netstandard to netcore, from net core 3.1 to net 5.
|
| Each time, something is breaking which is more often than not
| "won't fix, just use .net 5". Net 5 isn't even finished and they
| are already previewing 6?
|
| It is usually something like under .net 3.1, the build was fine
| and then under .net 5, an error happens, "oh yeah, you can
| workaround that by modifying your project file". Or you try and
| build in a .net 5 nuget package which means you can also
| reference an older netstandard 2 package that the developer has
| decided doesn't need updating because it hasn't changed.
| gregmac wrote:
| I agree, though I wouldn't say it's the pace of development so
| much as the change in approach.
|
| .NET Standard made sense as a transition plan, but then was
| effectively abandoned. I understand that the focus went to .NET
| 5/6, but the effort is incomplete! Using a .NET Standard 2.0
| project in .NET Framework sometimes works, and sometimes
| results in obscure build errors -- where you then are
| diagnosing why you are getting the wrong versions or errors
| loading packages System.Net.Http.Formatting or System.Buffers.
| I think there's also a bunch of hacks underlying a bunch of
| this stuff -- for example there will be a nuget package with
| version 4.3.0 that contains a .NET assembly with version
| 4.1.1.3 in a .dll with file version 4.0.0.0 -- and it's
| absolutely frustrating and infuriating.
|
| In theory you can also create a project that multi-targets .NET
| framework and .NET core, but in practice, while I've got this
| to work, it's an adventure every time and most often I just
| give up as it's not worth the time-sink.
|
| It kind of seems like the official migration path is just "stop
| everything, port to .NET 5 and you'll be good". But that's not
| really practical.
|
| Indeed, my experience on pure .NET Core (3.1) or .NET 5 has
| been very good thus far -- including easily building cross-
| platform native apps. It's just that the reality is there's
| still a lot of .NET Framework code.
|
| The other big challenge for us is in delivering apps that run
| on customer systems. Doing the switch to .NET Core/5/6 means we
| have to decide on: increasing from shipping a 5MB to a 45MB app
| (runtime included); requiring .NET runtime is installed (and
| handling auto-update failures when it's not); modifying the
| installer to install if needed (again handling failures). This
| is all tons of work, and a tough sell when we have a multi-year
| backlog of bugs and feature requests it has to compete with.
| 0x0 wrote:
| This exactly! The branding and versioning of .NET is a complete
| disaster. There's .NET Framework (where even simply getting the
| current runtime version requires several convoluted hoops,
| since System.Environment.Version has gone the way of browser
| user agents and frozen itself at "4.0.30319").
|
| Then there is .NET Standard, which was at version 1 and 2
| (which are newer than .NET Framework 4.0 or 4.5? but have
| significantly fewer APIs available, and many classes are
| missing methods and properties that were present in .NET
| Framework).
|
| Then there is .NET Core which reset the versioning scheme
| again?
|
| Then there is .NET 5 which is newer than all of these, but is
| it actually fully supported on non-windows platforms?
|
| Then you need Newtonsoft.JSON, and then you get to watch your
| entire project blow up because you have three different
| dependencies that use different versions of
| netstandard/netcore/netframework and the assemblies aren't
| compatible.
|
| I really hope going forward there will be just one unified .NET
| 6 that works the same on all platforms and doesn't need a
| million different builds of the same nuget package.
|
| Edit: And even after all this, deploying your app by just
| copying the .exe and .dlls to a pristine machine often fails,
| because the corresponding .NET framework runtime isn't
| installed. And then you need to be a lawyer to figure out if
| you can even ship the net framework installer to your customer
| or how to handle that. You would think Microsoft would have a
| better story to sell to developers as what should be "the way"
| to develop and distribute windows executables. It seems like
| the only way to really be portable is to use an ancient version
| of Visual C to write win32 directly, and link the corresponding
| msvcrt statically.
| nightski wrote:
| Yes .NET 5 is supported on all platforms. It is the future of
| .NET Core. They dropped core because they wanted to make it
| clear it is the one true dotnet going forward. It actually
| will greatly simplify things going forward. .NET standard
| will no longer be necessary because there is only .NET 5
| onward.
|
| You don't "need" Newtonsoft.JSON. .NET now has a built in
| serializer which is much faster. But for compatability and
| some more advanced scenarios some people still need/prefer
| it.
|
| Lastly .NET core apps (and .NET 5/6 going forward) have an
| option to produce a single file deployment. This includes the
| framework so you do not have to have it pre-installed on the
| target.
| mkr-hn wrote:
| So what do people generally use .NET and adjacent languages for?
| Is it pretty much the same use cases as Java?
| oaiey wrote:
| Yes. But better .. okay kidding.
|
| It is the same use case. c# is slightly more modern and lib
| space is cleaned up. I do not know your age, but long time ago
| Microsoft messed with Java and got into huge legal troubles. As
| a consequence they developed .NET with the language designer
| who did before TurboPascal and afterwards Typescript. It is a
| bit more optimized for productivity but so are many other
| languages nowadays.
| Shadonototro wrote:
| the problem i always had with dotnet was
|
| - why dotnet when java exists?
|
| then GO came to the party and completely deprecated both
| java/dotnet, at least to me, i never looked back
|
| - native AOT compiled executable
|
| - 1 small file
|
| - ultra fast compile time
|
| - great ecosystem
|
| for all my backend needs, it's GO
|
| with dotnet everything feels heavy, ancient and bloated, msbuild
| and their xml for their projects, when you need to add some logic
| things becomes unreadable with XML logic, it's a mess, their json
| attempt wasn't great either, it was just JSON vs XML, they should
| have went with C#, build.cs, that's it
|
| then you have deployment, it's MUCH MUCH easier than with java
| and with their jar/classpath bullshit, but it still is a bloat,
| it's a DLL mess
|
| and let's not even talk about how everything is attached to
| microsoft
|
| even their WASM effort isn't called WASM, you can't target a WASM
| module, it's BLAZOR, with MONO (why mono still exist when you
| have dotnet core? i have no clue, it adds to the bloat
| sentiment), wether you like it or not, it's BLAZOR, wich sucks
| because i wan't to handle hosting my way, from the beginning they
| vendor lock you
| jmkni wrote:
| I'm a long time dotnet guy, but I've been working with
| Swift/XCode recently.
|
| There are definitely some things I like (completions in
| particular), but man do I miss the dotnet world.
|
| I recently had an issue where I was using a third party closed
| source library in Swift. A particular function I was calling was
| _sometimes_ bombing out, and because it wasn 't marked as a
| _throwable_ function, I couldn 't put a do/catch around it. As a
| result, when it did, my app would just crash and there was
| nothing I could do about it.
|
| I even asked on StackOverflow and was just told that this
| function _can 't_ be erroring out, even though it was lol
|
| I've worked with other languages/frameworks as well over time and
| nothing is as nice to work with as dotnet.
| eatonphil wrote:
| It's a great time to play with .NET on Linux/Mac these days. .NET
| Core (which was for not-just-Windows) became just .NET in .NET 5.
| F# and C# are both very easy to use.
|
| You can even get a single static binary release that will work on
| platforms without .NET libraries.
|
| Check out the Makefile and project file in this repo if you'd
| like an example:
| https://github.com/eatonphil/dbcore/blob/master/dbcore.fspro....
| evo_9 wrote:
| True as long as you're not on an M1 Mac; right now it's a
| little bit of a mess since .NET 5.0 isn't fully supported and
| .NET 6.0 isn't quite ready for primetime (this release gets us
| a ton closer though). It's still doable, but with limitations;
| that said I still love my m1 air and .NET 6 will make it that
| much better/easier to do dev on it when it drops this Fall.
|
| But yeah, it's a great time for sure, just good to keep that in
| mind since you also can't run any of MS's (or JetBrains) IDE's
| (or MS SQL) on a VM in Win10 ARM. Win10ARM VM does smoke though
| so hopefully they releases all that on ARM, that would another
| nice option.
| abdusco wrote:
| JetBrains has released a preview version of Rider that works
| reasonably well on M1. It is still buggy, but editor & IDE
| experience is good enough.
|
| https://rider-support.jetbrains.com/hc/en-
| us/articles/440192...
___________________________________________________________________
(page generated 2021-06-18 23:02 UTC)