First: Know your basic tools well
Know the ASP.Net event model. You'll get in a mess if you don't.
Understand the mechanics of OO. A surprising number of relatively experienced .Net programmers still seem to think it is 1972.
Start reading Code Complete.
Second: Learn to separate concerns
The most common design-crime I see in ASP.Net development is to stuff all the business logic in the code-behind. I know that all the Microsoft examples do it that way. I know it is justified on small apps. And I know I sometimes do it that way. But really, it is bad design, and is my pet hate for the week.
Third: Learn everything else about design
Most of the poor quality .Net code that I see is the result of poor OO design. Therefore, I'd recommend a good understanding of:
- SOLID principles
- GoF Design Patterns
- MVC (for ASP.Net MVC)
Fourth: Get to know more tools
Once you've done that lot, you're well on your way to awesome.
[Edit: Fixed-up the sequence for learning this sutff. Apparenty I couldn't count yesterday...]