소개
이 아티클의 독자들은 적어도 한 번 이상 간단한 DataGrid나 UserControl를 포함하고 있는 HTML 페이지의 소스를 들여다보았을 터이고, ''''''''id''''''''와 ''''''''name'''''''' 특성 길이(attribute length)에 대해 이미 알고 있을 것이다.
이 아티클의 목적은 "어떻게?" 커다란 크기에 도달하는지, "왜?" 그렇게 되는지 이해하는데 있다.
배경
이 특성들은 항상 고유(unique)해서 UniqueID라고 불리는 컨트롤 서버측 속성(property)의 가시적인 측면에 대해 말할 때 놀랍게 느껴지지 않는다.
Control은 모든 WebControls를 위한 기본 클래스이고, 세 가지 id 속성을 제공받는다.
· ID – 프로그래머가 설정할 수 있다.
· UniqueID – 서버측과 postdata 관리를 위해 사용되는 읽기전용 id를 생성한다. 이 속성은 특성 ''''''''name''''''''을 렌더링한다.
· ClientID – 클라이언트측 전용을 위한 UniqueID의 특별한 읽기전용 변환. 이 속성은 특성 ''''''''id''''''''를 렌더링한다.
Control 코드를 시스템적으로 분석해보면 ClientID 값은 UniqueID 값 변환임을 보여주고, 최종 값은 NamingContainer.ID과 ID의 합성이다.
이러한 속성들 간의 관계는 모든 컨트롤이 포함된 서버측 속성 ID의 간단한 조작을 통해서 ''''''''id''''''''와 ''''''''name'''''''' 특성 둘 다 관리할 수 있음을 알려준다.
잠재적인 문제
거의 모든 기업 ASP.NET 솔루션들은 높은 주문제작 수준을 요구함을 염두에 두고 있어야 하고, 한다. 그러므로 적절한 합성 사용자정의 컨트롤들을 많이 가지고 있어야 한다. 이러한 사용자정의 컨트롤(custom control)들은 중요하게 사용되고, 부모 계층구조(parent hierarchy) 깊이가 현저하게 증가한다. 게다가 우리가 잊지 말아야 할 건
- 이름 지정은 쉬운 문제가 아니다.
- 이름은 계획된 기능(functionality)을 잘 묘사해주어야 한다. 잘 지은 이름은 가독성과 코드 유지보수(간단하게 페이지 크기를 최소화시킬 수 있다면 그에 상응하는 대가를 지불할 용의가 준비되어 있는가?)를 향상시킨다.
- 놀랄 만큼 창의적인 이름 지정은 프로그래머의 능력에 달려 있다.
출처 : http://www.codeproject.com/useritems/ASPNETcontrols_idgenerati.asp
이 문서는 날개달기에 의해 번역되었습니다.