ASP.NET 모바일 웹 개발 개요
업데이트: 2007년 11월
모바일 장치 브라우저용 ASP.NET 페이지를 개발하는 방법은 데스크톱 브라우저용 페이지를 개발하는 방법과 별로 차이가 없습니다. ASP.NET에서는 모바일 장치용 응용 프로그램을 만드는 데 사용할 수 있도록 모바일 웹 개발 전용 System.Web.Mobile 네임스페이스를 제공합니다.
MobilePage 기본 클래스에서 웹 페이지를 만들고 System.Web.Mobile 네임스페이스에서 컨트롤을 추가할 수 있습니다. 이 네임스페이스는 다양한 모바일 장치(예: 휴대폰)에서 사용해야 하는 응용 프로그램을 만들 때 특히 유용한 웹 서버 컨트롤과 어댑터 모음을 정의합니다.
ASP.NET 2.0에서는 컨트롤에 따라 조정되어 ASP.NET 2.0 웹 서버 컨트롤에 대한 사용자 지정 장치 어댑터를 만들 수 있는 아키텍처도 제공합니다. 이 어댑터에서는 요청 브라우저에 따라 컨트롤에 대해 사용자 지정 렌더링을 만들 수 있습니다. 컨트롤에 따라 조정되는 아키텍처를 사용하면 ASP.NET 웹 서버 컨트롤에 대한 사용자 지정 어댑터를 만들어 데스크톱 브라우저에서 응용 프로그램에 액세스하는 장치에 맞는 출력을 렌더링할 수 있습니다.
개발 대상이 데스크톱 브라우저이건 모바일 장치이건 상관없이 개발 과정은 응용 프로그램이 사용자 요청, 단추 클릭 등에 응답하는 표준 .NET 이벤트 구동 모델을 따릅니다.
모바일 응용 프로그램 아키텍처
ASP.NET에서는 ASP.NET 모바일 웹 응용 프로그램을 개발할 때 일반적인 웹 응용 프로그램 개발과 같은 패러다임을 사용할 수 있도록 기술을 통합하지만 데스크톱 장치와 모바일 장치 둘 다의 브라우저를 대상으로 할 수 있는 단일 페이지를 만들 수 있도록 하는 것이 모바일 응용 프로그램 아키텍처의 주요 목적은 아닙니다. 모바일 장치의 브라우저에는 제한이 있으므로 대개의 경우 데스크톱 브라우저용으로 디자인한 페이지를 모바일 장치 브라우저용으로 변환할 수 없습니다.
예를 들어 사이트 헤더가 포함되어 있고 페이지 위쪽과 옆면에 각각 탐색 모음과 보조 탐색 구조가 표시된 다음 나머지 부분에 콘텐츠가 나오는 ASP.NET 웹 페이지를 만드는 경우 데스크톱 브라우저에서는 이 페이지가 원래 디자인된 그대로 렌더링됩니다. 이런 경우에는 일반적으로 모든 컨트롤을 렌더링하고 스크롤 가능한 콘텐츠 영역도 제공할 수 있는 충분한 여유 공간이 있습니다. 그러나 대부분의 모바일 장치 브라우저에서는 이 레이아웃이 불가능합니다. 일반적으로 모바일 장치는 데스크톱 모니터에 비해 화면 영역이 작으므로 페이지 콘텐츠를 표시하기 위해 사용자가 여러 컨트롤을 클릭해야 하는 다단계 프로세스를 통해 탐색할 수 있습니다.
프레젠테이션 논리도 비슷한 패턴을 따릅니다. 예를 들어 사용자가 데스크톱 브라우저를 사용하여 Web Form에 입력하는 경우 한 화면에서 많은 컨트롤을 볼 수 있습니다. 서버에서 폼의 유효성을 검사하면 컨트롤 옆에 유효성 검사 오류가 표시될 수 있습니다. 그러나 모바일 장치에서는 폼 입력과 유효성 검사를 사용 가능한 형식으로 쉽게 표시할 수 없습니다. 또한 모바일 장치에는 직접 입력하기가 어려우므로 정보를 입력하는 데 사용할 수 있는 바로 가기를 제공하여 사용자가 입력하는 내용을 줄일 수도 있습니다.
이러한 이유로 인해 ASP.NET 웹 응용 프로그램에서 데스크톱 장치 브라우저와 모바일 장치 브라우저에 사용할 페이지를 개별적으로 만들어야 합니다. 모바일 장치 브라우저용으로 개발된 페이지를 사용하면 프레젠테이션 논리를 장치의 표시 영역과 입력 하드웨어에 좀 더 적합한 영역으로 분할할 수 있습니다.
모바일 웹 서버 컨트롤
ASP.NET 2.0 System.Web.Mobile 네임스페이스는 모바일 웹 개발에 사용됩니다. MobilePage 기본 클래스에서 모바일 웹 페이지를 만들고 System.Web.Mobile 네임스페이스에서 모바일 웹 서버 컨트롤을 추가합니다. 모바일 웹 서버 컨트롤은 .NET Framework에서 특수화된 전용 어댑터를 많이 제공하므로 다양한 모바일 장치를 대상으로 하는 모바일 웹 응용 프로그램을 개발하는 데 특히 적합합니다.
ASP.NET 웹 서버 컨트롤과 어댑터 아키텍처
대부분의 ASP.NET 2.0 웹 서버 컨트롤은 통합 어댑터 아키텍처를 따릅니다. 즉, 모든 컨트롤은 올바른 태그 언어를 만드는 것과 같이 해당 컨트롤을 요청하는 장치에 적합한 동작을 제공하는 사용자 지정 어댑터를 호출하여 각 장치마다 다른 방식으로 동작할 수 있습니다. 브라우저 정의 파일에 요청 장치 또는 브라우저에 대한 어댑터가 구성되어 있는 경우 ASP.NET에서는 웹 서버 컨트롤의 각 수명 주기 단계에서 이 어댑터를 호출합니다. 그러면 어댑터에서 샘플로 렌더링된 출력을 조정하고 장치별 뷰 상태 논리 또는 장치의 고유한 특징을 처리할 수 있습니다. 브라우저 정의 파일은 .NET Framework Config 디렉터리의 Browsers 폴더 또는 웹 응용 프로그램의 App_Browsers 폴더에 있습니다.
ASP.NET 컨트롤에 대해 제공되는 어댑터는 현재로서는 없습니다. 그러나 다양한 장치와 브라우저에 대해 제공되는 풍부한 ASP.NET 모바일 컨트롤용 어댑터 집합이 있습니다.
각 장치에 대해 사용자 지정 어댑터를 만들고, 특정 장치에서 페이지에 액세스하는 경우 ASP.NET 페이지 프레임워크에서 이러한 어댑터를 사용하도록 설정할 수 있습니다. 자세한 내용은 자동 선택 컨트롤 동작의 아키텍처 개요를 참조하십시오.
사용자 지정 어댑터 또는 모바일 컨트롤 선택
모바일 장치를 대상으로 하는 페이지의 경우 모바일 웹 서버 컨트롤을 사용하고 MobilePage에서 상속되는 페이지를 만들어야 합니다. 이러한 컨트롤은 휴대폰과 같은 다양한 모바일 장치를 지원합니다. ASP.NET에는 다양한 범위의 일반적인 웹 개발 및 모바일 관련 요구 사항에 적합한 모바일 웹 서버 컨트롤이 포함되어 있습니다. 또한 대부분의 장치 및 장치 태그 언어에 맞는 모바일 컨트롤 장치 어댑터가 이미 있습니다.
Microsoft에서는 태그 언어가 개선됨에 따라 모바일 웹 서버 컨트롤에 대한 어댑터 업데이트를 계속 제공할 예정입니다. 따라서 이미 사용 중인 같은 컨트롤에 대해 새 태그 언어를 지원할 수 있습니다. 예를 들어, 다양한 모바일 장치와 데스크톱 브라우저를 지원하는 전자 상거래 사이트를 만드는 경우, Page 클래스에서 상속되는 ASP.NET 페이지 집합과 MobilePage 기본 클래스에서 상속되는 별도의 페이지 집합을 만들고 모바일 컨트롤을 사용할 수 있습니다.
필요한 경우 고유한 사용자 지정 어댑터를 만들거나 기존 어댑터를 수정하여 새 장치에 필요한 새로운 동작을 모바일 웹 서버 컨트롤에서 구현할 수 있습니다.
ASP.NET 웹 서버 컨트롤을 사용하고 사용자 지정 어댑터를 작성할 수 있는 시나리오가 있습니다. 일반적으로 이러한 경우는 브라우저 동작의 변형을 필요로 하는 다양한 데스크톱 브라우저를 위한 응용 프로그램이나, 모바일 컨트롤 및 해당 컨트롤의 기능이 보장되지 않는 제한적인 장치 클래스가 대상으로 하는 응용 프로그램에 해당합니다. 보험 회사 사무실에서 사용할 브라우저 기반 인터페이스와 현장에서 사용할 다양한 장치의 인터페이스가 포함된 보험금 청구 응용 프로그램을 만드는 경우를 예로 들 수 있습니다. 그러면 응용 프로그램에서는 일반 페이지와 다양한 장치 페이지 둘 다에 대해 동일한 기본 페이지 클래스를 사용할 수 있습니다. 현장에 배포된 장치에 대해서만 사용자 지정 어댑터를 만들어야 합니다.