Microsoft fucks their developers in the ass... AGAIN



  • Remember when Microsoft made sweeping changes to .NET Core halfway through the RC process, and pissed off a bunch of their community contributors? Well, ASP.NET team seems to have decided to follow in that tradition.

    That's a long thread, full of confusing (terrible) names of Microsoft's half-complete transitional platforms (netstandard? netcore1? netcore2?).

    Here is the gist of it, as beast as I can understand. A bunch of "big time" .NET developers worked side by side with MS on ASP.NET Core 2, with understanding that they'll be able to migrate their .NET 4.6 applications to the new framework. Overnight, and basically a week before the first RC, Microsoft changed a bunch of dependencies, making it so that you won't be able to use ASP.NET Core 2 on .NET 4.6+ (making .NET 4.x kind of deprecated). So you either migrate to .NET Core v2 (I think there will be no path forward from v1), or no update for you. As per glorious tradition of Microsoft OSS, this was done without any public discussion with their "community" / peanut gallery.

    I found this out through Nick Carver, technical lead for Stack Overflow.

    Other NET long-timers displaying similar levels of disappointment in the linked thread.



  • This comment is a good summary of the issue.

    Guys, this is kind of garbage :(

    We built on top of ASP.NET Core because of the option to use it with netfx, and we built things which were intended to last 5-10 years, not for 1 year of support max. This is what the ASP.NET name means in business and it's why large, slow-moving organisations choose it over flavour of the month frameworks. Let me move on to the concrete use cases..

    I work in a tooling group which builds line of business libraries and applications for use internal to a company and for sale to 'enterprise' clients. Mostly government organisations in our case but I'm sure you'll be hearing the same thing from the private sector. We have internal frameworks which encode business patterns into common abstractions - think "IDatabaseConnection", "IEntityProvider", "IWizardFlow", "ICodeGenerator" - and build RAD frontends on top of these pluggable backends.

    In our stack, ASP.NET Core is a 'plugin' - it's an HTTP destination, used as a datastore abstraction and for hosting services and so on. It's also a 'frontend' - obviously a bunch of the LOB apps out there are websites, and it's a great new framework for webapps. So we have bidirectional interoperability requirements - A.N-C code which references random other components, and random other code which references A.N-C.

    We're totally fans of Core CLR and portability, and we've ported a bunch of our components to target or multitarget netstandard. We've got one app that's hosted on Linux so far and hope to have more to come. However, there's no way that everything is going to be ported any time soon! We have still-live, actively-developed code which relies on

    • NTLM authentication (including advanced scenarios around tokens and SPNs)
    • System.Drawing as above (interesting wrinkle here: we need old image formats like TIFF, which new OSS libraries don't support)
    • Connecting to WCF/SOAP apis - still tons and tons of these out there
    • Windows crypto apis (including RSACng, ECDSA, and CSP for PKI tokens)
    • WPF guis - our clients are not switching to windows 10 any time soon and even when they do they won't want Store apps
    • Microsoft Office interop (particularly access and excel) for data import and export
    • Visual Studio extensibility
    • Third party plugins like the Oracle ADO.NET provider

    Some of these technologies are never going to be supported by Core CLR. But they are real technologies, which are the basis of new app development - we need a version of .NET which has access to this stuff. Right now our position is manageable: we isolate "legacy" (really: platform-specific) dependencies into their own components which are net461 specific. Specific business apps then take a dependency on netfx if they need these features, and not otherwise. I envisage a future where this is rare for new apps.. but it's hard to imagine it ever being 0%.

    You did all this work on csproj and the SDK because interop is important. ASP.NET Core is the carrot, the reason to want interop. I do not think it makes sense to take it away. And no, "you can load your references in one direction, but they will likely fail at runtime" is not interoperability.



  • @cartman82 said in Microsoft fucks their developers in the ass... AGAIN:

    That's a long thread, full of confusing (terrible) names of Microsoft's half-complete transitional platforms

    I liked .NET better when it was old, rusty and dead.

    My experience with the new hip Microsoft so far ended up with a project that manages to hang the compiler. And another that won't work because one of the libraries requires .NET Framework, and I could port it to Standard (or Core I guess?) except it uses F#, and that targets Profile259 or something so I can't.



  • @Maciejasjmj said in Microsoft fucks their developers in the ass... AGAIN:

    My experience with the new hip Microsoft so far ended up with a project that manages to hang the compiler. And another that won't work because one of the libraries requires .NET Framework, and I could port it to Standard (or Core I guess?) except it uses F#, and that targets Profile259 or something so I can't.

    It's such a mess. I am not touching NET again until Microsoft makes it super-clear which frameworks/platforms/things are long support path forward and which are another failed OSS experiment of the week.



  • @cartman82 said in Microsoft fucks their developers in the ass... AGAIN:

    until Microsoft makes it super-clear which frameworks/platforms/things are long support path forward and which are another failed OSS experiment of the week.

    Aren't you living in the glass house of Javascript?



  • @Maciejasjmj said in Microsoft fucks their developers in the ass... AGAIN:

    Aren't you living in the glass house of Javascript?

    Glass houses are so last week, grandpa. Everyone is moving to glasster + framely, on top of housematic build system. I wrote a blog post on dev.to about it (medium!? Pff, no one uses that any more).


  • Banned

    I think that Microsoft want to update and make everything better. IT sphere is changing every day and you must accept it. If it's difficult for you ask professionals here.

    [mod - URL changed - PJH]



  • @ritadavis said in Microsoft fucks their developers in the ass... AGAIN:

    I think that Microsoft want to update and make everything better.

    Hopefully spam filters too.



  • @Maciejasjmj said in Microsoft fucks their developers in the ass... AGAIN:

    I think that Microsoft want to update and make everything better.

    Hopefully spam filters too.

    That was like a commercial from Truman's Show.

    The Truman Show - Product Placement – 02:16
    — shinygirl89



  • 0_1494321891600_Capture.PNG

    Working for one site while shilling for another is not very professional, Rita. But you're only 13 so it's excusable, along with the many mistakes you made in your profile.

    All in all, not too bad but needs more effort. C+

    Professional Essay Marker.





  • @cartman82 said in Microsoft fucks their developers in the ass... AGAIN:

    It's such a mess. I am not touching NET again until Microsoft makes it super-clear which frameworks/platforms/things are long support path forward and which are another failed OSS experiment of the week

    There is never an official warning. The one weird trick is do like granpa and wait a few years before adopting​ stuff. The stuff being uses by many large MS customers is rarely abandoned (like .net 4.6 and webforms). New stuff early adopters take like core is abandoned all the time.

    You don't​ need to do like my employer and wait 20 years though.


  • Winner of the 2016 Presidential Election

    @wharrgarbl said in Microsoft fucks their developers in the ass... AGAIN:

    You don't​ need to do like my employer and wait 20 years though.

    Just delete the old code, then they'll be forced to re-write it using a contemporary library.



  • Actually, if you need to rebuild the DLL for it to run in the new target, it make sense to create a new target to distinct it from the old ones (i.e.: make people notice it as incompatible)

    .NET Core is subset of .NET framework, and as noted in the replies, it's moving faster than the .NET framework or .NET standard itself, therefore they have to build it on new line of versioning.


  • Discourse touched me in a no-no place

    In other news Framework 4.7 is out.



  • @cartman82 This is what happens when you adopt open source, everything becomes shit.

    The bigger mystery is why people think open source development practices are a desirable thing to have in the first place. It's always been shit, this isn't new or exclusive to Microsoft open source.


  • area_pol

    @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    The bigger mystery is why people think open source development practices are a desirable thing to have in the first place.

    Because it promises great things basing on false assumptions about human nature. Exactly like communism.



  • @MrL People who want to use .net want shit that's RELIABLE and not flying around on the wind like that bullshit feather from Forrest Gump. Nobody who's picked .net for a project ever said, "well this is nice, but it'd be better if it was constantly breaking itself like JavaScript frameworks."

    How can there be such a huge disconnect between the people who write it and the people who use it? Even if there was, how the fuck could the people who write it think it's ready for release when it doesn't have stuff like System.Drawing, or Active Directory auth, or Office Interop? Stuff that's used by an extremely LARGE percentage of .net apps. What universe are they living in? Have they ever even talked to another software developer?


  • Winner of the 2016 Presidential Election

    @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    Have they ever even talked to another software developer?

    Yes. Unfortunately it was a hipster JS developer convinced .Net is dying, like @cartman82


  • area_pol

    @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    Nobody who's picked .net for a project ever said, "well this is nice, but it'd be better if it was constantly breaking itself like JavaScript frameworks."

    Unfortunately, that's not true. Most software developers are clueless, naive, easily manipulated and simply stupid. Just like most other people.

    OS is a huge marketing success and that's all that matters.



  • @blakeyrat Their strategy seems to have been to get cross-platform ASP.NET working as soon as possible, and move on from there, feature by feature. Honestly I don't know what else they can do. They have to release something, so people can give them feedback on it, and if they didn't do it somewhat officially, everyone would ignore it until something more official came along.

    Right now, I don't care about it, because it doesn't do anything I'm interested in yet. Maybe it will someday.



  • @Magus said in Microsoft fucks their developers in the ass... AGAIN:

    Honestly I don't know what else they can do. They have to release something,

    Do they though?

    What's preventing them from finishing it, then releasing it? Did God carve some more stone tablets that I'm not aware of?

    Oh, let me guess: they're following the moronic open source canard "release early, release often". Which basically translates to, "release unusable broken shit so your users hate you forever".

    @Magus said in Microsoft fucks their developers in the ass... AGAIN:

    and if they didn't do it somewhat officially, everyone would ignore it until something more official came along.

    It'd be better off being ignored, then being paid attention to and fucking developers over.

    @Magus said in Microsoft fucks their developers in the ass... AGAIN:

    Right now, I don't care about it, because it doesn't do anything I'm interested in yet. Maybe it will someday.

    Ditto here, but that doesn't excuse this behavior from Microsoft, which for fucks' sake ought to know better.


  • Impossible Mission - B

    @cartman82 According to Scott Hanselman, fairly high up the thread, this isn't such a big deal, especially if you consider it as the work-in-progress that it is:

    I can see why this is initially a scary WTF moment. Let me explain because it’s less freaky than it seems.

    • You said .NET customers are going to need to interoperate. Totally agree.
      • We can share netstandard libraries between ASP.NET Core 2.0 and EVERYWHERE.
      • We can even reference many net461+ assemblies from ASP.NET Core 2.0 because of typeforwarding and netstandard20
    • You said WebApps may need to use:
      • AD – Totally, this is a gap IF you want to call LDAP directly. You can certainly auth against Windows Auth NOW. We plan to have specifically the DirectoryServices namespace for Core 2.0 around summer timeframe
      • Drawing – Totally, this is a gap. We plan to have this for Core 2.0 around summer timeframe. Until this, these netstandard options also exist ImageSharp, ImageResizer, Mono options, etc
      • COM Automation – This has never been possible under Core 2.0, but you can certainly PInvoke if you want to hurt yourself. You could also local WebAPI to a net461+ process if you really want to hurt yourself.
      • Sharing code with WFP Apps – YES. Totally possible with netstandard2.0.
    • This is a weird change to make.
      • Feels like it but…

    Think about it this way. WPF isn’t netstandard2.0, it knows it’s on net461+ and that’s OK. It’s optimized, but it can reference netstandard libs. ASP.NET Core 2.0 is optimize for Core 2.0 but it can reference shared libraries. Xamarin is the same.

    .NET Core is side by side and it’s moving fast. It’s WAY faster than .NET (Full) Framework can move which is good. By building ASP.NET Core 2.0 on top of .NET Core 2.0 (which, remember, is a SUPERSET of .NET Standard) that means stuff can be built faster than NetFx or even Netstandard.

    NetCore > Net Standard > NetFx when it comes to development speed and innovation.

    Point is, if you are doing new work, netstandard20. If you have older net461+ libraries, MOST of those can be referenced under ASP.NET Core 2.0.

    ASP.NET Core 1.1 which runs on .NET Framework will be fully supported for a year after we release 2.0. That workload is fully supported thru at least July of 2018.

    The remaining large gaps missing in .NET Core 2 are System.DirectoryServices and System.Drawing. We are working to have a Windows compat pack which would enable both of those on .NET Core on Windows this summer.

    What we need from you all is a clear list/understanding of WHY you think you need ASP.NET Core 2.0 to run on net461+. Be specific so we can close those gaps and let everyone be successful.



  • @masonwheeler So his reassurance is:

    AD – Totally, this is a gap IF you want to call LDAP directly. You can certainly auth against Windows Auth NOW. We plan to have specifically the DirectoryServices namespace for Core 2.0 around summer timeframe

    This is a problem, exactly like you said.

    Drawing – Totally, this is a gap. We plan to have this for Core 2.0 around summer timeframe. Until this, these netstandard options also exist ImageSharp, ImageResizer, Mono options, etc

    This is a problem, exactly like you said.

    COM Automation – This has never been possible under Core 2.0, but you can certainly PInvoke if you want to hurt yourself.

    You can solve this problem but the solution is the software equivalent to self-harm. (Srsly?)

    You could also local WebAPI to a net461+ process if you really want to hurt yourself.

    You can solve this problem but the solution is the software equivalent to self-harm.

    @masonwheeler said in Microsoft fucks their developers in the ass... AGAIN:

    .NET Core is side by side and it’s moving fast.

    Which is desirable because...?

    By building ASP.NET Core 2.0 on top of .NET Core 2.0 (which, remember, is a SUPERSET of .NET Standard) that means stuff can be built faster than NetFx or even Netstandard.

    If it's so fast, why haven't you finished Active Directory support, or System.Drawing support, or ...?

    What is the benefit of this speed? I'm not seeing it.

    BTW:

    (which, remember, is a SUPERSET of .NET Standard)

    Then how come it doesn't have System.Drawing? Either he's creatively interpreting the meaning of ".NET" or this is a blatant lie. (My ass-pull guess is he's using ".NET" here to just refer to the interpreter/CLI features.)

    Also note he doesn't comment at all on the problems about the crypto APIs.

    So reassuring!


  • Impossible Mission - B

    @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    Either he's creatively interpreting the meaning of ".NET" or this is a blatant lie.

    ...or you don't know what ".NET Standard" is. Hint: it's not another term for "the standard .NET desktop framework".



  • @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    @cartman82 This is what happens when you adopt open source, everything becomes shit.
    The bigger mystery is why people think open source development practices are a desirable thing to have in the first place. It's always been shit, this isn't new or exclusive to Microsoft open source.

    Almost every language and programming tool is open source these days. Are they all shit?

    Don't answer that, I know what you'll say.



  • @masonwheeler said in Microsoft fucks their developers in the ass... AGAIN:

    ...or you don't know what ".NET Standard" is. Hint: it's not another term for "the standard .NET desktop framework".

    Oh good, well I'm glad they're redefining language on top of all the other problems we have with Microsoft right now. Of course the word "standard" doesn't mean "standard"! Derp-de-derp-derp-derp!



  • @cartman82 said in Microsoft fucks their developers in the ass... AGAIN:

    Almost every language and programming tool is open source these days. Are they all shit?

    Yes.



  • @Jaloopa said in Microsoft fucks their developers in the ass... AGAIN:

    Yes. Unfortunately it was a hipster JS developer convinced .Net is dying, like @cartman82

    I just had to convince Scott Hanselman I was a black girl, the rest was easy. He was putty in my hands.



  • @cartman82 said in Microsoft fucks their developers in the ass... AGAIN:

    Almost every language and programming tool is open source these days.

    There's nothing wrong with that.

    @cartman82 said in Microsoft fucks their developers in the ass... AGAIN:

    Are they all shit?

    The open source development methodology is shit. Not the concept of "anybody can read the source code*. Things can be open source without adopting the open source development methodology, for example, the .NET framework itself was a great example of this for years.

    It's not my fault you use the same term "open source" to refer to about 47 different things. The development methodology is shit. People being able to read the source code is fine. Possibly even beneficial, I dunno.



  • @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    @cartman82 This is what happens when you adopt open source, everything becomes shit.

    The bigger mystery is why people think open source development practices are a desirable thing to have in the first place. It's always been shit, this isn't new or exclusive to Microsoft open source.

    Actually the problem is not open source, but trying to do cross-platform without limiting everything to HCF of what can be done on these platforms. So you now need to have some way to signal "you can't do something in this target because one of the supported platform(s) of that target don't support doing that".

    Now the problem is just that, like blood test that type O can donate to type AB person, but type AB cannot donate to type O person, projects targeting .NET framework should be able to use .NET standard or Core without problem. Now that's something that should be considered fixing for the package manager.



  • @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    The open source development methodology is shit

    Yes, it only produced the most used kernel in computing history. :shrug_tone3:



  • @TimeBandit said in Microsoft fucks their developers in the ass... AGAIN:

    Yes, it only produced the most used kernel in computing history.

    And therefore...?

    You forgot to form some kind of conclusion.

    You also seem to be making the tacit assumption that something good at making one kind of software product is good at making all kinds of software products.

    (If it's even true. We don't have an A/B test here. We have no idea how popular or successful the Linux kernel would have been in an alternative universe where it didn't use open source development methodologies. The sample size is one.)


  • sockdevs

    @blakeyrat the implication was that despite open source dev bring shit, it actually isn't because the most used kernel in the world was built that way. As though that one case demonstrates that open source is wonderful, which it isn't. The Linux kernel is, at best, an outlier.



  • @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    You also seem to be making the tacit assumption that something good at making one kind of software product is good at making all kinds of software products.

    You seem to be making the tacit assumption that something bad at making one kind of software product is bad at making all kinds of software products.

    We have no idea how popular or successful the Windows kernel would have been in an alternative universe where it did use open source development methodologies. The sample size is one.


  • Impossible Mission - B

    @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    Oh good, well I'm glad they're redefining language on top of all the other problems we have with Microsoft right now. Of course the word "standard" doesn't mean "standard"! Derp-de-derp-derp-derp!

    It does mean "standard:" the standard common set of APIs that each different .NET implementation needs to implement. The desktop framework is also a superset of .NET Standard, it's just that it's a different superset than .NET Core is. Those non-overlapping API parts are the things people are flagging as pain points.


  • Impossible Mission - B

    @TimeBandit said in Microsoft fucks their developers in the ass... AGAIN:

    The sample size is one.

    It's also produced every non-sucky web browser in the modern Web... :trolleybus:



  • @masonwheeler said in Microsoft fucks their developers in the ass... AGAIN:

    It's also produced every non-sucky web browser in the modern Web...

    Last time I checked, Opera is not open source, it's just built on top of open source :tropical_drink:


  • Impossible Mission - B

    @TimeBandit My point stands. :trollface:



  • @TimeBandit said in Microsoft fucks their developers in the ass... AGAIN:

    We have no idea how popular or successful the Windows kernel would have been in an alternative universe where it did use open source development methodologies. The sample size is one.

    True.

    @masonwheeler said in Microsoft fucks their developers in the ass... AGAIN:

    It does mean "standard:" the standard common set of APIs that each different .NET implementation needs to implement.

    They could call it "Common" which is a better word and also doesn't (as much) overlap with a well-known alternative usage of the word.

    In fact, maybe someone on that team is reading this, and now they'll change the name and confuse the bejeesus out of everybody yet again, that seems to be the modus operandi.


  • Impossible Mission - B

    @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    a well-known alternative usage of the word.

    I've never heard it called that. IME people generally say ".NET Framework" to distinguish the desktop version from ".NET Core."



  • @masonwheeler The point is, if you ask people what "standard" means they'd have a pretty good idea. If you ask people what "common" means, they'd probably ask for clarification-- common among which set of things?

    Because the second term means less out-of-context, it'd be a better name for a specific "brand" of .NET. People wouldn't assume they knew what it means when they read ".NET Common" in an article or whatever, they'd hit the Googles and look it up.

    I'm also pretty sure I've just put way more thought into naming than anybody on the .NET Core team has put into anything.


  • Winner of the 2016 Presidential Election

    I'd have thought the best name for the core set of functionality that other .net versions should implement would be something like .net core. But that's already used for something that's a superset of the core functionality.



  • @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    Oh, let me guess: they're following the moronic open source canard "release early, release often".

    Well duh. How else can they say they're "Agile". It's "the thing". Fix bugs? Fuck no, new features rule!!! If you don't break things, you're not making progress.

    (looks around ... ah there it is) :beers: :beers: :beers: (that's better)



  • @cartman82 Glad I have stuck with 4.6



  • @blakeyrat No the problem isn't opensource. Because there are plenty of things that work well. The problem is that .NET core team aren't listening to the people that want and/or use it and are listening to the JS open source community.

    Python learned their lesson with the 2 to 3 transition .NET team will learn it as well.

    I am honestly thinking of forking the whole .NET 1 core and maintaining it myself and basing a business on doing that if Microsoft can't fucking do it.



  • @blakeyrat said in Microsoft fucks their developers in the ass... AGAIN:

    I'm also pretty sure I've just put way more thought into naming than anybody on the .NET Core team has put into anything.

    Nah. I'll bet they had committees for this stuff. Dozens of meetings. Eventually everyone got exhausted and gave up, leaving us with the current mess.



  • @lucas1 said in Microsoft fucks their developers in the ass... AGAIN:

    I am honestly thinking of forking the whole .NET 1 core and maintaining it myself and basing a business on doing that if Microsoft can't fucking do it.



  • @lucas1 You'd "only" need to fork ASP.NET Core, not .NET Core. (The whole reason for this kerfluffle is that ASP.NET Core is dropping full framework and only supporting .NET Core going forward.)



  • @Unperverted-Vixen Really? I think I could probably do that.


Log in to reply
 

Looks like your connection to What the Daily WTF? was lost, please wait while we try to reconnect.