각 페이지에서 사용자 컨트롤을 광범위하게 사용하는 asp.net 웹 응용 프로그램을 조사하고 있습니다. 대부분의 페이지에는 약 10-20 개의 사용자 컨트롤이 있습니다. 사용자 정의 컨트롤은 내용이 사용자 정의 컨트롤에있는 탭 컨트롤의 각 탭과 같이 세밀한 세분화가 있지만 비즈니스 개체의 시각적 표현 인 것처럼 보입니다 (이해할 수있는 경우). 프로젝트 자체에는 200 개가 넘는 사용자 컨트롤 (ascx 파일)이 있습니다.사용자 컨트롤의 ASP.Net 과도한 사용
응용 프로그램의 성능이 매우 낮습니다 (그리고 제가 조사하고있는 이유). 각 이벤트 (예 : 클릭 또는 드롭 다운 선택 등)는 페이지를로드하는 데 약 5 초 (Visual Studio에서 10 초)가 필요합니다. 이 애플리케이션은 Ajax를 사용하지 않는다.
aspx 페이지 자체가 코드 숨김에 코드를 가지고 있지 않으므로 추적은 힘들다. 사용자 컨트롤이이 모든 것을 돌봐주기 때문에 단일 페이지를 추적하려면 해당 페이지에있는 모든 사용자 컨트롤에 trace 문이 필요하다.
사실 나는 각 사용자 컨트롤을 비즈니스 코드로 돌리고 재사용 할 수 있다는 것이 현명한 아이디어라고 생각하지만 성능이 저하 될 사용자 컨트롤을 과도하게 사용하고 있다고 생각합니까? 이것은 강력한 WinForms 배경을 가진 사람이 작성한 asp.net 응용 프로그램의 구조처럼 보입니까?
편집
내가 사용자 컨트롤의 사용에 의문을 제기 (또는 금액) 단순히 모든 일을 성취 한 페이지에 너무 많은 필요 여부 (각 사용자 컨트롤이 연결 아니에요 추가해야한다고 생각 예를 들어, 데이터베이스)는 일반적으로 성능 문제를 일으킬 것입니다 ... 예를 들어, 한 사용자가 포스트 백을 수행하여 다른 모든 작업을 처리하는 경우 일부는 표시되고 일부는 그렇지 않습니다 ... @ David McEwing 그는 40 가지의 최적화 된 사용자 컨트롤을 가지고 있었지만, 개발자가 WinForms를 기반으로하거나 "asp.net에 익숙하지 않은"경우, 어떻게 각각 최적화되었는지 확인하려고합니다 ...
EDIT2
SQL 문 추적을 얻은 후 다른 사용자 컨트롤이 일반적으로 저장되지 않은 데이터를 필요로하므로 각 이벤트에 대해 페이지 호출 당 5-6 번 데이터가 실행됩니다. (위에서 언급 한) 탭의 각 사용자 정의 컨트롤은 데이터베이스에서 객체를 채우는 데 동일한 호출을합니다 ... 나는 분명히 문제가되는 사용자 컨트롤 (내가 질문을 삭제해야 하는가?)을 비난하기 위해 여기에 있지 않습니다. 사용자 컨트롤이 아니지만이 특별한 경우에이를 사용하면 과도하다고 믿습니다!
성능은 그 당시에는 관련이 없습니다. 실제로 페이지의 모든 컨트롤을 사용하는 것과 같습니다. 진짜 문제는 그 페이지가 얼마나 많은 일을하는지입니다. 그것은 유일한 성능 고려 사항입니다. UserControl에있을 수도 있고 그렇지 않을 수도 있습니다. –
사용자 정의 컨트롤에 대해 할 수있는 일이 없으면 일부를 사용자 지정 웹 컨트롤로 변환 할 수 있습니까? 사전 컴파일이 도움이 될지 확실하지는 않지만 단지 생각 만합니다. – johnofcross