Live data from Hacker News

WCF is Open Source

dotnetfoundation.org

131–140 of 149 posts

Re: WCF is Open Source

#131

Earlier quoted context omitted.

Enterprisey doesn't mean designed to work in an enterprise. It never has. It's a pejorative term, not a descriptive one. It means an over engineered solution to a simple problem that suffers heavily from YAGNI. It means catering to the 0.1% scenarios over the 99.9% scenarios. It means a complex generic solution where a simple one would have been better with custom code being used to handle the occasional complex scen…

> Enterprisey doesn't mean designed to work in an enterprise. It kind-of does, though "work in" might be more accurately stated "sell to".

enterprisey:enterprise :: militant:military

Re: WCF is Open Source

#132

I love C# and .NET, but WCF is a true source of frustration. It isn't horribly bad, but there is nothing good about it either. It's too complex, too messy, and too "Microsofty" for lack of a better word. Many layers of abstraction, hidden magic in XML files (which you can of course turn off, but then you need to know how to), and so on. Nevertheless, shares of coders blindly use WCF, "because Microsoft tells us to".…

When you are building WCF services and clients, in conjuction with a DI/IoC framework it can work REALLY well... I wrote an extension for MS-Unity that would generate service clients from a simple app settings string for the resource endpoint... that would automagically create a generic client on the fly in production.

For the server-side mounts, I had utility methods to mount several services into a single MVC web application, and it was just about seamless... for the project there was a base interfaces project that defined the services, so that the client and implementation were abstracted from eachother. It really was pretty slick in the end, and far from the default visual studio implementation.

I've also used WCF services as a message bus between a Flash/Flex simulation front end, and a connected backend service for that simulation instance. It wasn't bad.

That said, I much prefer to use node.js and simple JSON RPC and/or REST services these days over http or websockets (socket.io/sockjs), depending on what is pragmatic. It wasn't an option 8-9 years ago.

Re: WCF is Open Source

#133
What is a good alternative to WCF if I want Binary+TCP. I used WCF in the past and didn't have trouble with it, but there is seething hatred for it in this thread.

For the record, I eschewed XML configuration for code and instead of supporting a range of protocols/transports, I used binary over TCP.

Re: WCF is Open Source

#134
post #121

Earlier quoted context omitted.

I agree with the gist, but I'm curious as to why you would use WCF when there were simpler existing solutions (eg. Web Services)? If you simplified WCF to decoration via attributes, what do you gain over ASP.net Web Services?

as long as you don't need any of the features of WCF you shouldn't of course (though I think webservices become an obsolete technology). As soon as you run into edge-cases with authentication, compression, binary formats etc you'd have to use WCF. I think many use WCF "just in case" they need those features

Considering I've went from http to tcp services a number of times for improved performance, and you can simplify WCF clients a LOT via convention, it really isn't that bad...

Re: WCF is Open Source

#135
post #61

Microsoft fanboy here. But... this product is total shit. Even if you're tasked with some horror like talking to an overdesigned XML backend written in Java nine years ago that uses an alternate canonicalization for digitally-signed XML and requires a slightly-deviant form of SOAP authentication... well, it'll eventually work. The source won't help you. It's the least of your concerns. This is exactly the type of ove…

Actually, given the disconnect with how poorly Java (and PHP) services are for defining their child types ("Object" should never be a type exposed in the wsdl), I've found that creating a shim service in Node.js to connect to the Java/PHP webservices to funnel requests into something that can be better typed against works... I don't like doing it, but it works.

Re: WCF is Open Source

#136

Earlier quoted context omitted.

> design your messages first and then figure out what the URLs should look like. This is exactly what WCF let me do though and I wasn't limited to using HTTP like the others you listed. I was able to use a full duplex binary tcp channel instead.

I thought WCF was more hassle than it was worth. Then I got a massive performance boost from switching to the TCP transport with a quick configuration change ...and had fallback to HTTP after writing a few lines of code. Making the transport orthogonal to other concerns is a big win.

Rofl. Good luck with that. 99% of the people don't even know wtf's WSHttpBinding.

Re: WCF is Open Source

#138

Earlier quoted context omitted.

Enterprisey doesn't mean designed to work in an enterprise. It never has. It's a pejorative term, not a descriptive one. It means an over engineered solution to a simple problem that suffers heavily from YAGNI. It means catering to the 0.1% scenarios over the 99.9% scenarios. It means a complex generic solution where a simple one would have been better with custom code being used to handle the occasional complex scen…

> It means an over engineered solution to a simple problem This is exactly my point. SOA in practice is not a simple problem, and it's the reason WCF exists so of course it's going to be complex. The whole idea of SOA means that you're inherently stuck with the problem of communicating with different different systems that talk different languages, by trying to coerce them into communicating via a standard format, wh…

SOA in practice is not about the communication framework, it's about the delivery culture and discipline of using published interfaces of any sort in the first place. Amazon is perhaps the most successful example of a CEO-mandated SOA, they didn't really need something like WCF. Netflix used RESTful HTTP mostly for theirs.

Of course everything else you say about logging, changing, etc. is correct - operationalizing a SOA is hard, which is why we see so many frameworks focused on cloud microservices today.

Re: WCF is Open Source

#139
post #15

Earlier quoted context omitted.

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.

Re: WCF is Open Source

#140
My tall tale version of WCF:

WCF (Indigo) was the attribute-oriented distributed object framework that every COM developer dreamed of, co-designed by COM's rock star author, teacher and orator Don Box, based on the successor to DCOM, which was WS-star.

Back in the late 90s, there were basically three religions out there: CORBA, COM, and the nascent RESTafarians (REST wasn't coined until 2000, let's call these people "XML over HTTP" friends). Then Java came out with EJB and native CORBA, which everyone loved because it solved a problem with MTS/COM+ - it was simpler (believe it or not), and actually had a notion of lifecycle that was missing from most CORBA ORBs. Microsoft had to dodge this competitive threat, and IBM had to find a way to make MQ important again. XML was co-opted to be the new centre of everything, with the XML Infoset as the meta model for all data description AND message exchange. Protocols were to be a thing of the past, SOAP was protocol independent and WSDL described only message exchange patterns over TCP, UDP, HTTP, JMS or MQ. Never mind that 99% used HTTP and that all WSDL files were shared via HTTP GET. The church of WS* subsumed all other religions from around 2002 through 2007, and WCF was to be the crowning framework, destroying the ESB and the message broker the Microsoft Way.

Then around 2007 everyone woke up from their 15 year peyote trip and realized, after tireless arguments from the RESTafarians, particularly Mark Baker, that REST made sense and most of the specs in WS-* were reimplementations of what already existed (WS-Addressing EPRs replaced URIs; WS-SecureConverstion was multi-way SSL over XML exchanges), niche (WS-ReliableMessaging, WS-AtomicTransaction) or hopeless (WS-Policy and children). All work ceased on WS*, and people stopped worshipping communication protocols mostly. (except REST, which became a bit inquisitorial for a few years now that it won, given many years of being the laughing stock of billion dollar vendors)

REST on WCF was an afterthought that never really felt right. WCF was very general and smart, RESTful HTTP is very specific and even dumb. Different design for a different set of assumptions. That said I'm sure a lot can be learned from its approach to composing a generic layered system of communication capabilities.

Post reply on HN