2009-11-11 4 views
1

저는 최근에 개발자들이 ASPX 페이지를 상대적으로 마크 업하지 않고 ASP.NET 사용자 컨트롤 안에 모든 로직을 배치하려는 많은 프로젝트를 보았습니다. 코드 재사용을위한 사용자 컨트롤의 사용을 이해하고 존중하지만, ASCX에 내장 된 전체 페이지는 엄청난 잘못을 느낍니다. 나는이 사고 방식이 ASP.NET MVC가 왔으므로 없어지기를 바랬지 만 새로운 프로젝트에서도 같은 패턴을 보게됩니다.모든 것을위한 ASP.NET 사용자 정의 컨트롤은 무엇입니까?

지나치게 항문이 되었습니까, 아니면 그냥 냄새가 나나요?

답변

1

사용자 정의 컨트롤을 실제로 다시 사용할 때만 의미가 있습니다. 이들은 더 작은 구성 요소 부품이되는 경향이 있습니다.

우리의 경우 usercontrols의 하위 집합을 사용하는 맞춤 응용 프로그램을 만드는 데 매우 유용합니다.이 방법으로 사용되지 않는 페이지는 삭제되고 관리 될 수 있습니다. 모든 UserControls를 나중에 한 곳에서 사용하도록 유지합니다. .

1

흥미로운 점 - ASP.NET MVC를 사용하여 루프 내에서로드 된 사용자 정의 컨트롤을 제거하여 몇 초 만에 페이지를 빠르게 만들었습니다. UC를로드하는 데 상당한 시간이 걸렸습니다. 단일 인스턴스이지만 여러 개의 고통.

MVC에서는 다시 입력하는 대신 작성 및 편집 양식간에 재사용하는 필드 집합을 유지하기 위해 사용자 정의 컨트롤을 사용했습니다. 필자는 WebForms에서 자체 포함 된 기능 덩어리 (파일 업로드 컨트롤, 메시지 게시 등)로도 사용했습니다.

나는 일회용 컨트롤에 대한 냄새가 있음에 동의합니다. 사실 나는 과거에 그런 죄책감을 갖고 있으며, 이제 막 제거하고 제거하기 시작했습니다.

한 유용한 사용법 : 마스터 페이지에 <% ... %> 코드 블록이있는 경우 프로그래밍 방식으로 컨트롤을 조작 할 수 없습니다. 이러한 코드 블록을 사용자 정의 컨트롤로 전환하면이 문제가 해결됩니다.이 문제는 한 가지 경우에 수행해야합니다.

관련 문제