programing

UserControl, WebControl, RenderedControl 및 CompositeControl의 차이점은 무엇입니까?

i4 2023. 8. 24. 21:48
반응형

UserControl, WebControl, RenderedControl 및 CompositeControl의 차이점은 무엇입니까?

차이점이 무엇인지, 공식적인 용어인지는 ASP에서 사용되지 않는 용어입니다.NET 3.5?

사용자 제어:.ascx로 끝나는 사용자 정의 컨트롤로, 다른 웹 컨트롤로 구성됩니다.그것은 거의 aspx 웹페이지의 작은 버전과 같습니다.이것은 UI(ascx)와 뒤에 있는 코드로 구성됩니다.DLL을 참조하여 다른 프로젝트에서 재사용할 수 없습니다.

컨트롤:웹 페이지 또는 사용자 컨트롤에 호스트되는 컨트롤입니다.하나 이상의 클래스로 구성되며, 병렬로 작동하며 aspx 페이지 또는 UserControl에서 호스팅됩니다.WebControls에는 UI "페이지"가 없으므로 내용을 직접 렌더링해야 합니다.DLL을 참조하여 다른 응용 프로그램에서 재사용할 수 있습니다.

렌더링된 컨트롤:존재하지 않습니다.WebControl과 동의어일 수 있습니다.컨트롤이 aspx 페이지로 렌더링되지 않고 HttpResponse에 직접 작성되었음을 나타낼 수 있습니다.

복합 컨트롤:사용자 컨트롤과 웹 컨트롤 사이에 있습니다.다른 컨트롤로 구성되어 있기 때문에 사용자 컨트롤과 같은 코드를 사용합니다.컨트롤 합성을 위한 그래픽 UI는 없으며 복합 컨트롤의 UI 편집 지원은 컨트롤 설계자가 코딩해야 합니다.합성은 뒤에 있는 코드에서 수행됩니다.복합 컨트롤은 웹 컨트롤과 같은 다른 프로젝트에서 재사용할 수 있습니다.

서버 컨트롤을 잊어버렸습니다.

제가 알기로는 다음과 같습니다.

  • 컨트롤에는 두 가지 종류만 있습니다.사용자 제어 및 서버 제어
  • 복합 컨트롤은 일종의 "고급" 사용자 컨트롤입니다.Scott Guthries 블로그에서 더 많은 정보를 찾으십시오.
  • 모두 시스템에서 파생되었기 때문에 웹 컨트롤입니다.웹.UI.제어)
  • 모두 어떤 방식으로든 렌더링되므로 렌더링된 컨트롤로 보고 싶습니다.

MSDN에서:

사용자 제어

ASP.NET: ASP와 동일한 구문을 사용하여 선언적으로 작성된 서버 컨트롤입니다.NET 페이지이며 확장명이 .ascx인 텍스트 파일로 저장됩니다.사용자 제어를 통해 페이지 기능을 분할하고 재사용할 수 있습니다.페이지 프레임워크는 처음 요청 시 사용자 컨트롤을 시스템에서 파생된 클래스로 구문 분석합니다.웹.UI.UserControl은 클래스를 어셈블리로 컴파일하고 이후 요청 시 다시 사용합니다.사용자 컨트롤은 페이지 유형의 작성 및 사전 컴파일 없이 배포되므로 쉽게 개발할 수 있습니다.

서버 제어

사용자 인터페이스 및 관련 기능을 캡슐화하는 서버 측 구성요소입니다.ASP.NET 서버 제어는 시스템에서 직접 또는 간접적으로 파생됩니다.웹.UI.제어 클래스.ASP의 상위 집합입니다.NET 서버 컨트롤에는 웹 서버 컨트롤, HTML 서버 컨트롤 및 ASP가 포함됩니다.NET 모바일 컨트롤.ASP의 페이지 구문입니다.NET 서버 컨트롤은 컨트롤의 태그에 runat="server" 속성을 포함합니다.참고 항목: HTML 서버 제어, 유효성 검사 서버 제어, 웹 서버 제어.

웹 양식과 마찬가지로 사용자 컨트롤은 비주얼 디자이너에서 작성하거나 HTML과 별도의 코드로 작성할 수 있습니다.또한 실행 이벤트를 지원할 수 있습니다.그러나 웹 사용자 컨트롤은 런타임에 동적으로 컴파일되므로 도구 상자에 추가할 수 없으며 페이지에 추가할 때 단순 자리 표시자로 표시됩니다.

이렇게 하면 전체 Visual Studio에 익숙한 경우 웹 사용자 컨트롤을 사용하기가 더 어려워집니다.속성 창 및 설계 뷰 미리보기를 포함한 NET 설계 시간 지원.또한 응용 프로그램 간에 사용자 컨트롤을 공유하는 유일한 방법은 각 응용 프로그램에 별도의 복사본을 넣는 것입니다. 이 경우 컨트롤을 변경할 경우 유지 관리에 더 많은 시간이 소요됩니다.

웹 사용자 정의 컨트롤은 컴파일된 코드이므로 사용하기는 쉬워지지만 만들기는 더 어렵습니다.웹 사용자 정의 컨트롤은 코드로 작성되어야 합니다.컨트롤을 만든 후에는 도구 상자에 컨트롤을 추가하고 ASP의 전체 특성 창 및 기타 모든 설계 시간 기능을 지원하는 비주얼 디자이너에 표시할 수 있습니다.NET 서버 컨트롤.또한 웹 사용자 정의 컨트롤의 단일 복사본을 글로벌 어셈블리 캐시에 설치하고 응용프로그램 간에 공유할 수 있으므로 유지 관리가 더 쉬워집니다.

Will의 답변과 달리 웹 배포 프로젝트를 참조하여 다른 프로젝트에서 UserControls를 재사용할 수 있습니다.

제가 아직 평판이 좋지 않아서 답변으로 덧붙이겠습니다만 위에 윌의 답변을 참조한 것입니다.

포함한 링크:

복합 컨트롤은 여러 하위 컨트롤이 통합되어 있고 자체 및 외부 세계와 상호 작용하는 복잡한 구성 요소를 설계하는 데 적합한 도구입니다.렌더링된 컨트롤은 드롭다운 또는 텍스트 상자와 같은 대화형 요소가 출력에 포함되지 않는 컨트롤의 읽기 전용 집계에 적합합니다.

설명서에서 렌더 메서드를 렌더링된 컨트롤로 재정의하여 만든 사용자 컨트롤을 참조하고 있다고 생각합니다.따라서 질문이 의미하는 것처럼 별도의 유형이 아니라 사용자 컨트롤을 구현하는 방법인 패턴입니다.

언급URL : https://stackoverflow.com/questions/71092/what-is-the-difference-between-usercontrol-webcontrol-renderedcontrol-and-comp

반응형