Monday, October 27, 2008

Sunday 26th - PreConference Day

After finally getting some sleep after 24 hours of travelling I was set for PDC day 0 - PreConference day.

The day offered 10 different tracks to choose from:
  • .NET Data Access from A to Z
  • Advanced Windows® Debugging
  • Agile Perspectives, Industry and Microsoft
  • Concurrent, Multi-core Programming on Windows and .NET
  • Creating Rich Internet Applications with Microsoft Silverlight™
  • Get More Out of Visual Studio Team System 2008
  • Performance by Design Using the Microsoft .NET Framework
  • Windows Mobile Development In-Depth
  • Working with WCF - Demonstration and Perspectives
  • WPF Code and Concepts

I attented the WCF talk by Juval Löwy from IDesign and Ron Jacobs from Microsoft.

Before Juval Löwy started off, Ron Jakobs asked the audience to raise their hands if they were there from overseas - it was big majority, about 75% I would say. Interesting! Maybe Microsoft will hold the PDC in Europe next time? Seriosely speaking, it's probably an effect of the rather long travels that have to be done by europeans and a pre-conference day improves the travel/conference time ratio.

The actual talk by Juval Löwy was good and he caught the audience interest immediately by stating ".net is dead! WCF is the new .net"

He continued by explaining what he thinks is bad with .net:

  • Technology and platform
  • Concurrency management
  • Transactions
  • Communications protocols
  • Communication patterns
  • Versioning.
  • Serialization
  • Security

He called this "the plumbing crisis". Instead of writing business logic, we spend 95% off our time solving the issues above which he called "plumbing". Customers don't care about plumbing. Managers don't care about plumbing. No one care about 95% off the stuff we do! When we realize this we want to start again fresh or as he fraized it

"Let's take the application outside and shoot it in the head!"

"Plumbing is evil" he said and told us to use "standard off the shelf plumbing" instead. The team at Microsoft that developed WCF held twice as many members as the team that developed the original .net CLR. They've spent an enourmous amount of tíme developing and testing WCF so that we don't need to do or test plumbing anymore.

Juval Löwy then continued showing us how the "plumbing" is all done by WCF. He compared the change from classic .net to WCF with the shift from C++ to C#. A class definition in C# looks almost the same as a definition in C++ but gives us so much more support than C++ and a Service definition using WCF looks the same as an usual C# class but again gives us so much more than .net without WCF.

After each example he highlighted the class definition


public class MyService: IMyService
{
public void MyMethod()
{
// Do some stuff
}
}

..and said "It looks like a class, it feels like a class, smells like a class, it walks like a class, it talks like a class, it quacks like a class - it must be class. NO it's a service".

Earlier technologies have tried to solve the plumbing issues as well but WCF is the first (in the world) to give

  • Interoperability
  • Productivity
  • Extensibility

If we now can go from 5% to 100% of time spent on business logic that gives us a productivity boost of 2000%!

Today you can't really make all your objects as services but it is the direction MS is going - by using inteception the framework can and will take care of more of the plumbing within the application as well.