There are two separate, though related, goals:
- To be a good OO developer
and
- To be a good .NET Developer
Being excellent at the latter will require being at least good at the former, but both will require hard work. Don't get locked into the Microsoft mindset, or even a .NET one - you need to develop familiarity across a wide range of the field.
If you have the flexibility to do so, find yourself a job or a team where someone experienced is willing to do some mentoring.
Next, recognise that you'll need to do a lot of reading, both online and off. If your reading speed is average or lower (around 250 words per minute or less), then you should consider attending a training course on reading techniques. I've done a course with Write Group (New Zealand) and trebled my reading speed.
In terms of books, Object Thinking from the Microsoft Press would be a good starting point; I'd follow that with Programming .NET Components (Juval Lowy) and Smalltalk Best Practice patterns (Kent Beck), then The Pragmatic Programmer (Hunt and Thomas).
After that, trawl around (on StackOverflow or elsewhere) and find lists of recommended books and blogs. Keep reading - try to read a new book on a new topic at least every two months, if not monthly.