Best Practices for ASP.NET Webforms Project structure

asp.netwebforms

When using ASP.NET webforms, I see two main ways to structure a project:

1) Have a lot of .aspx files (including code behind files) and maybe some .ascx files (with code behind files.

2) Rely on a lot of .cs files (class files), and have the classes construct everything with Controls.Add(), etc.

The first method above results in a lot of aspx and ascx files and very few .cs files. The second method above results in a lot of .cs files, but very fewer aspx and ascx files.

Is there a "best practices" way to structure project? Does Microsoft recommend one of these techniques? Is there any information on which of the two styles is used more commonly?

Best Answer

I would stick with the first approach. Some controls are extremely tedious (or difficult) to be created progamatically.

Take the GridView or ListView for example, create an *.aspx page with a GridView which has custom templates with template columns. Then run your application, find the *.dll in the ASP.NET temp directory, decompile the class and look how messy and complicated is the code. It would be very difficult to maintain it over time and/or make changes.

On the other hand, having some declarative code isn't bad as long as you try to maintain the balance.

Related Topic