Reputation: 29056
I have recently come across a number of projects where developers have been leaving their ASPX pages relatively free of markup, in favor of placing all logic inside of ASP.NET user controls. While I understand and respect the use of user controls for enabling code reuse, entire pages built in an ASCX just feels incredibly wrong. I was hoping that this mindset would go away now that ASP.NET MVC is here, but I'm seeing the same pattern, even in new projects.
Am I being overly anal, or does this just smell?
Upvotes: 1
Views: 141
Reputation: 2357
Interesting point - using ASP.NET MVC, I sped up one of our pages by several seconds by removing a user control that was loaded inside a loop - loading the UC takes a noticeable amount of time, which is fine for a single instance, but a pain for multiple.
On MVC I've used a user control to hold a set of fields that I re-use between both the create and edit forms, rather than re-typing; I've also used them in WebForms as self-contained chunks of functionality (file upload controls, message posting, etc).
I agree that there is a smell for single-use controls - in fact I've been guilty of that in the past, and I'm just now going through and starting to remove them.
One useful usage: if you have <% ... %>
code blocks on your master page, you won't be able to programatically manipulate the controls. Shunting such code blocks into user controls removes this problem, which we've had to do in one case.
Upvotes: 1
Reputation: 24535
It only makes sense when the user control is actually re-used. These tend to be smaller component parts.
In our case its quite useful for creating bespoke applications that use a subset of usercontrols, this way pages that are not used can just be deleted and managed that way, keeping all the UserControls in one place to use at a later date.
Upvotes: 1