The project that I am currently working on has started to use C# 3 features so I thought that I would see what they were about.
Here is an explanation of automatic properties in C# 3.0.
Basically if you declare a property as:
public int FooBar {get; set;}
then the compiler will create the private storage for you.
If you do anything different then it will leave it to you.
Here is an explanation of extension methods.