Skip to content

For f**ks sake, pick a god damn signature already!!!

December 8, 2013

I was fortunate to speak to a lot of people about OWIN, both in the run up to and during the recent NDC London conference. And I tell you what, I’m at a complete loss as to what the hell has happened. OWIN is a great standard, with some great support from many sources and with some great minds putting in their time and effort. Despite this though, things are in dire straits.

One particular issue has cropped up which has got everyone faffing about. There has been a lot of ‘discussion’ on this recently both on Github and on Twitter. And quite frankly I’m rather frustrated by it all.

For those that don’t know, can’t be bothered to read the thread or simply can’t fathom it out from all the tangents and confusion, there’s currently no ‘standard’ way of writing middleware that will ensure that any given provider will be able to wire it into the pipeline.

Microsoft came up with a wire up scenario in the form of an IAppBuilder implementation when they implemented Katana which utilises a class with a constructor and an invoke function, but this is not part of the OWIN specification. There’s another wire up solution in the form of Mark Rendles “fix” that just needs a lamdba function, but this isn’t part of OWIN either. There just isn’t a standard at all.

So basically at the moment, it’s nigh on impossible to implement middleware that may choose routes through the pipeline, or otherwise wrap parts of the pipeline and work with it in a generic manner. And for all the discussion going on there’s no solution or agreement in sight. You just have to hope that the wire up scenario that’s available supports your chosen signature.

How the hell has this happened??


Forgive me but I thought this was a core tenant of OWIN – Interoperability – between middleware and owin compatible hosting environments and in general? Yet the end result of all this is that we’ve got a major interoperability problem… the exact opposite of the OWIN philosophy.

It’s not hard, it’s not rocket science and it doesn’t need protracted discussion. JUST PICK A F***ING SIGNATURE ALREADY.

Func<AppFunc, AppFunc> – There, I did it.


From → Owin

  1. I’m going to make Fix work with Func of AppFunc, AppFunc in the next version.

    I share your frustration, but I am optimistic that this will be resolved soon.

  2. I, too, share your frustration. I’ve worked under the assumption that Func was the standard signature since that was where it left off when my mailing list subscription apparently changed to “never send.” That, and I never took the time to evaluate the actual signatures in the middleware being written. I take a lot of responsibility since I actually had access to provide that feedback and just didn’t notice. Trying to rectify that now, but it’s painful, and I’m sorry about that.

    • roysvork permalink

      No need to apologise, it seems like we are finally making progress with the governance model and voices like this have been heard. I’m looking forward to seeing how it turns out and continuing to help where I can.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: