WCF

WCF is pretty neat

I haven’t worked with .NET ex­ten­sively since a lit­tle bit after 2.0 was re­leased, so when I took on a new job de­vel­op­ing with it, I had some catch­ing up to do. WCF was the easy part. In fact, I’m re­ally en­joy­ing using it. I can tell they put a lot of thought into mak­ing it scal­able.

For those that don’t know, WCF is Mi­crosoft’s new web ser­vices frame­work, meant to re­place the old Re­mot­ing stuff in .NET 2.0. It lets you worry about writ­ing code—classes and meth­ods etc., and it man­ages trans­form­ing it into SOAP and WSDL in the back­ground.

The coolest thing about WCF is the sup­port for com­pletely async de­sign. You start a data­base query, put the method call into the back­ground, and re­sume it when the data­base query is done. This al­lows the server to run thou­sands of clients in only a cou­ple threads, im­prov­ing cache and mem­ory usage greatly.

One funny thing I learned from this is that ASP.​NET has full async sup­port too, it just doesn’t get a lot of ad­ver­tis­ing for some rea­son. The one thing that an­noys me about all mod­ern web de­vel­op­ment frame­works is the lack of async sup­port mak­ing you pay for 20 servers when you should only need one, and here it was under my nose all the time. Imag­ine that!