2008-11-12 1 views
11

우리 팀은 처음에는 ASP.NET 1.0에서 시작하여 여러 번 새로운 .NET 버전으로 이식 된 다소 큰 ASP.NET 웹 프로젝트를 개발 중입니다.ASP.NET ascx와 aspx - 사용자 컨트롤을 재사용합니까?

우리는 광범위하게 사용자 컨트롤 (ascx)을 사용했습니다. 그러나 회상에서 나는 그것이 좋은 결정이었다고 생각하지 않는다. 아주 작은 비율의 컨트롤이 다른 페이지를 통해 재사용 (재개 가능)됩니다. 애플리케이션에 이러한 복잡성 계층이 추가되어 복잡한 작업을 수행하는 경우가 있습니다.

재사용 가능한 작고 특수한 컨트롤의 경우 WebControl 클래스에서 상속 된 서버 컨트롤을 사용합니다.이 컨트롤은 훌륭하게 작동합니다.

내 질문 : 새 프로젝트를 시작하는 것은 괜찮습니까 ascx 없애 모든 페이지 자체에서 구현 (aspx)? 사용자 컨트롤을 많이 동적으로로드하는 경우는 예외입니까? 당신의 경험은 무엇이며 조언은 무엇입니까?

답변

16

우리는 ASCX 컨트롤을 광범위하게 사용하는 프로젝트와 그렇지 않은 프로젝트가 있습니다. 내 경험상 케이스별로 결정해야합니다. ASCX 컨트롤을 사용

내 좋아하는 두 가지 이유는 다음과 같습니다 당신은 많은 다른 페이지 (또는 같은 페이지에 여러 번)에 나타납니다 UI 기능의 일부를 구현하고

  1. .
  2. 일부 복잡한 기능을 캡슐화하여 페이지의 나머지 부분과 구분하여 코드를 읽기 쉽고 유지 관리하기 쉽게 만들고 싶습니다.

ASCX 컨트롤은 유용 할 수 있지만 실제로 좋은 이유가있을 때만 사용해야합니다. 그렇지 않으면 코드베이스에 불필요한 복잡성이 추가 될 수 있습니다.

+1

실제로 자주/캡슐화되는 일부 UI를 구현하는 경우 대신 * 마스터 페이지 *를 사용하면 끝났습니까? –

2

나는 여전히 usercontrols를 사용합니다. 주로 디자인의 내용을이 방식으로 쉽게 분리 할 수 ​​있기 때문에 응용 프로그램의 디자인을 변경할 때 궁극적으로 많은 도움이됩니다.

장소의 코드를 잘라내거나 붙여 넣어야하는 경우보다 페이지에서 컨트롤을 이동하는 것이 약간 쉬워집니다.

2

완전히 설계된 웹 응용 프로그램 유형으로 변경됩니다. 직장에서 우리 응용 프로그램 중 하나는 매우 구성 가능하므로 한 페이지 (default.aspx)에서 작동하고 로그인 한 사용자에 대해 구성된 방법에 따라 컨트롤을로드합니다.

그러나 SEO를 통해 액세스해야하는 웹 사이트를 작성하고 탐색하기 쉬운 경우 aspx 페이지에서 각보기를 구현하는 것이 좋습니다. VS에서 시작 페이지로 설정하여 직접 액세스 할 수 있으므로 개발 중에 각 페이지에 쉽게 액세스 할 수 있습니다 (보안 권한/논리가 없다는 가정하에).

또 다른 옵션은 ASP.net MVC를 사용하는 것입니다. 재사용 가능한 사용자 컨트롤을 사용하여 상호 의존적 인 뷰를 믹스에 포함 :-)

6

올바르게 사용하면 사용자 컨트롤이 유지 관리 및 재사용 성을 향상시키고 서버 컨트롤보다 훨씬 빨리 만들 수 있습니다.

이전 프로젝트에서는 사용자 컨트롤이 거의 재사용되지 않는다고 언급했습니다.이것은 사용자 컨트롤 자체의 고유 한 결함보다 빈약 한 계획과 관련이있는 것으로 보입니다.

엄밀히 말하면 디자인을보고 동일한 컨트롤 집합을 반복해서 사용하는지 확인하는 것이 좋습니다.이 경우 사용자 컨트롤을 사용하는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. 당신은 그것을 열악한 계획이라고 부를 수는 있지만, 특정 웹 애플리케이션에서 사용자 컨트롤은 매우 전문화되어있어 대부분의 경우 재사용 할 필요가 없다는 것이 사실입니다. 어쩌면 사용자 컨트롤이 훨씬 더 의미있는 다른 상황 (예 : 포털)이있을 수 있습니다. – splattne