2010-06-24 5 views
9

저는 지난 2 년 동안 ASP.NET (C#)을 사용해 왔습니다. 나는 많은 것을 배웠지 만, 여전히 훨씬 더 나는 결코 진정으로이 :)Web Forms 대신 웹 사용자 컨트롤 사용

나는 등 헤더, 탐색, 바닥 글 같은 것들에 대한 MasterPages, '웹 사용자 컨트롤'을 사용했습니다

한 가지 내용이있다 이해 귀하의 콘텐츠와 논리에 대한 웹 사용자 정의 컨트롤을 사용하는 관행이다;

저는이 구조를 사용하는 지난 몇 개월 동안 몇 가지 프로젝트를 진행해 왔습니다. 나는 이것이 실제로 일반적인 관행임을 알고 있지만 완전한 이익을 실제로 이해하지는 못합니다.

이전에이 접근법을 시도했을 때 Gridview와 같은 컨트롤에 대한 끔찍한 viewstate 문제가 발생했다는 것을 기억합니다 ... 일단 모든 로직을 꺼내서 .aspx 페이지에 배치하면 모든 것이 잘 작동합니다.

이제 GridView를 Viewstate 컬렉션에 추가해야 할 필요가 있음을 알았지 만, 이는 viewstate 문제를 고려할 때 왜이 접근 방식이 사용되는지 이해하는 데 어려움이 있습니다.

머리글, 메뉴, 바닥 글 등과 관련하여 '웹 사용자 정의 컨트롤'의 이점을 완전히 이해합니다. 복제본이 포함되어 있지만 어디에서나 본 프로젝트에는 페이지/컨트롤이 있습니다. 다른 말로는 다른 곳에서는 재사용되지 않을 것입니다. aspx 페이지에는 컨텐트와 로직이있는 컨트롤 (.ascx)이 포함되어 있으며 다른 페이지에서는 사용할 수 없습니다.

'코드 재사용'을 무시하면 어떤 이점이 있습니까? 이 경우

, 나는 (그 방법을 사용하여 어떤 혜택을 볼 수 없습니다 :

답변

2

PageA.aspx -> PageA.ascx의 예제는 실제로 웹 사용자 컨트롤의 이점을 강조하는 나쁜 예라고 생각합니다. 이러한 "페이지"제어 예제에서 한 발 뒤로 물러나서 웹 사용자 컨트롤의 주 목적을 생각해보십시오. 이들은 개별 블록 내에서 UI와 기능을 캡슐화하기위한 목적으로 사용됩니다.

가장 큰 이점은 웹 사용자 컨트롤로 주석 형식과 같은 것을 개발하고 사이트 페이지 전체에 배포하면 솔루션을 업데이트 할 때마다 업데이트 할 단일 항목이 있다는 것입니다 존재하는 페이지.

또 다른 덜 분명한 이점은 Umbraco와 같은 많은 컨텐츠 관리 시스템이 웹 사용자 정의 컨트롤을 플러그인으로 사용한다는 것입니다. 그렇게하면 최종 사용자/편집자가 페이지 내용을 선택하여 배치 할 수있는 플러그인을 개발할 수 있습니다.

+0

브라이언 (Brian)은 웹 컨트롤에 주석 형식과 같은 것을 넣으면 총체적인 이해를하게된다. 나는 이런 위젯을 컨트롤에 배치해야한다. 전체 페이지가 웹 컨트롤 안에 중첩되어 있습니다. 결국에는 일을 처리 할 방법이 아닙니다. .... Home.aspx에 'HomepageSlideshow.ascx', 'TwitterFeed.ascx'와 같은 여러 컨트롤이 포함되어 있으면 훨씬 더 의미가 있습니다. – Dal

+0

@Dal. 기술적으로 다른 페이지와 웹 사용자 정의 컨트롤은 근본적으로 매우 유사하게 작동하지만 사용자가 취한 접근 방식을 위해서는 실제 목적이 있어야합니다. 더 자세한 정보가 없으면 확실한 이점은 없습니다. –

4

사용자 컨트롤은 웹 폼 내부에 사용되는 ... 그들은


편집 교체에 사용되지 않습니다 재사용 외에). 페이지 사이클 이벤트는 페이지에서 컨트롤로 전달되어야하기 때문에 실제로 오버 헤드가 더 클 수 있습니다.

+0

저는 알고 있습니다. 요점은 여러분이 Home.aspx와 같은 페이지를 가질 것이고 Home.ascx라는 사용자 정의 컨트롤이 있다는 것입니다. Home.aspx는 거의 래퍼와 같습니다. 이 접근법이 특히 코드 재사용에 대한 요구 사항이없는 경우에 왜 사용되는지 이해하려고한다. – Dal

+1

그 특별한 예에서 실제로 웹 사용자 컨트롤을 사용하면 실제로 어떤 이점도 없습니다. 마스터 페이지가 더 적절했을 것 같습니다. –

+0

@Ed B - 그게 내 처지 야.) – Dal

관련 문제