I think you need to first understand that being a "good" programmer who understands OOP and best practices would takes time and experience. There are no magic combination of books, blogs, or training to replicate time in the trenches.
My advice, based on my own experience, is to not worry too much that you aren't following best practices and just write code. If you are new to OOP or .NET you are going to do silly things. You are going to do the opposite of "best practices" until you've made enough mistakes to learn from them.
The theory of specificity training states that you should specifically do that which you want to become better at. This means to write a lot of code to get better at writing code.
Now, once you are writing a lot of code without fear, you will need to supplement with outside knowledge. In order of importance:
Work directly with others who have more experience than you. This is the fastest way to get up to speed.
Read other OOP .NET code. Open
source is great for this! Study it,
extend it, add features to an OSS
project even if you never commit.
Read books. I specifically mean
books... not blogs. Books have more
room to expand on a topic and are
best for people who really are
starting from scratch on a given
topic. I recommend Code
Complete as a great first book.
Read the 'nets. This includes
blogs, stackoverflow, etc.
Good luck!