Hacker News new | ask | show | jobs
by WDCDev 4050 days ago
WCF was built for the WS-* world, and as such is over-loaded with complexity that is covered up by way way too much abstraction.

If you don't need WS-*, use Web API services self hosted with Katana if you need to exchange data between applications/processes instead.

2 comments

Oh, don't get me started on this whole Katana/OWIN disaster. Just look at all these dependencies that are required to self-host ASP.NET application. How they managed to complicate things so much -- I don't know.

NancyFX all the way.

One point to note here: OWIN and Katana are two separate components. OWIN is the community-driven underlying abstraction layer which doesn't specify any dependencies; Katana is a Microsoft-driven library of statically typed wrappers around it that completely abstracts it out altogether and leaves you with a bunch of tutorials and blog posts that don't look anything even remotely like the OWIN spec. It's all very confusing.

I wrote a blog post about it a while ago trying to untangle the difference between the two in some detail: http://jamesmckay.net/2014/08/sorting-out-the-confusion-that...

Yeah I am not so sure I would serve content using Katana. I am using it to horizontally scale out data services used by clients around the world, hosted in Azure. It's simple to deploy and manage. I also don't have to mess with IIS, which is always a plus given how few admin resources we have to maintain our environment.
Roll your own using Katana? Yeah that'll work but consider just using http://nancyfx.org/ or if you need something more structured https://servicestack.net/ | http://www.asp.net/web-api
Katana can host your services for you outside of IIS. You can use Web API and Nancy with it. I am sure someone has figured out how to setup servicestack as well.
Yep! http://www.asp.net/aspnet/overview/owin-and-katana

Katana/OWIN provides a pipeline for hosting .NET web[sites|services] without IIS. This is another direction .NET is heading, no more IIS shackling (if you so choose)

Using the OWIN HttpListener rather than relying on IIS has been a godsend for many of the applications that we develop. IIS simply has too many knobs that users can twiddle and break our applications. Running a webserver out of a Windows service, with everything sandboxed and tuned to the needs of our application is much simpler.

Plus, no need to rely on Powershell scripts, or god forbid, the user, to get the correct set of IIS features installed has made deployment of our apps infinitely simpler.

Yep, agreed. If you are self-hosting as windows services make sure you check out http://topshelf-project.com/