Sadly I missed Juval Lowy’s WCF lecture last Thursday, but I read Udi Dahan’s blog post regarding the lecture.
It seems Juval is preaching the use of WCF for every inter-class operation, even on the same computer, as WCF is better designed than plain code, and Udi objects to the idea due to possible performance consequences.
One of the main reasons for Udi’s objection was a demo Juval ran in which the communication output was 200 calls per second - not very high.
But as someone else already commented, this was done using security, encryption, exception handling and other “services” which are not necessarily present in day-to-day inner-process method calls.
This also lead me to search for again benchmarks for WCF, and it turns out you can reach more than 5000 calls per second with it.
So use WCF for every inter-class operation? I think not, since it basically break your entire code to services, and SOA requires careful planning.
On the other hand, I would use WCF for every cross-process operation, both local and remote.