Fuck Microsoft.

I am not an 'M$ Hater', this isn't anything about their business practices. I'm just a developer who wants to get shit done. Maybe the JVM ecosystem has spoiled me, but I'm on a C# based project right now. Writing the Application logic was fine, C# is a solid language, WCF is an absolute fucking nightmare of a framework; it just seems completely incoherent mash of config files and things you have to do programmatically, all of it catered to super complex use cases leaving a dozen hoops to jump through for even the simple ones. The object model just seems arbitrary to me. But none of that prepared me for the deployment. Just trying to get a Middleware to auto start with the web-server is a whole new level of pain, I've configured the App Pool, the Website, Used ACL to set the permissions, condfigured OWIN keys in several places and still the fucking thing won't start. Also can you believe that just auto starting something is a 'Windows feature' that has to be separately installed? Fuck those guys.

If by any chance someone is reading this who worked on WCF: get bent.

Bring back Kotlin/Ktor, I deployed a simple web-app in about an hour using gretty, the documentation had about 5 easy steps.

  • 8
    Yeah, that's because you're stuck on legacy. Dotnetcore is as enjoyable as spring boot, play, micronaut etc.

    SOAP is officially dead in the MS space though. If you're not doing grpc or rest you're gonna endure legacy shit like WCF.
  • 3
    @SortOfTested Yep, that's right, I'm stuck in Enterprise .NET Framework v4.7.2 hell, wondering how on earth this stuff saw the light of day. I'm prepared to believe the new stuff is better.
  • 3
    The funny part is that WCF is waaaaaay better now than it was a decade ago. 4 or 5 years ago they introduced reasonable defaults. Before that time, the xml config was literally 60 lines per endpoint, and bindings alone were 20-30 each.
  • 4
    The reason I think WCF become a mess is because they over engineer a solution. They want to pack a lot of feature into a framework which we end in the state we are in. I notice most of MS framework is over engineer and I try to find the simpler alternative.

    The only case I can make for MS framework is that they are well tested and there is a lot of community support for it.
  • 3
    Recently I had to write a scraper that pulled data from a static csv which was regularly updated, then map, filter, and store it on our end because they didn't offer an api endpoint.

    They did, however, allow you to browse and query the data via their website, so I spent some time investigating the possibility of writing a client that communicated with this aspect instead.

    That's my first experience with WCF. The only phrase I remember echoing in my head for two days straight was "what is *this*? What *is* this?"

    Since then I came to see scraping the csv as the cleanest option, so that's something.
  • 2
    One reason it was over engineered is that it was trying to solve every problem at once.

    And the soap or webservice standard at the time was not entirely complete.

    For example, java’s and microsoft’s implementations could not talk if you used arrays as soap had two optional implementations and no mandatory, snd the choose one each.

    And also, they did not know what would be important. But yes, they could probably have done a better job.

    Kotlin was created 5 years later and ktor 12 years later. They had ample time to learn all mistakes and look at real world examples on what to focus on.

    Also, the underlying standards have improved and ktor did not have to contend with backwards compatibility to existing users (only to older versions if protocols)

    With .net core, microsoft had the opportunity to do the same to their solution.
  • 2
    @SortOfTested .NET Core is amazing
Add Comment