26 Oct 2008

PDC 2008 has started

PDC 2008 has started!

I will try to update this blog with my impressions and perceived highlights from this conference.

The conference kicks off with pre-conference sessions, and I am attending the topic "Working with WCF -Demonstration and perspectives", by Joval Löwy and Ron Jacobs.

Joval told a funny story about branding names for .Net, esp. the VB.NET and ASP.NET brand names. Microsoft has described several different technologies as "foundation for developing web services" - this is also the case with Microsoft promotion of WCF.. but it is not! WCF is much more a generic platform change with a new programming model..

WCF does for .Net that .Net did for Windows. It is a new runtime that abstracts another level (on top of the CLR) and it is in fact a new .Net (or new C#) since it abstracts the plumping required for "old" C#/.Net.

Interesting point on how WCF always translates all errors into a standard FaultException. This is a good error handling pattern, since it decouples the client from the service implementation. A usual design flaw is to transfer specific exceptions which forces the client to know about (and interpret) specific service exceptions.

Benefits of having WCF on both sides during debugging/error tracing/logging. A provided MS log-viewer client can merge the client logfile and the service logfile to give an integrated view of the whole end-to-end call stack.

The same with reliability. Can be configured in WCF. I have to ask a question on whether this features is WS* compliant (i.e. inter operable) or .Net proprietary.

WCF offers versioning tolerance for DataContracts. The client can ignore members (i.e. possible to add members to a data contract without changing the client). Seems like this also applies if you have a non WCF service (client feature)


A repeating message from Joval is that WCF is not C#. It behaves very differently than native C#, since it adds a lot of behavior, features and abstractions that is not possible/available in C#. But everything looks like standard C# classes, since WCF handles all the plumbing behind the scenes. (controllable through default or specific configuration)


Tool tips:
"Reliability and Performance Monitor" - perfmon.exe
"

No comments: