Over the past 8 months or so I have been working pretty steady with ASP.NET 2.0 and Visual Studio 2005. I thought I would drop an entry with 10 things you should either use or be aware of that I think really help my ASP.NET programming efficiency.
10) Improved .NET framework. So many more classes and methods. String.IsNullOrEmpty is worth it alone.
9) CacheManager - Part of the Patterns & Practices tools. Great way to manage the temporary storage commonly used sets of data so you do not have to round trip the database.
8) Membership Provider - While I am not huge on the provider model at this point I like the core of this architecture being handled for me.
7) Third Party Control Libraries - Be careful with this one. Choosing the wrong control suite can be deadly and costly. There are many sexy control suites, but I have found that many of them have a high entry price if you are a small shop (like me) and come with a huge learning curve. I buoght Infragistics last summer thinking it would save me time and make my sites look a lot better, took more time to accomplish the same thing, extremely poor documentation helped with that. the controls are not all they are cracked up to be. I have reduced my usage to just the data Input controls like the Masked Edit box. I even rolled my own chart code because their chart control was too complicated and it was faster to write my won code.
I like Free controls and controls that are offered by smaller shops, many of which you can find on www.asp.net.
6) Master Pages - If you are still stuck on ASP.NET 1.1 I have to tell you jumping for this is worth it, go ahead and try it. Sure beats skins in DotNetNuke!
5) Data Access Blocks - Never, I mean never waste time rewriting the same code structure to interact with your data.
4) Base Libraries - create a growing core class library containing classes and methods you use over and over. I like to make all my projects reference the library project. This way the Class Library is part of every solution and it is easy to add classes and methods as I refine them. The changes can be made on the current project and be rolled into all my other projects as they are updated too. I have several hundred potential projects I could work on in a given week (that is a little exaggerated but technically true) so this is key to my operation.
3) Prototyping - What I like to do is work out the kinks of a methodology outside of the main project, outside of any source control. Just take a small project and make it do one thing, like a specialized authentication routine and just hammer it. Get it working right, then copy the code to the main project. I had to learn to do this with DotNetNuke because I found debugging those projects was so time consuming inside of DotNetNuke that it was just killing my deadlines.
2) Dual Core - Two processors are better than one. I can not emphasize how having fast hardware rocks! Dual Core Processors bring the world of dual processor computers to a much lower price point for everyone.
1) Code Generation - Tools like CodeSmith are invaluable. They server two main purposes to me; create code a lightning speed and create standardized code. Once I have defined my table structure for a database I can create the CRUD stored procedures, business logic layer, core admin pages and core user interface pages in about 5 minutes. This saves me hours if not days on many projects.