The book I'm reading to prepare myself is Microsoft.NET Framework 2.0 Application Development Foundation
Just finished the first chapter about Framework Fundamentals. Topics dealt with in this chapter are:
Developing applications that use system types and collections
Manage data in a .NET Framework application by using the .NET Framework 2.0 system types.
Implement .NET Framework interfaces to cause components to comply with standard contracts.
Control interactions between .NET Framework application components by using events and delegates.
It's quite basic, but interesting, at the start, explaining the difference between value types and reference types, combined with some information on Nullable Types and the StringBuilder class.
There are also some examples about boxing and unboxing, something which you had to think about a lot more in .NET 1.0/1.1 when we didn't have generics yet.
Also a more obscure feature of the framework, the TypeForwardedToAttribute Class, used to redesign your libraries without recompiling your consumers of the library.
A nice cosmetic feature is implementing the IFormattable Interface to allow consumers of your class to specify various display methods when calling ToString().
Another thing I got a better understanding about thanks to this chapter is operator overloading, for example to properly implement the IEquatable Interface, you would probably overload the == and != operators as well.
I finally managed to document a version of IDisposable which I like and understand.
To finish up, I'll never have any problems remembering how to wire up an event anymore with the EventHandler delegates.
Time for the next chapter now :)