Must Visit :

C# Programming Guide

Section 1: Language

C# Keywords  -- You might find some surprises here.

Properties -- Getter / Setter in one place

Delegates -- functions as objects !

Indexers -- Classes can implement object[index] !

Reflection  -- Type is a type. Object implements GetType()

Generics and Reflection -- Yes.

Events -- += EventHandler

Lambda Expressions -- Very useful to keep code concise, readable

Use ‘var’ for implicit typing for simpler code

Variable scope management in code blocks. -- using(var a = constructor){ code block }

How to: Implement and Call a Custom Extension Method 

String.Intern Method :

101 LINQ Samples

Dynamic Language Runtime:

Walkthrough: Creating and Using Dynamic Objects

DynamicObject Class

ExpandoObject Class

Section 2: Windows Presentation Framework

WPF Architecture

Andy Van Dam (Brown) WPF slides: 2D, 3D, Viewing

Dependency Properties Overview - Understanding how the framework deals with property changes, change listeners and custom properties.



Markup Extensions

Type Converters

Custom Prefixes and Custom Types in XAML

Attached Properties and Attached Events

XAML Namespaces and Namespace Mapping for WPF XAML


Base Elements Overview

WPF Content Model



Routed Events Overview

Receiving Input events when the element is transparent:

Normally, the visual hit test ignores the transparent portions of a control. If you want those regions to also receive events, use Fill=”Transparent” in the XAML.


WPF Graphic Rendering Overview

BitmapCache - Creates and caches a bitmap representation of a UIElement.

BitmapCacheBrush - Paints an area with cached content.

Dynamic Layout and Transitions for Microsoft Silverlight 4 with Microsoft Expression Blend

Model-View-ViewModel Design Pattern (MVVM)

Implementing the MVVM Pattern

Advanced MVVM Scenarios

WPF Apps with the MVVM Design Pattern

Property change notification for multithreaded applications

Plugins to be installed with Visual Studio


Ctrl+Shift+R (Quick Open) for Visual studio :

Keyboard Shortcuts: (I don’t recommend rebinding shortcuts, re-learning seems easier)

F12 to navigate to definition

Ctrl - (minus) to go navigate to previous document.

Vertical Text selection ! Alt+Shift+Arrow keys

Visual studio also has the ability to define macros (written in VB *sigh)

WPF Snippets :

Very easy to generate boilerplate code around dependency properties and the likes.

Blend + Visual Studio:

I usually try to keep only the xaml open in blend, and the code behind in visual studio. Build on both, run on visual studio.

Use blend if you can use XAML outputs, for animations, storyboards and simple event behaviours. Especially useful for testing transformations and effects.