.NET Framework 버전 2.0의 새로운 기능

업데이트: 2007년 11월

Microsoft .NET Framework 버전 2.0에서는 .NET Framework 버전 1.1에 없던 새로운 기능이 추가되고 기존 기능이 개선되었으며 설명서도 보강되었습니다. 이 단원에서는 일부 핵심 추가 내용 및 수정 내용을 살펴봅니다.

응용 프로그램에 영향을 줄 수 있는 주요 변경 내용에 대한 자세한 내용은 Breaking Changes in the .NET Framework를 참조하십시오.

64비트 플랫폼 지원

차세대 64비트 컴퓨터를 사용하면 보다 빠르게 실행되고 32비트 응용 프로그램보다 많은 메모리를 활용할 수 있는 응용 프로그램을 만들 수 있으며, 새로 지원되는 64비트 응용 프로그램을 사용하면 관리 코드 라이브러리를 빌드하거나 64비트 컴퓨터에서 비관리 코드 라이브러리를 쉽게 사용할 수 있습니다. 자세한 내용은 64비트 응용 프로그램을 참조하십시오.

액세스 제어 목록 지원

ACL(액세스 제어 목록)은 컴퓨터의 리소스에 대한 액세스 권한을 부여하거나 취소하는 데 사용됩니다. .NET Framework에는 관리 코드를 통해 ACL을 만들고 수정할 수 있는 새 클래스가 추가되었고 I/O, 레지스트리 및 스레딩 클래스에는 ACL을 사용하는 새로운 멤버가 추가되었습니다.

ADO.NET

ADO.NET의 새 기능에는 UDT(사용자 정의 형식), 비동기 데이터베이스 작업, XML 데이터 형식, 큰 값 형식, 스냅숏 격리 및 응용 프로그램이 SQL Server 2005에서 MARS(Multiple Active Result Set)를 사용할 수 있는 새 특성이 지원됩니다. 이러한 기능과 기타 새로운 ADO.NET 기능에 대한 자세한 내용은 ADO.NET의 새로운 기능을 참조하십시오.

ASP.NET

Microsoft .NET Framework 2.0에서는 모든 영역에서 ASP.NET의 주요 기능이 향상되었습니다. 웹 페이지를 개발할 경우 새 컨트롤을 사용하면 일반적으로 사용되는 기능을 동적 웹 페이지에 보다 쉽게 추가할 수 있습니다. 새 데이터 컨트롤을 사용하면 코드를 작성하지 않고도 ASP.NET 웹 페이지에서 데이터를 표시하고 편집할 수 있습니다. 향상된 코드 숨김 모델을 통해 더욱 강력한 ASP.NET 페이지를 보다 쉽게 개발할 수 있습니다. 캐싱 기능은 SQL Server 데이터베이스의 테이블에 캐시 종속성을 빌드하는 기능을 포함하여 페이지를 캐시하는 여러 가지 새 방법을 제공합니다.

다양한 방법으로 웹 사이트와 페이지를 사용자 지정할 수 있습니다. 프로필 속성을 통해 ASP.NET에서 개별 사용자의 속성 값을 자동으로 추적하고, 예를 들어, 웹 파트를 사용하여 사용자가 브라우저에서 사용자 지정할 수 있는 페이지를 만들 수 있습니다. 또한 단순 컨트롤을 사용하여 탐색 메뉴를 추가할 수도 있습니다.

향상된 웹 사이트 기능을 통해 전문 웹 사이트를 보다 빠르고 쉽게 만들 수 있습니다. 마스터 페이지를 사용하면 사이트의 모든 페이지에 대해 일관된 레이아웃을 만들 수 있고 테마를 사용하면 컨트롤과 정적 텍스트에 대해 일관된 모양을 정의할 수 있습니다. 사이트를 보호하기 위해 웹 사이트를 미리 컴파일하여 소스 파일(코드 파일 및 .aspx 페이지의 태그)에서 실행 코드를 생성할 수 있습니다. 그런 다음 소스 정보가 포함되지 않은 결과 출력을 프로덕션 서버에 배포할 수 있습니다. ASP.NET의 향상된 기능에는 웹 사이트 개발자, 서버 관리자 및 호스터가 웹 사이트를 보다 쉽게 관리하는 데 사용하는 새로운 도구와 클래스도 포함됩니다.

ASP.NET에서는 다양한 브라우저와 장치를 지원합니다. 기본적으로 컨트롤은 XHTML 1.1 표준과 호환되는 출력을 렌더링합니다. 장치 필터링을 사용하여 동일한 컨트롤에서 여러 브라우저에 대해 각기 다른 속성 값을 지정할 수 있습니다.

인증된 스트림

응용 프로그램에서 새 NegotiateStreamSslStream 클래스를 통해 인증을 처리하여 클라이언트와 서버 간에 정보가 안전하게 전송되도록 할 수 있습니다. 이러한 인증된 스트림 클래스는 상호 인증, 데이터 암호화 및 데이터 서명을 지원합니다. NegotiateStream 클래스는 인증에 Negotiate 보안 프로토콜을 사용합니다. SslStream 클래스는 인증에 SSL(Secure Socket Layer) 보안 프로토콜을 사용합니다.

향상된 COM Interop 서비스

COM과의 상호 운용성을 지원하는 클래스와 도구에서 다음과 같은 네 가지 주요 기능이 향상되었습니다.

  • 운영 체제에서 중요한 운영 체제 리소스를 참조하는 데 사용되는 제한된 수의 핸들을 유지합니다. 새 SafeHandleCriticalHandle 클래스와 해당 특수 파생 클래스는 운영 체제 핸들을 안전하게 조작하는 방법을 제공합니다.

  • 향상된 마샬링을 통해 네이티브 코드와의 상호 운용이 더 쉬워졌습니다. 가장 일반적인 사용자 요청 두 가지를 충족시키기 위해 interop 마샬러의 두 가지 기능이 향상되었는데, 하나는 네이티브 함수 포인터를 대리자로 래핑하는 기능이고 다른 하나는 구조체 내부에서 고정 크기의 구조체 배열을 마샬링하는 기능입니다.

  • 서로 다른 응용 프로그램 도메인에 있는 응용 프로그램 간 호출 성능이 일반 호출 형식에 대해 훨씬 빨라졌습니다.

  • 형식 라이브러리 가져오기(Tlbimp.exe)형식 라이브러리 내보내기(Tlbexp.exe)의 새 스위치는 레지스트리에 대한 종속성을 제거하여 형식 라이브러리 참조를 확인합니다. 이 향상된 기능은 강력한 빌드 환경을 만드는 데 중요합니다.

콘솔 클래스의 추가 기능

Console 클래스의 새 멤버를 통해 응용 프로그램에서 콘솔 창과 화면 버퍼의 크기를 조작하고, 부드럽고 단순한 애니메이션을 수행하는 데 유용한 화면 버퍼의 사각형 영역을 이동하고, 콘솔 입력을 읽는 동안 키가 입력될 때까지 기다릴 수 있습니다. 그 밖의 새 클래스 멤버는 텍스트의 전경색과 배경색, 커서의 가시성과 크기 및 콘솔 경고음의 빈도와 길이를 제어합니다.

데이터 보호 API

새 DPAPI(데이터 보호 API)에는 플랫폼을 호출하지 않고도 응용 프로그램에서 암호, 키, 연결 문자열 등을 암호화할 수 있는 네 개의 메서드가 있습니다. Windows Server 2003 이상의 운영 체제를 실행하는 컴퓨터에서는 메모리 블록을 암호화할 수도 있습니다.

디버거 표시 특성

이제 응용 프로그램이 디버깅되는 동안 Visual Studio에서 클래스나 멤버를 표시하는 방법을 제어할 수 있습니다. 디버거의 표시 특성 기능을 사용하면 가장 유용한 정보를 식별하여 디버거에 표시할 수 있습니다.

디버거에서 편집하며 계속하기 지원

Visual Studio에서 응용 프로그램을 디버깅하는 사용자가 중단 모드에서 소스 코드를 실행하는 동안 소스 코드를 변경할 수 있도록 하는 편집하며 계속하기 기능이 .NET Framework 2.0에 다시 도입되었습니다. 소스 코드 편집 내용이 적용된 후 사용자는 코드 실행을 다시 시작하고 그 결과를 확인할 수 있습니다. 또한 편집하며 계속하기 기능은 Visual Studio가 지원하는 모든 프로그래밍 언어에서 사용할 수 있습니다.

네트워크 연결의 변경 내용 검색

NetworkChange 클래스는 네트워크 카드 또는 어댑터라고도 하는 네트워크 인터페이스의 IP(인터넷 프로토콜) 주소가 변경될 때 응용 프로그램에서 알림을 받을 수 있도록 합니다. 인터페이스 주소는 네트워크 케이블의 연결이 끊기거나, 무선 LAN(Local Area Network)의 범위 밖으로 이동하거나, 하드웨어 오류가 발생하는 등의 여러 가지 이유로 변경될 수 있습니다. NetworkChange 클래스는 변경 내용이 검색될 때 이벤트를 발생시켜 주소 변경 알림을 제공합니다.

분산 컴퓨팅 작업

System.Net 네임스페이스에는 FTP 클라이언트 요청, HTTP 리소스 캐싱, 자동 프록시 검색 및 네트워크 트래픽과 통계 정보 제공에 대한 지원이 추가되었습니다. 이 네임스페이스에는 이제 HTTP 요청에 응답하는 단순 웹 서버를 만드는 데 사용할 수 있는 웹 서버 클래스(HttpListener)가 포함됩니다. 응용 프로그램 디버깅 및 진단에 대한 추적 정보를 출력하기 위해 네트워크 트래픽을 생성하는 클래스가 계측되었고, System.Net.Sockets.SocketSystem.Uri 클래스에는 향상된 보안과 성능이 추가되었습니다.

System.Web.Services 네임스페이스에는 SOAP 1.2 및 null 허용 요소에 대한 지원이 추가되었습니다.

System.Runtime.Remoting.Channels 네임스페이스에는 채널 보안 기능이 추가되었습니다. 이제 TCP 채널은 인증과 암호화는 물론 로드 균형 조정을 보다 잘 지원하기 위한 여러 가지 새로운 기능을 지원합니다.

향상된 EventLog

이제 EventLog 메시지, 매개 변수 및 범주에 대해 사용자 지정 DLL을 사용할 수 있습니다.

확장된 인증서 관리

이제 .NET Framework에서 X.509 인증서 저장소, 체인 및 확장을 지원합니다. 또한 플랫폼을 호출하지 않고도 X.509 인증서를 사용하여 XML을 서명하고 확인할 수 있습니다. 또한 PKCS7 서명과 암호화 및 CMS(Microsoft Windows 2000 이상의 운영 체제에서 사용할 수 있는 PKCS7 표준의 상위 집합)를 지원할 수 있습니다. PKCS7은 S/MIME(Secure/Multipurpose Internet Mail Extensions)에서 데이터 서명과 암호화에 사용되는 기본 형식입니다. 자세한 내용은 X509Certificate2 클래스 항목을 참조하십시오.

FTP 지원

이제 응용 프로그램에서 WebRequest, WebResponseWebClient 클래스를 사용하여 FTP(파일 전송 프로토콜)에 액세스할 수 있습니다.

제네릭 및 제네릭 컬렉션

유연하고 재사용 가능한 코드를 만들 수 있도록 .NET Framework 2.0에 제네릭이 도입되었습니다. 제네릭으로 통칭하는 언어 기능은 형식이 지정되지 않은 매개 변수나 특정 형식 대신 제네릭 형식 매개 변수를 사용하여 클래스, 구조체, 인터페이스, 메서드 및 대리자를 선언하고 정의할 수 있는 템플릿 역할을 합니다. 실제 형식은 나중에 제네릭을 사용할 때 지정됩니다. System NamespaceSystem.Collections.Generic과 같은 여러 네임스페이스는 제네릭 클래스와 메서드를 제공합니다. 새 System.Collections.Generic 네임스페이스는 강력한 형식의 컬렉션을 지원합니다. 제네릭은 Visual Basic, C# 및 C++ 언어에서 지원됩니다.

런타임에 제네릭 형식과 메서드를 검사하고 조작할 수 있도록 리플렉션이 확장되었습니다. System.TypeSystem.Reflection.MethodInfo에 추가된 새 멤버에는 제네릭 형식(예: class Gen<T,U> {...})을 식별하는 IsGenericType, 형식 매개 변수 목록을 가져오는 GetGenericArguments 및 특정 형식(예: new Gen<int, long>())을 만드는 MakeGenericType 등이 있습니다.

전역화

다섯 가지 전역화 기능이 새로 추가되어 서로 다른 언어와 문화권을 사용하는 응용 프로그램 개발에 대한 지원이 확대되었습니다.

  • 사용자 지정 문화권에 대한 지원을 통해 필요에 따라 문화권 관련 정보를 정의하고 배포할 수 있습니다. 이 기능은 기존 문화권 정의의 일부분을 사용자 지정하고 .NET Framework에 없는 문화권 정의를 만드는 데 유용합니다. 자세한 내용은 CultureAndRegionInfoBuilder 클래스를 참조하십시오.

  • 인코딩 및 디코딩 작업은 디스크나 통신 회선 등의 실제 매체로 전송할 수 있는 바이트 스트림 간에 유니코드 문자를 매핑합니다. 매핑 작업을 완료할 수 없는 경우에는 System.Text 네임스페이스의 여러 클래스에서 지원하는 새 인코딩 및 디코딩 대체(fallback) 기능을 사용하여 작업을 보완할 수 있습니다.

  • 이제 UTF-8 인코딩을 구현하는 UTF8Encoding 클래스의 멤버가 이전 릴리스보다 몇 배 정도 빨라졌습니다. UTF-8은 컴퓨터에서 유니코드 문자를 바이트로 변환하는 데 사용되는 가장 일반적인 인코딩입니다.

  • 이제 .NET Framework는 유니코드 컨소시엄에서 정의한 최신 정규화 표준을 지원합니다. 정규화 프로세스를 통해 텍스트의 문자 표현이 표준 형식으로 변환되므로 문자 표현을 비교하여 같은지 여부를 확인할 수 있습니다.

  • GetCultureInfo 메서드 오버로드는 캐시된 버전의 읽기 전용 CultureInfo 개체를 제공합니다. 시스템 성능을 향상시키고 메모리 사용량을 줄이려면 새 CultureInfo 개체를 만들 때 캐시된 버전을 사용합니다.

향상된 I/O

다양한 I/O 클래스의 유용성과 기능성이 향상되어 이제 텍스트 파일을 읽고 쓰는 작업과 드라이브 정보를 얻는 작업이 더 쉬워졌습니다.

이제 System.IO.Compression 네임스페이스의 클래스를 통해 GZIP 압축 및 압축 풀기 표준을 사용하여 데이터를 읽고 쓸 수 있습니다. 이 표준에 대한 자세한 내용을 보려면 IETF Request for Comments(RFC) 페이지에서 IETF RFC 1951 및 RFC 1952 사양을 검색하십시오. 이 페이지에서는 RFC 번호로만 검색할 수 있습니다.

매니페스트 기반 활성화

이 기능은 새로 지원되는 기능으로, 매니페스트를 사용하여 응용 프로그램을 로드하고 활성화합니다. ClickOnce 응용 프로그램을 사용하려면 매니페스트 기반 활성화를 수행해야 합니다. 일반적으로 응용 프로그램은 응용 프로그램의 진입점이 포함된 어셈블리에 대한 참조를 통해 활성화됩니다. 예를 들어, Windows 셸 내에서 응용 프로그램의 .exe 파일을 클릭하면 셸에서는 CLR(공용 언어 런타임)을 로드하고 해당 .exe 파일의 어셈블리 내에서 알려진 진입점을 호출합니다.

매니페스트 기반 활성화 모델에서는 활성화에 어셈블리 대신 응용 프로그램 매니페스트를 사용합니다. 매니페스트는 응용 프로그램, 응용 프로그램 종속성, 보안 요구 사항 등을 완전히 설명합니다. 매니페스트 모델은 어셈블리 기반 활성화 모델에 비해 몇 가지 장점이 있으며 이러한 장점은 웹 응용 프로그램의 경우에 특히 두드러집니다. 예를 들어, 매니페스트에는 응용 프로그램의 보안 요구 사항이 포함되어 있으므로 사용자가 코드를 다운로드하기 전에 응용 프로그램 실행을 허용할지 여부를 결정할 수 있습니다. 매니페스트에는 응용 프로그램 종속성에 대한 정보도 포함되어 있습니다.

매니페스트 기반 활성화는 API 집합에서 제공하는데, 이 API 집합은 매니페스트에서 설명하는 응용 프로그램 및 추가 기능을 관리되는 호스트에서 활성화할 수 있도록 합니다. 이러한 API에는 새 클래스 및 기존 클래스 확장이 둘 다 포함되어 있습니다.

이 활성화 모델은 다음 작업을 수행하는 엔터티를 호출하며, 이 엔터티를 트러스트 관리자라고 합니다.

  1. 응용 프로그램을 활성화할지 여부를 결정합니다. 활성화 여부는 사용자에게 묻는 메시지를 표시하거나 정책을 쿼리하거나 지정된 트러스트 관리자에 적절한 다른 방법을 통해 결정할 수 있습니다.

  2. 보안 컨텍스트를 설정하여 응용 프로그램을 실행합니다. 대부분의 경우 이 단계에서는 응용 프로그램을 실행할 응용 프로그램 도메인에 CAS(코드 액세스 보안) 정책 트리를 설정합니다.

.NET Framework 원격

이제 .NET Framework 원격에서 IPv6 주소를 지원하고 제네릭 형식을 교환할 수 있습니다. System.Runtime.Remoting.Channels.Tcp 네임스페이스의 클래스는 SSPI(보안 지원 공급자 인터페이스)를 사용하여 인증과 암호화를 지원합니다. 새 System.Runtime.Remoting.Channels.Ipc 네임스페이스의 클래스를 통해 동일한 컴퓨터의 응용 프로그램에서 네트워크를 사용하지 않고 빠르게 통신할 수 있습니다. 마지막으로 연결 캐시 시간 제한과 메서드 재시도 횟수를 구성하여 네트워크 로드 균형이 적절히 조정된 원격 클러스터의 성능을 향상시킬 수 있습니다.

로컬 컴퓨터 네트워크 구성 및 사용에 대한 정보 얻기

System.Net.NetworkInformation 네임스페이스의 클래스를 사용하여 응용 프로그램에서는 IP, IPv4, IPv6, TCP 및 UDP 네트워크 트래픽 통계에 액세스할 수 있습니다. 응용 프로그램에서는 로컬 컴퓨터의 네트워크 어댑터에 대한 주소 및 구성 정보를 볼 수도 있습니다. 이 정보는 Ipconfig.exe 명령줄 도구에서 반환하는 정보와 비슷합니다.

Ping

Ping 클래스를 사용하면 응용 프로그램에서 네트워크를 통해 원격 컴퓨터에 액세스할 수 있는지 여부를 확인할 수 있습니다. 이 클래스는 Ping.exe 명령줄 도구와 유사한 기능을 제공하며 동기 및 비동기 호출을 지원합니다.

응용 프로그램 내부에서 HTTP 요청 처리

HttpListener 클래스를 사용하여 HTTP 요청에 응답하는 단순 웹 서버를 만들 수 있습니다. 웹 서버는 HttpListener 개체의 수명 주기 동안 활성 상태이고 응용 프로그램의 사용 권한을 사용하여 응용 프로그램 내에서 실행됩니다. 이 클래스는 Windows XP 서비스 팩 2 또는 Windows Server 2003 운영 체제가 실행되는 컴퓨터에서만 사용할 수 있습니다.

캐싱의 프로그래밍 방식 제어

System.Net.Cache 네임스페이스의 클래스를 사용하면 응용 프로그램에서 WebRequest, WebResponseWebClient 클래스를 사용하여 얻은 리소스 캐싱을 제어할 수 있습니다. .NET Framework에서 제공하는 미리 정의된 캐시 정책을 사용하거나 사용자 지정 캐시 정책을 지정할 수 있습니다. 각 요청에 대해 캐시 정책을 지정하고 캐시 정책을 지정하지 않은 요청에 대해 기본 캐시 정책을 정의할 수 있습니다.

프로그래밍 언어

네 가지 Microsoft 프로그래밍 언어(Visual C#, Microsoft C/C++, Visual J#, Visual Basic)는 명시적으로 .NET Framework를 대상으로 합니다.

Visual Basic 컴파일러 및 언어

Visual Basic에서는 언어가 향상되어 소스 코드가 단순해졌고 고급 기능을 사용하는 구성 요소와의 상호 작용이 가능합니다.

컴파일러

Visual Basic에서는 모든 프로젝트에 대해 새 조건부 컴파일 상수인 VBC_VER를 도입합니다. 이 버전에는 VBC_VER 8.0 값이 사용됩니다.

이제 Visual Basic 명령줄 컴파일러에서는 기본 명령줄 옵션을 명령줄 컴파일러(Vbc.exe)와 같은 디렉터리에 있는 Vbc.rsp 파일에 저장합니다. Vbc.rsp를 편집하여 기본 명령줄 옵션을 다시 구성할 수 있습니다.

네 가지 새 명령줄 컴파일러 옵션은 다음과 같습니다.

  • /doc 옵션은 코드 내에서 주석을 기반으로 XML 문서 파일을 생성합니다.

  • /noconfig 옵션은 컴파일러에서 Vbc.rsp 파일을 무시하게 합니다.

  • /codepage 옵션은 소스 파일을 열 때 사용할 코드 페이지를 지정합니다.

  • /filealign 옵션은 출력 파일의 섹션 크기를 지정합니다.

  • /nostdlib(Visual Basic) 옵션은 컴파일러에서 표준 라이브러리를 참조하지 않도록 합니다.

자세한 내용은 Visual Basic 컴파일러 옵션을 참조하십시오.

언어

이 버전의 Visual Basic 언어에는 다음과 같은 여러 가지 요소가 새로 추가되었습니다.

보안 예외

System.Security.SecurityException 클래스가 보안 예외의 원인 조사를 활용하는 추가 데이터를 제공하도록 확장되었습니다. 새 속성은 예외가 발생한 메서드, 처음 오류가 발생한 사용 권한, 어셈블리의 영역이나 URL, 오류가 발생한 보안 동작, 예외를 발생시킨 Deny 또는 PermitOnly와 같은 호출 스택의 보안 동작 등이 포함된 정보를 제공합니다.

직렬 I/O 장치 지원

SerialPort 클래스는 응용 프로그램에 컴퓨터의 직렬 포트에 액세스하고 직렬 I/O 장치와 통신하는 기능을 제공합니다.

Serialization

BinaryFormatterSoapFormatter 클래스는 이제 형식을 다른 버전의 serialization에서 deserialize할 수 있는 버전 독립적 serialization을 지원합니다. 자세한 내용은 버전 독립적 Serialization를 참조하십시오.

이제 XML serialization에서는 필드 대신 속성을 사용하여 제네릭 형식의 serialization인 스키마 요소를 나타내고 Nullable<T> 구조체를 사용하여 null 허용 요소를 나타낼 수 있습니다. IXmlSerializable 인터페이스는 사용자 지정 스키마 생성을 지원합니다. SchemaImporterExtension을 통해 스키마를 가져오는 동안 스키마를 변경하여 프록시 코드 생성을 제어할 수 있습니다. 예를 들어, Visual Studio의 웹 참조 추가 기능을 사용하거나 웹 서비스 설명 언어 도구(Wsdl.exe)를 사용할 때 생성되는 프록시를 변경할 수 있습니다.

XML Serializer 생성기 도구(Sgen.exe)에서는 웹 서비스 클라이언트에서 사용되는 코드를 미리 컴파일하여 전송된 정보를 serialize할 수 있으므로 클라이언트 시작 시간이 크게 향상됩니다. 자세한 내용은 XML Serialization 소개를 참조하십시오.

SMTP 지원

System.Net.MailSystem.Net.Mime 네임스페이스의 클래스를 사용하여 응용 프로그램에서는 한 명 이상의 받는 사람에게 전자 메일을 보낼 수 있습니다. 대체 보기를 사용하여 메일을 보낼 수 있고 메일에 첨부를 포함할 수 있습니다. CC(참조) 및 BCC(숨은 참조)를 보낼 수도 있습니다.

강력한 형식의 리소스 지원

리소스 파일 생성기(Resgen.exe)는 실행 가능 파일과 위성 어셈블리에 포함된 리소스 파일을 만듭니다. Resgen.exe는 각 리소스 파일의 래퍼 클래스를 생성하여 리소스에 쉽게 액세스할 수 있게 하고 리소스 이름의 맞춤법 오류를 방지합니다.

스레딩 성능 개선

이제 관리 코드에서만 만들어지는 크로스 프로세스 통신 이벤트의 이름을 지정할 수 있습니다. Semaphore 클래스는 특수 리소스 계산도 지원합니다.

추적 데이터 필터링

.NET Framework 2.0에서는 응용 프로그램 시작 및 종료 등의 I/O 관련 시스템 이벤트를 추적하고 기록하는 클래스를 제공합니다. 그러나 대규모 볼륨과 다양한 형식의 추적 정보로 인해 사용자가 이 데이터를 분석하기는 어렵습니다. 새로 지원되는 추적 데이터 필터링을 통해 기록할 정보 형식을 지정할 수 있습니다.

트랜잭션

System.Transactions 네임스페이스에는 응용 프로그램을 MS DTC(Microsoft Distributed Transaction Coordinator)나 로컬 트랜잭션 관리자에서 관리하는 트랜잭션에 참여할 수 있게 하는 클래스가 포함됩니다. System.Transactions 네임스페이스는 Transaction 클래스를 기반으로 하는 명시적 프로그래밍 모델과 TransactionScope 클래스를 사용하는 암시적 프로그래밍 모델을 모두 제공하며 이 경우 트랜잭션은 인프라에서 자동으로 관리됩니다. 이 트랜잭션 인프라는 기존 System.EnterpriseServices(COM+) 트랜잭션 인프라와 쉽게 상호 운용될 수 있습니다. System.Transactions 네임스페이스는 리소스 관리자를 구현하는 클래스도 제공합니다. 리소스 관리자는 트랜잭션에 사용되는 영구적 데이터나 일시적 데이터를 관리하고 트랜잭션 관리자와 함께 작업하여 응용 프로그램에 원자성 및 격리를 보장합니다.

웹 서비스

웹 서비스에서는 SOAP 1.2 및 WS-I Basic Profile 1.0을 지원하며 관련 내용은 "Web Services Interoperability Organization - Basic Profile Version 1.0"에 설명되어 있습니다.

공유 형식을 정의하는 둘 이상의 웹 서비스를 사용할 때 이러한 웹 서비스에 대해 생성된 클라이언트 프록시는 클라이언트에서 해당 형식을 공유합니다. 따라서 클라이언트에서는 웹 서비스 간에 공유 형식의 인스턴스를 쉽게 전달할 수 있습니다.

이제 이벤트 기반 프로그래밍 패턴을 사용하여 웹 메서드를 비동기적으로 호출할 수 있습니다.

Windows Forms 관련 기능

ClickOnce 배포

ClickOnce 배포를 사용하면 웹 응용 프로그램처럼 쉽게 설치 및 실행할 수 있는 자동 업데이트 Windows 응용 프로그램을 배포할 수 있습니다. Windows 클라이언트 및 명령줄 응용 프로그램을 배포할 수 있습니다. 새로운 <projectname> 게시 명령이 Visual Studio의 빌드 및 프로젝트 메뉴에 추가되었습니다. 자세한 내용은 ClickOnce 배포 개요를 참조하십시오.

응용 프로그램 설정

Windows Forms의 응용 프로그램 설정 기능을 사용하면 클라이언트에서 사용자 지정 응용 프로그램과 사용자 기본 설정을 쉽게 만들고 저장하고 유지 관리할 수 있습니다. Windows Forms 설정을 사용하면 데이터베이스 연결 문자열과 같은 응용 프로그램 데이터뿐 아니라 도구 모음 위치 및 최근에 사용한 목록과 같은 사용자 특정 데이터도 저장할 수 있습니다. 자세한 내용은 응용 프로그램 설정 개요를 참조하십시오.

새 데이터 바인딩 모델

BindingSource 구성 요소는 바인딩된 컨트롤과 대상 데이터 소스 간의 매개 역할을 하므로 이 구성 요소를 사용하면 데이터 바인딩 프로세스가 단순해집니다. 이 구성 요소는 통화, 데이터 관련 이벤트 및 대상 데이터 소스 변경 등과 같은 어려운 바인딩 문제의 많은 부분을 자동으로 관리합니다. 특히 BindingNavigatorDataGridView 컨트롤과 같은 그 밖의 데이터 관련 Windows Forms 컨트롤과도 상호 운용되도록 디자인되었습니다. 자세한 내용은 BindingSource 구성 요소를 참조하십시오. BindingSource 구성 요소는 컨트롤을 내부 데이터 소스에 바인딩하는 프로세스를 단순화합니다. 이 구성 요소는 바인딩하는 다른 컨트롤의 데이터 소스 겸 통로 역할을 합니다.

새 Windows Forms 컨트롤

DataGridView 컨트롤에서는 데이터를 표 형식으로 표시하는 강력하고 유연한 방법을 제공합니다. 이 컨트롤은 양이 적은 데이터의 읽기 전용 뷰를 표시하는 데 사용할 수도 있고 컨트롤의 배율을 조정하여 매우 큰 데이터 집합의 편집 가능한 뷰를 표시할 수도 있습니다. 데이터는 외부 데이터 소스에 둘 수도 있고 컨트롤에 직접 추가할 수도 있습니다. 자세한 내용은 DataGridView 컨트롤 개요(Windows Forms)를 참조하십시오.

ToolStrip 컨트롤은 Windows Forms 응용 프로그램에서 메뉴, 컨트롤 및 사용자 정의 컨트롤을 호스팅할 수 있는 도구 모음입니다. ToolStrip 클래스 및 관련 클래스를 사용하면 도구 모음 및 기타 사용자 인터페이스 요소를 Microsoft Windows XP, Microsoft Office 및 Microsoft Internet Explorer와 일관된 스타일로 만들 수 있습니다. 이러한 클래스를 사용하여 도구 모음과 사용자 인터페이스 요소를 사용자 지정할 수도 있습니다. 자세한 내용은 ToolStrip 컨트롤 개요(Windows Forms)를 참조하십시오.

MaskedTextBox 컨트롤은 마스크 정의를 사용하여 올바른 사용자 입력과 잘못된 사용자 입력을 구별합니다. 자세한 내용은 MaskedTextBox 컨트롤(Windows Forms)을 참조하십시오.

Windows Forms SoundPlayer 클래스를 사용하면 응용 프로그램에 사운드를 쉽게 포함할 수 있습니다. SoundPlayer 클래스는 .wav 형식의 사운드 파일을 리소스 또는 UNC(Universal Naming Conventions)나 HTTP 위치에서 재생할 수 있습니다. 또한 SoundPlayer 클래스를 사용하여 비동기적으로 소리를 재생하거나 로드할 수 있습니다. 자세한 내용은 SoundPlayer 클래스를 참조하십시오.

Windows Forms SplitContainer 컨트롤은 합성으로 간주될 수 있으며 이동 가능한 막대로 구분된 두 패널로 구성됩니다. 마우스 포인터로 막대를 가리키면 커서가 바뀌어 막대를 이동할 수 있음을 보여 줍니다. 정보를 표시하고 검색하는 데 효과적인 복잡하고 크기 조정 가능한 사용자 인터페이스를 만들려면 이 컨트롤을 사용합니다. 자세한 내용은 SplitContainer 컨트롤을 참조하십시오.

ListView 컨트롤은 이제 Windows XP 및 Windows Server 2003 제품군에서 제공하는 세 가지 기능인 Tile 보기, 그룹화 및 끌어서 놓기 항목의 위치 변경을 지원합니다.

ListView, TreeViewToolTip 컨트롤은 이제 이전 버전의 ComboBox, ListBox, MenuItemTabControl 컨트롤에 대한 소유자 그리기 지원과 비슷한 소유자 그리기 기능을 지원합니다.

WebBrowser 컨트롤을 통해 Windows Forms 응용 프로그램에서 웹 페이지를 호스팅할 수 있습니다. WebBrowser 컨트롤을 사용하여 통합 HTML 기반 도움말 또는 인터넷 웹 검색 기능을 응용 프로그램에 제공할 수 있습니다. 또한 WebBrowser 컨트롤을 사용하여 기존 웹 응용 프로그램을 클라이언트 응용 프로그램으로 변환할 수 있습니다. 이 클라이언트 응용 프로그램은 Windows Forms의 사용자 인터페이스 기능을 통해 DHTML(동적 HTML) 코드를 오류 없이 통합합니다. 자세한 내용은 WebBrowser 컨트롤 개요를 참조하십시오.

FlowLayoutPanel 컨트롤은 가로 또는 세로 흐름의 방향으로 내용을 정렬합니다. TableLayoutPanel 컨트롤은 내용을 표 형태로 정렬합니다. 레이아웃은 디자인 타임과 런타임에 모두 수행되므로 응용 프로그램 환경이 변경됨에 따라 동적으로 변경될 수 있습니다. 자세한 내용은 FlowLayoutPanel 컨트롤 개요TableLayoutPanel 컨트롤 개요를 참조하십시오.

BackgroundWorker 구성 요소를 사용하면 이미지 다운로드와 데이터베이스 트랜잭션 같이 실행 시간이 많이 걸릴 수 있는 작업을 백그라운드에서 수행할 수 있습니다. 자세한 내용은 BackgroundWorker 구성 요소 개요를 참조하십시오.

구성 요소의 비동기 패턴은 다중 스레드 디자인에서 상속된 여러 복잡한 문제를 숨기면서 다중 스레드 응용 프로그램의 장점을 제공하는 이벤트 구동 모델입니다. 자세한 내용은 구성 요소의 비동기 패턴을 참조하십시오.

XML 관련 기능

.NET Framework 2.0에서는 새 XSLT(XSL 변환) 프로세서, XmlReader, XmlWriterXPathNavigator 클래스의 형식 지원, XPathNavigator 클래스의 새 편집 기능 등을 포함하여 향상된 여러 기능을 제공합니다. 또한 XmlReaderXmlWriter 개체를 만드는 새 모델을 제공하며 성능이 크게 향상되었습니다. 자세한 내용은 System.Xml의 새로운 기능을 참조하십시오.

참고 항목

개념

주요 기술 빠른 찾기

기타 리소스

.NET Framework의 개요