ASP.NET AJAX 개요
업데이트: 2007년 11월
ASP.NET AJAX 기능을 사용하면 응답성이 높고 친숙한 UI(사용자 인터페이스) 요소를 통해 풍부한 사용자 경험을 제공하는 웹 페이지를 빠르게 만들 수 있습니다. AJAX 기능은 크로스 브라우저 ECMAScript(JavaScript) 및 DHTML(동적 HTML) 기술을 통합하는 클라이언트 스크립트 라이브러리를 포함하며 ASP.NET 서버 기반 개발 플랫폼과 통합됩니다. AJAX 기능을 사용하여 사용자 경험 및 웹 응용 프로그램의 효율성을 개선할 수 있습니다.
ASP.NET AJAX 기능 사용 이유
ASP.NET AJAX 기능을 사용하면 완전히 서버를 기반으로 하는 웹 응용 프로그램에 비해 많은 장점이 있는 풍부한 웹 응용 프로그램을 빌드할 수 있습니다. AJAX 사용 응용 프로그램은 다음을 제공합니다.
웹 페이지의 상당 부분을 브라우저에서 처리하여 효율성 향상
진행률 표시기, 도구 설명 및 팝업 창과 같은 친숙한 UI 요소
변경된 웹 페이지 부분만 새로 고치는 부분 페이지 업데이트
폼 인증, 역할 및 사용자 프로필에 대한 클라이언트와 ASP.NET 응용 프로그램 서비스의 통합
클라이언트 스크립트에서의 웹 서비스 메서드 호출 작업을 단순화하는 자동 생성 프록시 클래스
클라이언트 기능을 포함하기 위해 서버 컨트롤을 사용자 지정할 수 있도록 하는 프레임워크
Microsoft Internet Explorer, Mozilla Firefox 및 Apple Safari를 비롯하여 가장 일반적으로 사용되는 브라우저에 대한 지원
ASP.NET AJAX 기능의 아키텍처
ASP.NET AJAX 기능의 아키텍처는 클라이언트 스크립트 라이브러리와 서버 구성 요소의 두 부분으로 구성되어 있습니다. 이러한 부분이 통합되어 강력한 개발 프레임워크가 제공됩니다.
참고: |
---|
ASP.NET AJAX 기능 외에 ASP.NET AJAX Control Toolkit 및 Microsoft ASP.NET 향후 릴리스(둘 다 커뮤니티가 지원됨)의 기능도 사용할 수 있습니다. |
다음 그림에서는 클라이언트 스크립트 라이브러리와 서버 구성 요소에 포함되어 있는 기능을 보여 줍니다.
ASP.NET AJAX 클라이언트 및 서버 아키텍처
다음 그림에서는 클라이언트 구성 요소 만들기, 브라우저 호환성, 네트워킹, 핵심 서비스를 지원하는 클라이언트 기반 Microsoft AJAX 라이브러리의 기능을 보여 줍니다. 다음 그림에서는 스크립트 지원, 웹 서비스, 응용 프로그램 서비스, 서버 컨트롤을 포함하는 서버 기반 AJAX 기능의 기능도 보여 줍니다. 다음 단원에서는 위 그림에 대해 자세히 설명합니다.
AJAX 클라이언트 아키텍처
클라이언트 아키텍처에는 구성 요소 지원, 브라우저 호환성, 네트워킹, 핵심 서비스에 대한 라이브러리가 포함되어 있습니다.
구성 요소
클라이언트 구성 요소를 사용하면 포스트백을 수행하지 않고도 브라우저에서 풍부한 동작을 사용할 수 있습니다. 구성 요소는 다음과 같은 세 가지 범주로 구분할 수 있습니다.
타이머 개체와 같이 코드를 캡슐화하는 비가시 개체인 구성 요소
기존 DOM 요소의 기본 동작을 확장하는 동작
사용자 지정 동작이 지정된 새 DOM 요소를 나타내는 컨트롤
사용하는 구성 요소 형식은 원하는 클라이언트 동작 유형에 따라 달라집니다. 예를 들어 기존 텍스트 상자에 대한 워터마크는 해당 텍스트 상자에 첨부된 동작을 사용하여 만들 수 있습니다. 자세한 내용은 클라이언트 구성 요소 및 컨트롤 만들기를 참조하십시오.
브라우저 호환성
브라우저 호환성 레이어는 Microsoft Internet Explorer, Mozilla Firefox 및 Apple Safari를 비롯하여 가장 일반적으로 사용되는 브라우저에 대한 AJAX 스크립팅 기능을 제공합니다. 이 기능을 사용하면 지원되는 브라우저 중 어떤 브라우저를 대상으로 지정하든 상관없이 동일한 스크립트를 작성할 수 있습니다. 자세한 내용은 AJAX 사용 ASP.NET 페이지의 브라우저 보안 설정을 참조하십시오.
네트워킹
네트워킹 레이어는 브라우저의 스크립트와 웹 기반 서비스 및 응용 프로그램 간 통신을 처리합니다. 또한 비동기 원격 메서드 호출을 관리합니다. UpdatePanel 컨트롤을 사용하는 부분 페이지 업데이트와 같은 많은 일반적인 시나리오에서 네트워킹 레이어는 자동으로 사용되며 사용자가 코드를 작성할 필요가 없습니다.
네트워킹 레이어는 클라이언트 스크립트에서의 서버 기반 폼 인증, 역할 정보 및 프로필 정보 액세스에 대한 지원도 제공합니다. 이러한 지원은 ASP.NET을 사용하여 작성되지 않은 웹 응용 프로그램에도 제공됩니다. 이때 해당 응용 프로그램에는 Microsoft AJAX 라이브러리에 대한 액세스 권한이 있어야 합니다. 자세한 내용은 ASP.NET AJAX의 웹 서비스를 참조하십시오.
핵심 서비스
ASP.NET AJAX 클라이언트 스크립트 라이브러리는 개체 지향 개발을 위한 기능을 제공하는 JavaScript 파일(.js)로 구성되어 있습니다. AJAX.NET ASP 클라이언트 스크립트 라이브러리에 포함된 개체 지향 기능을 사용하면 클라이언트 스크립팅 시 일관성과 모듈성을 최고 수준으로 유지할 수 있습니다. 클라이언트 아키텍처를 구성하는 핵심 서비스는 다음과 같습니다.
클래스, 네임스페이스, 이벤트 처리, 상속, 데이터 형식 및 개체 serialization과 같은 JavaScript에 대한 개체 지향 확장
문자열 작성기 및 확장 오류 처리와 같은 구성 요소를 포함하는 기본 클래스 라이브러리
어셈블리에 포함되거나 독립형 JavaScript 파일(.js)로 제공되는 JavaScript 라이브러리에 대한 지원. JavaScript 라이브러리를 어셈블리에 포함하면 응용 프로그램을 보다 쉽게 배포할 수 있으며 버전 관리 문제를 해결하는 데 도움이 됩니다.
자세한 내용은 Microsoft AJAX 라이브러리를 사용하여 사용자 지정 클라이언트 스크립트 만들기를 참조하십시오.
디버깅 및 오류 처리
핵심 서비스에는 웹 페이지 끝에서 읽을 수 있는 형식으로 개체를 표시하는 방법을 제공하는 Sys.Debug 클래스가 포함되어 있습니다. 또한 이 클래스는 추적 메시지를 표시하고, 사용자가 어설션을 사용할 수 있게 해주며, 중단하고 디버거를 시작하게 합니다. 확장 Error 개체 API는 릴리스 및 디버그 모드를 지원하는 유용한 예외 정보를 제공합니다. 자세한 내용은 AJAX 응용 프로그램 디버깅 및 추적 개요를 참조하십시오.
전역화
ASP.NET AJAX 서버 및 클라이언트 아키텍처는 클라이언트 스크립트를 지역화 및 전역화하기 위한 모델을 제공합니다. 이를 통해 단일 코드베이스를 사용하여 여러 로캘(언어 및 문화권)에 UI를 제공하는 응용 프로그램을 디자인할 수 있습니다. 예를 들어 AJAX 아키텍처를 사용하면 서버에 포스트백을 수행하지 않고도 JavaScript 코드를 통해 사용자 브라우저의 문화권 설정에 따라 자동으로 Date 또는 Number 개체의 형식을 지정할 수 있습니다. 자세한 내용은 연습: 클라이언트 스크립트를 사용하여 날짜 전역화를 참조하십시오.
AJAX 서버 아키텍처
AJAX 개발을 지원하는 서버 부분은 응용 프로그램의 UI와 흐름을 관리하는 ASP.NET 웹 서버 컨트롤 및 구성 요소로 구성되어 있습니다. 서버 부분은 serialization, 유효성 검사, 컨트롤 확장성 등도 관리합니다. 폼 인증, 역할 및 사용자 프로필에 대해 ASP.NET 응용 프로그램 서비스에 액세스할 수 있도록 하는 ASP.NET 웹 서비스도 있습니다.
스크립트 지원
ASP.NET AJAX 기능은 서버에서 클라이언트로 전송되는 지원 스크립트를 사용하여 구현됩니다. 사용하는 AJAX 기능에 따라 브라우저로 전송되는 스크립트가 달라집니다.
ASP.NET 응용 프로그램에 대한 사용자 지정 클라이언트 스크립트를 만들 수도 있습니다. 이 경우 AJAX 기능을 사용하여 사용자 지정 스크립트를 디스크의 정적 .js 파일이나 어셈블리에 리소스로 포함된 .js 파일로 관리할 수 있습니다.
ASP.NET AJAX 기능에는 릴리스 및 디버그 모드에 대한 모델이 포함되어 있습니다. 릴리스 모드에서는 스크립트 크기를 최소화하고 성능을 위해 최적화된 오류 검사 및 예외 처리를 제공합니다. 디버그 모드는 형식 및 인수 검사와 같은 보다 강력한 디버깅 기능을 제공합니다. 응용 프로그램이 디버그 모드에 있는 경우 ASP.NET은 디버그 버전을 실행합니다. 따라서 사용자는 디버그 스크립트에서 예외를 throw할 수 있지만 릴리스 코드의 크기를 최소 크기로 유지할 수 있습니다.
ASP.NET AJAX에 대한 스크립트 지원은 다음과 같은 두 가지 중요한 기능을 제공하는 데 사용됩니다.
네임스페이스, 상속, 인터페이스, 열거형, 리플렉션 및 추가 기능을 제공하는 형식 시스템 및 JavaScript 확장 집합인 Microsoft AJAX 라이브러리. 자세한 내용은 Microsoft AJAX 라이브러리를 사용하여 사용자 지정 클라이언트 스크립트 만들기를 참조하십시오.
비동기 포스트백을 사용하여 페이지 영역을 업데이트하는 부분 페이지 렌더링. 자세한 내용은 부분 페이지 렌더링 개요를 참조하십시오.
지역화
ASP.NET AJAX 아키텍처는 ASP.NET 2.0 지역화 모델을 기반으로 빌드됩니다. 이 아키텍처는 어셈블리에 포함되거나 디스크로 제공되는 지역화된 .js 파일에 대한 추가 지원을 제공합니다. ASP.NET은 특정 언어 및 지역에 대해 지역화된 클라이언트 스크립트 및 리소스를 자동으로 처리합니다.
자세한 내용은 다음 항목을 참조하십시오.
웹 서비스
ASP.NET 웹 페이지의 AJAX 기능을 사용하면 클라이언트 스크립트를 통해 ASP.NET 웹 서비스(.asmx)와 WCF(Windows Communication Foundation) 서비스(.svc)를 모두 호출할 수 있습니다. 필요한 스크립트 참조가 자동으로 페이지에 추가되고 추가된 참조는 클라이언트 스크립트에서 웹 서비스를 호출하는 데 사용되는 웹 서비스 프록시 클래스를 자동으로 생성합니다.
다른 웹 개발 환경을 사용하는 경우 등에서 ASP.NET AJAX 서버 컨트롤을 사용하지 않고 ASP.NET 웹 서비스에 액세스할 수도 있습니다. 이렇게 하려면 페이지에서 Microsoft AJAX 라이브러리에 대한 참조를 스크립트 파일 및 웹 서비스 자체에 수동으로 포함합니다. 런타임에 ASP.NET은 서비스 호출에 사용할 수 있는 프록시 클래스를 생성합니다. 자세한 내용은 ASP.NET AJAX의 웹 서비스를 참조하십시오.
응용 프로그램 서비스
ASP.NET 응용 프로그램 서비스는 ASP.NET 폼 인증, 역할 및 사용자 프로필을 기반으로 하는 기본 제공 웹 서비스입니다. 이러한 서비스는 Windows 클라이언트 응용 프로그램 또는 WCF 호환 클라이언트를 사용하여 AJAX 사용 웹 페이지에서 클라이언트 스크립트로 호출할 수 있습니다. 자세한 내용 및 예제는 다음을 참조하십시오. ASP.NET 웹 서비스 사용.
서버 컨트롤
ASP.NET AJAX 서버 컨트롤은 풍부한 클라이언트 동작을 생성하기 위해 통합되는 서버 및 클라이언트 코드로 구성되어 있습니다. ASP.NET 웹 페이지에 AJAX 컨트롤을 추가하면 페이지가 AJAX 기능을 위해 자동으로 지원 클라이언트 스크립트를 브라우저로 보냅니다. 추가 클라이언트 코드를 제공하여 컨트롤의 기능을 사용자 지정할 수 있지만 이 작업을 반드시 수행해야 하는 것은 아닙니다.
다음 목록에서는 가장 일반적으로 사용되는 ASP.NET AJAX 서버 컨트롤을 보여 줍니다.
ScriptManager
클라이언트 구성 요소, 부분 페이지 렌더링, 지역화, 전역화 및 사용자 지정 사용자 스크립트에 대한 스크립트 리소스를 관리합니다. UpdatePanel, UpdateProgress 및 Timer 컨트롤을 사용하려면 ScriptManager 컨트롤이 필요합니다.UpdatePanel
동기 포스트백을 사용하여 전체 페이지를 새로 고치는 대신 페이지의 선택한 부분만 새로 고칠 수 있도록 합니다.UpdateProgress
UpdatePanel 컨트롤의 부분 페이지 업데이트에 대한 상태 정보를 제공합니다.Timer
정의된 간격으로 포스트백을 수행합니다. Timer 컨트롤을 사용하여 전체 페이지를 게시하거나 이를 UpdatePanel 컨트롤과 함께 사용하여 정의된 간격으로 부분 페이지 업데이트를 수행할 수 있습니다.
AJAX 클라이언트 동작을 포함하는 사용자 지정 ASP.NET 서버 컨트롤을 만들 수도 있습니다. 다른 ASP.NET 웹 컨트롤의 기능을 개선하는 사용자 지정 컨트롤을 Extender컨트롤이라고 합니다. 자세한 내용은 ASP.NET 컨트롤에 AJAX 기능 추가 및 ASP.NET AJAX Extender 컨트롤 개요를 참조하십시오.
AJAX Control Toolkit
ASP.NET AJAX Control Toolkit은 ASP.NET AJAX 컨트롤 및 Extender를 사용하여 만들 수 있는 일부 환경을 보여 주는 샘플 및 구성 요소 컬렉션입니다. Control Toolkit은 사용자 지정 컨트롤 및 Extender를 간단하게 만들고 다시 사용할 수 있도록 샘플 및 강력한 SDK를 제공합니다. ASP.NET AJAX Control Toolkit은 ASP.NET Ajax 웹 페이지에서 다운로드할 수 있습니다. ASP.NET AJAX Control Toolkit은 커뮤니티가 지원됩니다.
AJAX 커뮤니티 지원 향후 릴리스
ASP.NET AJAX 커뮤니티 지원 향후 릴리스는 아직 개발 중에 있으며 ASP.NET에 포함되지 않은 기능으로 ASP.NET의 AJAX 기능을 확장하는 기능을 제공합니다. 여기에는 추가 Extender 컨트롤, 클라이언트 선언적 구문(xml-script) 등이 포함됩니다. 향후 릴리스에 대한 자세한 내용을 보고 이를 다운로드하려면 ASP.NET AJAX 웹 사이트를 참조하십시오.