I am working on an ASP.NET website (not web application) that acts as a data-entry point for a database. We're targeting .NET 4.0. We have a very general page setup: There is a list of items in a gridview, and when the user wants to edit an existing item or add a new one, we use a ModalPopupExtender that holds controls for a data-entry screen. We have put the Extender and all related controls into a single User Control, so that we can easily reuse the these screens.
Everything runs great on my development machine. Fast and reliable.
On the server, one of the pages runs incredibly slow. This page has the User Control with the most child controls. 17 Textboxes, 18 DropDownLists, a TabContainer with 3 TabPanels, 7 Buttons/LinkButtons, and something like 10 Labels.
When you enter the page, it loads slowly. When you click to edit an item (which runs a function in the User Control to populate every control), it takes a good 4 seconds before you see the popup, whereas the other tools with a third of the controls load pretty much instantly.
I get that we're querying a lot of data, so I'm already investigating loading the form dynamically, maybe one quarter of the controls at a time. I think I can do that with [WebMethod]s but am not sure.
It still seems very unusual to me, though, that our server with all the more powerful resources available to it, lags compared to my development box.
Is there anything I should be changing in the website itself, or in IIS on the server, to try and mitigate these slow-downs?