Best Practices for ASP.NET Webforms Project structure

asp.net, webforms

Solution

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.

Problem

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?

Original source