방법: Visual Studio 2008에서 ASP.NET AJAX 1.0 웹 프로젝트 작업
업데이트: 2007년 11월
Visual Studio 2008의 다중 대상 지정 지원을 활용하면 기존에 있거나 새로운 웹 사이트 및 웹 응용 프로그램 프로젝트에서 ASP.NET AJAX 1.0으로 작업할 수 있습니다. 또한 기존 사이트를 최신 버전의 ASP.NET 및 .NET Framework로 업데이트하지 않고 실행할 수 있습니다. 이와 동시에 Visual Studio 2008에서 ASP.NET AJAX 1.0 웹 사이트를 개발 및 유지 관리할 수 있는 것은 물론 JScript IntelliSense 등의 새로운 Visual Studio 2008 기능도 활용할 수 있습니다.
최신 런타임을 사용하여 사이트를 실행하더라도 실질적인 도움이 되지 않는 경우에는 이전 버전의 ASP.NET 및 .NET Framework를 사용하여 웹 사이트를 실행하는 것이 좋습니다. 이전 버전을 실행하는 것이 유용한 경우에 대한 예제는 다음과 같습니다.
웹 사이트를 호스팅하는 호스팅 사이트가 최신 버전의 런타임으로 업그레이드되지 않은 경우
웹 사이트에 현재 런타임과 호환되지 않는 컨트롤 또는 구성 요소에 대한 종속성이 포함된 경우
Visual Studio 2008에서 새 AJAX 1.0 웹 사이트 만들기
다음 절차에서는 Visual Studio 2008을 사용하여 새 ASP.NET AJAX 1.0 웹 사이트 또는 웹 응용 프로그램 프로젝트를 만드는 방법을 보여 줍니다. 절차는 전체 버전의 Visual Studio 2008과 Visual Web Developer Express Edition이 약간 다릅니다.
새 AJAX 1.0 웹 사이트를 만들려면
ASP.NET AJAX 1.0을 다운로드하여 설치합니다. 설치 프로그램은 ASP.NET AJAX 웹 사이트에서 다운로드할 수 있습니다.
새 웹 사이트를 만들려면 다음을 수행합니다.
파일 메뉴에서 새 웹 사이트를 클릭합니다.
새 웹 사이트 대화 상자의 Visual Studio에 설치되어 있는 템플릿에서 ASP.NET 웹 사이트를 선택합니다.
새 웹 응용 프로그램 프로젝트를 만들려면 다음을 수행합니다.
파일 메뉴에서 새 프로젝트를 클릭합니다.
새 프로젝트 대화 상자의 Visual Studio에 설치되어 있는 템플릿에서 ASP.NET 웹 응용 프로그램을 선택합니다.
오른쪽 위 모퉁이에 있는 대상 프레임워크 목록에서 Visual Web Developer Express Edition이 아닌 전체 버전의 Visual Studio 2008을 사용하는 경우 .NET Framework 2.0을 선택합니다.
확인을 클릭합니다.
새 웹 사이트 또는 프로젝트가 만들어집니다.
Visual Web Developer Express Edition을 사용하는 경우에는 다음 작업을 수행하여 대상 프레임워크를 2.0으로 변경합니다.
솔루션 탐색기에서 사이트 이름을 마우스 오른쪽 단추로 클릭한 다음 속성 페이지를 클릭합니다.
왼쪽 목록에서 빌드를 클릭합니다.
대상 프레임워크 목록에서 .NET Framework 2.0을 선택합니다.
웹 사이트 폴더의 루트에서 ASP.NET AJAX 1.0 Web.config 파일을 만듭니다.
ASP.NET AJAX 1.0 Web.config 파일 내용 목록을 보려면 이 항목 뒷부분에서 ASP.NET AJAX 1.0 Web.config 파일 내용을 참조하십시오.
Visual Studio 2008에서 기존 ASP.NET AJAX 1.0 웹 사이트 열기
최신 버전의 런타임으로 업그레이드하지 않고도 기존 웹 사이트나 웹 응용 프로그램으로 Visual Studio 2008에서 작업을 수행할 수 있습니다.
기존 AJAX 1.0 웹 사이트 또는 웹 응용 프로그램 프로젝트를 열려면
웹 사이트 또는 웹 응용 프로그램 프로젝트의 백업 복사본을 만듭니다.
웹 사이트나 프로젝트가 실수로 업그레이드되는 경우 업그레이드로 인해 사이트의 파일에 영향을 주게 되며 이는 실행을 취소할 수 없습니다.
Visual Studio 2008에서 웹 사이트 또는 웹 응용 프로그램 프로젝트를 엽니다.
Visual Studio 2008에서 프로젝트를 업그레이드하라는 메시지가 나타나면 아니요를 클릭합니다.
프로젝트는 계속 .NET Framework 2.0를 대상으로 합니다.
ASP.NET AJAX Control Toolkit 어셈블리 업데이트
응용 프로그램에 ASP.NET AJAX Control Toolkit의 컨트롤 또는 Extender가 들어 있는 경우 Visual Studio 2008에서 실행하려면 새로운 버전의 Control Toolkit으로 업그레이드해야 합니다. 현재 버전의 ASP.NET AJAX 1.0 Control Toolkit은 Codeplex 웹 사이트에서 다운로드할 수 있습니다. 라이브러리의 버전이 1.0(원래 버전)인지 확인합니다.
중요: |
---|
Control Toolkit은 커뮤니티 지원 라이브러리이며 Microsoft에서 지원하지 않습니다. |
Control Toolkit을 설치하고 나면 Control Toolkit 컨트롤을 도구 상자에 추가할 수 있습니다.
ASP.NET AJAX Control Toolkit 컨트롤을 도구 상자에 추가하려면
ASP.NET AJAX 1.0 웹 사이트 또는 프로젝트에서 ASP.NET 웹 페이지(Web Form)를 엽니다.
도구 상자를 마우스 오른쪽 단추로 클릭한 다음 탭 추가를 클릭합니다.
"ASP.NET AJAX Toolkit 1.0" 등과 같이 새 탭에 이름을 지정합니다.
새 탭을 마우스 오른쪽 단추로 클릭한 다음 **항목 선택…**을 클릭합니다.
참고: 이 대화 상자가 처음 열리는 경우에는 지연이 발생할 수 있습니다.
도구 상자 항목 선택 대화 상자에서 **찾아보기…**를 클릭합니다.
AJAX Control Toolkit 어셈블리가 포함된 폴더를 찾아 AjaxControlToolkit.dll을 선택한 다음 열기를 클릭합니다.
Control Toolkit의 컨트롤을 도구 상자 항목 선택 대화 상자에서 선택합니다.
확인을 클릭합니다.
컨트롤이 도구 상자에 추가됩니다.
이제 Visual Studio 2008에서 AJAX 1.0 웹 응용 프로그램으로 작업을 수행할 수 있습니다. 응용 프로그램은 .NET Framework 2.0을 사용하여 빌드 및 실행됩니다.
다음에 웹 사이트를 Visual Studio에서 열면 이를 업그레이드하라는 메시지가 표시되지 않습니다. 그러나 언제든지 대상 버전의 .NET Framework를 .NET Framework 버전 3.5로 변경할 수 있습니다. 자세한 내용은 방법: ASP.NET AJAX 1.0 웹 프로젝트를 .NET Framework 3.5로 업그레이드를 참조하십시오.
AJAX 1.0 응용 프로그램에서 Visual Studio 2008 기능 사용
Visual Studio 2008의 새 기능을 사용하여 AJAX 1.0 응용 프로그램을 개발할 수 있지만 여기에는 다음과 같은 예외가 있습니다.
AJAX Web Form 및 AJAX 마스터 페이지 등의 AJAX 항목 템플릿은 새 항목 추가 대화 상자에서 사용할 수 없습니다. AJAX가 지원되는 ASP.NET 웹 페이지 또는 마스터 페이지를 만들려면 웹 사이트에 일반적인 페이지를 추가합니다. 그런 다음 도구 상자에서 ScriptManager 컨트롤을 페이지에 추가합니다.
JScript IntelliSense는 ASP.NET 프로필 서비스로 작업할 때 사용할 수 없습니다.
AJAX 1.0 Control Toolkit 또는 다른 ASP.NET AJAX 1.0 타사 컨트롤 라이브러리의 Extender 컨트롤은 Visual Studio 2008 Extender의 디자인 타임 향상 기능을 지원하지 않습니다. 예를 들어 디자인 뷰에서 Extender 선택… 스마트 태그 명령을 지원하지 않습니다.
ASP.NET AJAX 1.0 Web.config 파일 내용
ASP.NET AJAX 1.0 구성 파일을 만들려면 Web.config라는 파일을 만든 다음 다음과 같은 XML을 해당 파일에 붙여넣습니다.
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
<system.web>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>
<compilation debug="true">
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>
<system.web.extensions>
<scripting>
<webServices>
<!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
<!--
<jsonSerialization maxJsonLength="500">
<converters>
<add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
</converters>
</jsonSerialization>
-->
<!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
<!--
<authenticationService enabled="true" requireSSL = "true|false"/>
-->
<!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
writeAccessProperties attributes. -->
<!--
<profileService enabled="true"
readAccessProperties="propertyname1,propertyname2"
writeAccessProperties="propertyname1,propertyname2" />
-->
</webServices>
<!--
<scriptResourceHandler enableCompression="true" enableCaching="true" />
-->
</scripting>
</system.web.extensions>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules>
<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</modules>
<handlers>
<remove name="WebServiceHandlerFactory-Integrated"/>
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</handlers>
</system.webServer>
</configuration>