I reader recently forwarded me an interesting case study that covers a very common scenario: Porting a .NET Framework 2.0 based application to .NET Framework 3.5.
The paper does a nice job of providing resources to get started with, how to learn what is new in .NET 3.5, etc. As well as details on why this project made decisions it did around using WPF, WCF, etc.
I don't claim to agree with all the assertions made here, but all in all it is a very balanced, pragmatic view of what some of the common choices you will have.
The project uses client and server components and the paper talks about not only the design process but how to build AND test these. They talk about ViewModel in WPF, IoC, NUnit and VSTS, etc