|
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. |