Recently, I've been finding it quite tedious having to repeat certain code patterns that would qualify as boiler plate code, the most annoying of which is defining events. For events I have to make an EventArgs based object, an event declaration and an OnEvent type protected overridable method to raise the event. I tend to write objects with a lot of events and this can seriously become annoying.

I've found CodeRush Express can reduce the writing of certain types of boiler plate code like defining properties. You can define a field and have CodeRush create a public property that's backed by that field. I'm looking for suggestions, software, techniques, just anything that can help reduce my need to actually write boiler plate code.