Proper design is a major factor that contributes to the scalability and performance of any application.
* Efficient Resource Management
* Considerations for Crossings the Application Boundary
* Single Large Assemblies or Multiple Smaller Assemblies
* Code Refactoring by Logical Layers
* Threads are a Resource worth Sharing
My article on C# .NET Application Design Considerations can be read here