Most active commenters

    ←back to thread

    .NET 10

    (devblogs.microsoft.com)
    489 points runesoerensen | 20 comments | | HN request time: 0.44s | source | bottom
    1. jcmontx ◴[] No.45899182[source]
    I've worked with .NET for over 10 years and we built our startup on top of it. Here are my thoughts:

    Pros:

    * Stability

    * Very decent standard library

    * Good balance between productivity and robustness

    * Great package management

    * Extremely easy to upgrade, so essentially free goodies (performance) every year or so

    Cons:

    * Very MSFT dominated (obviously)

    * Subpar tooling outside of Windows (I'm looking at you C# Dev Kit)

    * C# has way to many features, it feels bloated

    * Culturally, it feels like .NET devs are less "passionate" about their work

    * The freaking stigma of being a .NET dev: you will never be as cool as the guys who work with Node/Python/whatever

    Edit: Also I'd like to add EFCore as one of the pros of the ecosystem. Hands down the best ORM. Others don't come close.

    replies(8): >>45899274 #>>45899472 #>>45899662 #>>45899834 #>>45899898 #>>45900262 #>>45904735 #>>45908095 #
    2. duxup ◴[] No.45899274[source]
    Anecdotal opinion , but as someone who works in Node and JS land a lot of the time. I think .NET is pretty cool.
    replies(1): >>45903499 #
    3. theshrike79 ◴[] No.45899472[source]
    > * Culturally, it feels like .NET devs are less "passionate" about their work

    Only in the "stove pipe industry" as we say here. Mobile gaming is massively C#-based for example and the people are really passionate about what they do.

    And for a backend dev, the scale of stuff you get to work with is cool.

    replies(1): >>45907967 #
    4. threetonesun ◴[] No.45899662[source]
    It’s funny, I came up in my career working in places mixed with .NET and PHP/JavaScript devs and the .NET developers all felt the PHP/JS teams were clown cars. IMO had .NET Core come out a few years earlier it would have a much bigger marketshare today, but when you had Ruby/PHP/Node/Python devs primarily using Macs, no one wanted to touch the thing.
    5. deburo ◴[] No.45899834[source]
    * C# has way to many features, it feels bloated

    Most of the newer features make C# less cumbersome to use. I can't imagine using the language from ten years ago, in fact the first thing I do when working on a legacy app is to set langVersion=latest.

    replies(2): >>45900144 #>>45900182 #
    6. maccard ◴[] No.45899898[source]
    I use rider on Mac (and windows to be fair) and i think the experience is better than visual studio on windows.

    My biggest gripe with dotnet tooling is dotnet format. It’s not quick enough to use on a pre commit hook, so people don’t run it regularly and we get failures for it.

    It’s such a small nit, dotnet is a great environment to work in

    replies(1): >>45908420 #
    7. jcmontx ◴[] No.45900144[source]
    Sometimes less is more. It very easy for devs to use the language in completely different ways. I lean towards Go style in that regard. My ideal language would be like Go + Linq.
    8. danielbarla ◴[] No.45900182[source]
    I've heard this argument before from the perspective of C# having more keywords and language features to be aware of than something else (in my particular argument, the other side was Java).

    From this perspective, I can't say I disagree as such. If you look at the full set of language features, it sure is a lot of stuff to know about. The argument that it is too much, and that we should sacrifice expressiveness and signal to noise ratio in the code to keep the language simpler, I don't agree with.

    9. stetrain ◴[] No.45900262[source]
    I've personally found Rider to be a great IDE for .NET development outside of Windows.
    replies(1): >>45907028 #
    10. davey48016 ◴[] No.45903499[source]
    .NET Core and ASP.NET Core (especially the minimal APIs) seem to have taken a lot of influence from Node API libraries like Express.
    11. denismenace ◴[] No.45904735[source]
    Why is EF regarded as such a good ORM? I've encountered countless bugs in different repos related to its stateful nature after many years in .NET. Personally I found it completely illogical for my ORM to maintain state. I just want it to hold my schema and build queries.
    replies(3): >>45905195 #>>45905770 #>>45906166 #
    12. achandlerwhite ◴[] No.45905195[source]
    EF or EFCore? Specifically EFCore is highly regarded whereas legacy EF not so much.
    13. htgb ◴[] No.45905770[source]
    Are you referring to the change tracker? FYI you can have it skip tracking as the default (or per query), but when you actually want to make changes you better opt in with `.AsTracking()`.

    Anyway, I've used EF at work for about a decade and I'm happy with it. I surely have blind spots since I haven't used other ORMs in that time, but some things I like are:

    - Convenient definition of schema.

    - Nice handling of migrations.

    - LINQ integration

    - Decent and improving support for interceptors, type converters and other things to tailor it to our use cases.

    What ORM do you prefer, and how does it differ by being stateless? How does saving look like, for example?

    14. wvenable ◴[] No.45906166[source]
    EF Core is amazing -- in it's default setup it works for 99% of situation. For the 1%, you can basically turn off everything you don't want.
    15. Kwpolska ◴[] No.45907028[source]
    It’s also a great IDE for .NET development on Windows.
    16. 999900000999 ◴[] No.45907967[source]
    Unity C# is arguably its own thing.

    The way you use C# is much different than anywhere else. The Unity implementation lags by a few versions. It’s an awesome language though

    17. jerhewet ◴[] No.45908095[source]
    > C# has way to many features, it feels bloated

    Could not agree more. Too many -- WAY too many -- "features" from Javascript and functional languages have been jammed into C#, and the language has suffered for it. Every time I see "var blah" in C# code I cringe at how lazy you must be to not use strong typing when declaring a variable.

    Same goes for "astink / await". If you need asynchronous multi-threaded code, use the damned Thread Parallel Libraries that Microsoft provided over a decade ago. Being forced to have every damned thing you write in C# wrapped with astink is just one giant code smell.

    Yes, I'm old. Thank ghod I'll be retiring very soon, because as far as I'm concerned the tooling and languages I've used over the past 50 years have taken one step forward and at least three steps back in the past five years...

    replies(1): >>45908683 #
    18. jimbob45 ◴[] No.45908420[source]
    Off topic but what is the name supposed to reference with Rider? I get that it’s a play on “writer” but what does riding have to do with anything?
    replies(1): >>45908651 #
    19. nine_k ◴[] No.45908651{3}[source]
    I suppose it's word play, as usual in JetBrains product names. *(See) Sharp rider", that is, an expert rider (of a horse, or a bike).
    20. nine_k ◴[] No.45908683[source]
    Sorry, but var in C# is type inference, not dynamic typing, AFAIK. It's as strongly typed as a long-form declaration.