back to article Microsoft has gone to great lengths to push its tech, but survey suggests many devs slipped through the .NET

The Microsoft-sponsored .NET Foundation has released a survey-based "State of .NET" report showing that efforts to broaden the appeal of the technology beyond its own platform have had limited success so far. The .NET Foundation was set up by Microsoft in 2014, around the time that the cross-platform and open-source .NET Core …

  1. karlkarl Silver badge

    "One is that 89 per cent report using Visual Studio, a Windows-only development tool (Visual Studio for Mac is covered separately). The implication is that efforts to take .NET to developers working on Mac or Linux are having limited success"

    Not entirely sure but the category ".NET Developer Command Line Interface" probably represents the Vim/Linux users. That even looks to be a fair chunk.

    1. gormful

      "Not entirely sure but the category ".NET Developer Command Line Interface" probably represents the Vim/Linux users."

      Or we Vim/Windows users who can't stand Visual Studio.

      I like C# a lot, and the .Net libraries aren't bad at all. But I'd drop them like a hot potato if the only way to use them was with an IDE.

      1. Def Silver badge

        So what do you use for a debugger?

        I used to work with a guy that preferred some ancient text editor over the Visual Studio editor. He spent more time alt-tabbing between the two applications than he did working. Edit some text, alt-tab, compile, alt-tab, fix an error, alt-tab, recompile, run, alt-tab, edit, alt-tab, compile, ad infinitum.

        1. Michael Wojcik Silver badge

          It's possible to put windows side-by-side, so you can change the focus by moving your mouse. Or to run msbuild from within vim.

          But, yeah, there's really no good debugger for .NET / CLR programs on Windows. WinDbg with SOS (or whatever they're calling the managed-code debugging extensions these days) really isn't viable; I use WinDbg for native-code debugging on Windows but it's largely useless for managed code. I don't think mdb is even supported anymore and it was always only marginally usable at best.

          When I have to debug, I use Venomous Studio, much as I loathe it. It's uniformly terrible, but it's the only thing I've found that works, at least for the sorts of things I have to debug.

          Of course, a lot of the managed code I'm debugging is written in managed modern-syntax OO COBOL, which source-language-sensitive debuggers will have trouble figuring out. (Visual Studio can because of our extensions, obviously.)

          1. Nick Ryan Silver badge

            Yeah, the debuggers are absolute horrors.

            Other than the horror of debugging itself when one finds oneself stepping into core windows libraries, the old Borland debuggers were fantastic. Did absolutely everything needed and worked really well. As long as one had either dual monitors or a very large screen resolution otherwise the application focus switching and the inevitable cascade of windows messages caused all kind of annoying context changes.

            Debugging down to assembly code level is useful at times, however as soon as one does that with anything .net related one soon finds where all the CPU speed increases have disappeared to and why a typical user application today is no more responsive than an application of 20 years ago.

            1. Ken Moorhouse Silver badge


              Having worked in Real Time programming environments, where there is a need to have full control, and to record external process events, I still resort to a ring buffer concept for production stuff. Having to work out what to stick in that buffer, ensuring that it is informative enough to detect the problem, yet not too verbose that the buffer gets filled too quickly such that it is overwritten by the time it is frozen for analysis, is a knack worth cultivating. A timestamp is your profiler.

              Typical problem with Real Time is sending a message to the owner of a repository to populate it with some data. If your next step is to make use of that updated data then you have to ensure that that other process has completed its run with no errors in the meantime, otherwise you're looking at stale data. I dread to think of the way some coders kludge that dependency.

  2. Dwarf

    Whole market view

    I wonder what the diagram looks like if you consider the whole market, not just Microsoft's view of the world

    Most of the devs I work with don't use any of those tools and VS code is probably only popular as its free.

    1. bazza Silver badge

      Re: Whole market view

      Visual Studio is also free if one is happy with the community edition.

      1. Ken Moorhouse Silver badge
        Thumb Up

        Re: if one is happy with the community edition.

        If one is going to do that, then do oneself a favour and go here instead...

      2. Anonymous Coward
        Anonymous Coward

        Re: Whole market view

        And you can comply with the license of community edition, which depending on the size of your organisation you may not.

  3. Ken Moorhouse Silver badge success so far.

    Not surprised at the apathy when Microsoft have a tendency to move the goal-posts regularly.

  4. bombastic bob Silver badge


    the whole '.Not' thing (In My Bombastic Opinion).

    The attempt to be all and do all for both back-end AND desktop on EVERY possible OS is just too, too much. And when Micros~1 began to use it on the desktop, in Windows Server 2003, performance was the FIRST thing that suffered. I know because I had Win Server 2k running on the same box, but 2k3 ran like a FAT BLOATED PIG, required over twice the RAM, and 3 or 4 times the CPU clock speed to even APPROACH equivalent performance.

    That kinda said it all, to me [other than the humongous bloated shared lib collection that takes an hour or so to "update the indexes" after updating the libraries, even on MODERN computers!].

  5. Slipoch

    Given that WPF actually works in more situations than UWP, is it any surprise?

    .net was rubbish until 4.5, when it finally became useful and didn't have too many broken functions (ports <= .NET 3.5 were irretrievably broken)

    .NET core is pretty good and being able to package the specific .NET core version with your project is excellent.

    That said, if Borland had managed to hold onto their programmers and keep going with builder, well it would be a different story, embercadero's verison is a buggy nightmare to install with so many issues, just getting it to run is a PITA.

    1. bazza Silver badge

      I like WPF too, it's pretty good. Data binding is, when you get it working, a bit of a treat. It's easy to see that a taste of success with data binding makes one consider other frameworks with distaste. It can save a ton of code.

      1. Def Silver badge

        WPF's biggest problem is being so closely tied to DirectX. It was fine when Microsoft were more interested in developing on just Windows, but trying to port to other platforms just became impossible.

        It's a shame they've taken so long to come up with a better solution. If they'd just remove all the bullshit telemetry from WinRT people might actually start using it.

      2. Anonymous Coward
        Anonymous Coward

        Data binding always seems fantastic but I find it doesn’t take long for it to just get in the way as soon as you try to go beyond anything basic.

        1. Adelio

          Have to agree, any simple form can be written in most languages (that handle UI) but once you get to more sophisticated interfaces where you might be accessing tens of tables with multiple views and complicated descision tress data binding just does not cut the mustard.

          That was always the problems with microsoft code examples, so simple my six year old granddaughter could have done it. But once you get to a sophisticated business application the examples weree a total wast of time.

          1. bazza Silver badge

            I can see that that aspect of it can get tricky.

            Is there any opinions of having classes implement such interrelationships and complexity, and bind the UI to the top of that? Like a multilayer MVVM? I know there's problems with MVVM in its own right, and what I'm suggesting could possibly make that worse. But perhaps not so bad if one is tempted by MVVM in the first place?

        2. bazza Silver badge

          Data binding always seems fantastic but I find it doesn’t take long for it to just get in the way as soon as you try to go beyond anything basic.

          Well, don't programme in basic then!

          Oh, I see, sorry, reflex action on seeing the 'b' word. I'll get my coat.

  6. Richard 12 Silver badge

    12% used it *before* release?

    So they must have been working for Microsoft, which implies more than 12% of respondents are current or former Microsoft employees.

    This is a very poor survey, even among self-selected surveys.

    The primary conclusion is that the foundation itself is either almost entirely unknown, or alternatively completely ignored by the dot NET community.

    1. Oliver Reed

      Re: 12% used it *before* release?

      I used .NET before it was released.

      I was a contractor at the time working with VB6 and thought that .NET would be the next big thing (i.e. would get me more contracts!) - so I was exploring the SDKs in 2001 before the IDE was released.

      Roll forwards to 2021 and although I'm no longer a contractor I'm still making a living from using .NET :)

  7. Dagg

    Hell I'm still using MFC

    I'm maintaining a legacy system using VS 2017 and MFC. It runs under W10.

    It is written using MFC and does exactly what the clients want. Is not sexy but it is a form fits function type of application. To rewrite in something newer and sexier would take considerable cost, time and effort.

    1. bazza Silver badge

      Re: Hell I'm still using MFC

      If it ain't broke...

      Had they originally chosen to have implemented that on MacOS, they would have been forced to have rewritten it a few times by now...

    2. Filippo Silver badge

      Re: Hell I'm still using MFC

      I'm about to go replace a DOS-based system that has been running for nearly 30 years. The new version has a WPF GUI. I fully expect the system to last 10-20 years. I don't give a carp that WPF won't be receiving any more updates. It's a framework that works, that has been around long enough that its bugs are either fixed or well-known, and if there's one thing I can trust Microsoft for, it's to keep legacy stuff running as long as it's reasonably possible.

      1. NerryTutkins

        Re: Hell I'm still using MFC

        I do wonder though why Microsoft, with its open source tendency for new versions, does not allow the older legacy tech loose as open source. There are a lot of people still using Web Forms and other tech because it works and it suits them, and perhaps they have a lot of legacy code that would be expensive to completely rewrite in Blazor, etc.

        As you say, they do a good job of keeping old stuff running (we still have some clients with old classic ASP scripts that still work fine) but it would be nice if they would open source end-of-line stuff they have no interest in continuing, because others may choose to keep them running or perhaps port them to the newer .NET versions.

        1. Def Silver badge

          Re: Hell I'm still using MFC

          Because it probably doesn't compile on modern compilers and it would take too long to fix.

  8. Warm Braw Silver badge

    The top choice is ASP.NET Web API

    This seems to correlate strongly with job advertisements where ".Net" is largely synonymous with either REST middleware or MVC-based single page web applications using Angular or React. The remainder seem to be WPF (front end) with WCF communicating with a server-based backend.

    I'm not entirely surprised that people are using Visual Studio in those environment as it does a fair bit of the heavy lifting to get an initial project off the ground, creating the directory structures and skeleton code/data.

    C# is quite a good fit for a lot of non-UI purposes - the Kestrel web server that comes with ASP.NET is a case in point - and it's a shame it's not more widely used. However, I suspect it's mostly inherited its use cases from historic MFC and VB business applications gradually migrating to client/server and then the cloud.

    1. Adelio

      Re: The top choice is ASP.NET Web API

      This is the thing. When I was writing standard windows applications (thick client) I just used all that microsoft provided plus some third party UI controls. It worked a treat.

      Now with web based apps if you are not using at least 10 different tools. Angular, MVC, etc, etc then you are doing it wrong. REALLY? Why is it all so complicated now.

      You look at job adverts and the list of required skills now seems to fill the page.

      everyone seems to insist on reinventing the wheel every other week!

      1. Ken Moorhouse Silver badge

        Re: When I was writing standard windows applications (thick client)

        I notice the use of past tense. Is it something to do with what you called him/her?

  9. Alan Bourke

    One problem with UWP

    Is that they tied deployment too closely to the Windows Store. No bugger uses the Windows Store.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Other stories you might like