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

업데이트: 2007년 11월

이 항목에서는 .NET Framework 버전 3.5의 새로운 기능과 향상된 기능에 대해 설명합니다.

.NET Compact Framework

.NET Compact Framework 버전 3.5에서는 WPF(Windows Presentation Foundation) 기술을 비롯한 분산 모바일 응용 프로그램에 대한 지원을 확장합니다. 또한 커뮤니티 피드백을 기반으로 LINQ 등의 새 언어 기능과 새 API를 추가하고 업데이트된 진단 도구와 기능을 사용하여 디버깅을 향상시킵니다.

새로운 기능 및 향상된 기능에 대한 자세한 내용은 .NET Compact Framework 버전 3.5의 새로운 기능을 참조하십시오.

ASP.NET

.NET Framework 3.5에는 ASP.NET 및 Visual Web Developer의 대상 영역에 대한 향상된 기능이 있습니다. 가장 중요한 개선 사항은 AJAX 사용 웹 사이트의 개발에 대한 지원 향상입니다. ASP.NET은 새 서버 컨트롤과 API 설정을 사용하여 서버 중심 AJAX 개발을 지원합니다. ScriptManager 컨트롤과 UpdatePanel 컨트롤을 추가하여 AJAX에 대한 기존 ASP.NET 2.0 페이지를 사용할 수 있으며 전체 페이지를 새로 고칠 필요 없이 업데이트 할 수 있습니다.

또한 ASP.NET은 Microsoft AJAX 라이브러리라는 새 클라이언트 라이브러리를 사용하여 클라이언트 중심 AJAX 개발을 지원합니다. Microsoft AJAX 라이브러리는 브라우저에 종속되지 않는 클라이언트 중심의 개체 지향 개발을 지원합니다. ECMAScript(JavaScript)의 라이브러리 클래스를 통해 서버로 왕복하지 않고도 다양한 UI 동작을 사용할 수 있습니다. 응용 프로그램의 요구에 맞게 서버 중심 개발과 클라이언트 중심 개발 수준을 혼합할 수 있습니다. 또한 Visual Web Developer에는 JavaScript에 대한 향상된 IntelliSense 지원과 Microsoft AJAX 라이브러리에 대한 지원이 포함되어 있습니다.

이제 ASP.NET과 Visual Web Developer를 통해 ASMX 및 WCF 기반 웹 서비스를 만들고 Microsoft AJAX 라이브러리를 사용하여 웹 페이지에서 어떤 구현이든 원활하게 사용할 수 있습니다. 또한 폼 인증, 역할 관리 및 프로필을 비롯한 서버측 응용 프로그램 서비스는 클라이언트 스크립트와 Window Forms 클라이언트를 비롯한 WCF 호환 응용 프로그램에서 사용될 수 있는 웹 서비스로 노출됩니다. 이제 ASP.NET을 통해 모든 웹 기반 응용 프로그램이 이러한 일반 응용 프로그램 서비스를 공유할 수 있습니다.

ASP.NET의 다른 향상된 기능에는 데이터 표시를 위한 새 데이터 컨트롤인 ListView, ASP.NET 데이터 소스 컨트롤 아키텍처를 통해 웹 개발자에게 LINQ(통합 언어 쿼리)를 노출하는 새 데이터 소스 컨트롤인 LinqDataSource, 미리 컴파일된 어셈블리 병합을 위한 새 도구인 ASP.NET 병합 도구(Aspnet_merge.exe), IIS 7.0과의 긴밀한 통합 등이 포함됩니다. ListView는 편집, 삽입 및 삭제 작업과 정렬 및 페이징 기능을 지원하고 템플릿 및 스타일을 사용하여 자유롭게 사용자 지정할 수 있는 컨트롤입니다. ListView에 대한 페이징 기능은 DataPager라는 새 컨트롤에서 제공됩니다. 병합 도구를 사용하여 배포 및 릴리스 관리 시나리오의 범위를 지원하도록 어셈블리를 결합할 수 있습니다. ASP.NET과 IIS 7.0의 통합에는 인증 및 캐싱과 같은 ASP.NET 서비스를 모든 콘텐츠 형식에 사용할 수 있는 기능이 포함됩니다. 또한 ASP.NET 관리 코드에서 서버 파이프라인 모듈을 개발하는 기능이 포함되며 모듈 및 처리기의 통합 구성을 지원합니다.

Visual Web Developer의 다른 향상된 기능에는 여러 대상 지정 지원, 웹 응용 프로그램 프로젝트 포함, 새 디자인 뷰, 새 CSS(Cascading Style Sheets) 디자인 도구, SQL 데이터베이스용 LINQ 지원 등이 있습니다. 여러 대상 지정을 사용하면 Visual Web Developer를 통해 웹 응용 프로그램 개발 대상을 버전 2.0, 3.0 및 3.5를 비롯한 .NET Framework의 특정 버전으로 지정할 수 있습니다.

자세한 내용은 ASP.NET의 새로운 기능과 웹 개발을 참조하십시오.

추가 기능 및 확장성

.NET Framework 3.5의 System.AddIn.dll 어셈블리는 확장 가능한 응용 프로그램의 개발자에게 강력하고 유연성 있는 지원을 제공합니다. 응용 프로그램에 확장성을 추가하는 초기 작업을 지원하고 호스트 응용 프로그램 변경에 따라 확장이 계속 작동하도록 하여 개발자를 도와주는 새 아키텍처 및 모델을 도입했습니다. 이 모델은 다음과 같은 기능을 제공합니다.

  • 검색

    AddInStore 클래스를 사용하여 컴퓨터의 여러 위치에 있는 추가 기능 집합을 쉽게 찾아서 관리할 수 있습니다. 이 클래스를 사용하면 추가 기능을 로드하지 않고도 기본 형식으로 추가 기능을 검색하고 해당 정보를 얻을 수 있습니다.

  • 활성화

    응용 프로그램에서 추가 기능을 선택한 후 AddInToken 클래스를 통해 쉽게 활성화할 수 있습니다. 격리 및 샌드박스 수준만 선택하면 시스템에서 나머지 작업을 수행합니다.

  • 격리

    추가 기능의 응용 프로그램 도메인 및 프로세스 격리에 대한 기본 제공 지원이 있습니다. 각 추가 기능의 격리 수준은 호스트에서 제어됩니다. 시스템은 응용 프로그램 도메인과 프로세스를 로드하고 추가 기능의 실행이 중지된 후 종료합니다.

  • 샌드박스

    기본 또는 사용자 지정 신뢰 수준을 사용하여 쉽게 추가 기능을 구성할 수 있습니다. 지원에는 인터넷, 인트라넷, 완전 신뢰, "호스트와 동일" 권한 집합, 호스트가 사용자 지정 권한 집합을 지정할 수 있게 하는 오버로드 등이 포함됩니다.

  • UI 컴퍼지션

    추가 기능 모델은 응용 프로그램 도메인 경계에 걸쳐 있는 WPF(Windows Presentation Foundation) 컨트롤의 직접적인 컴퍼지션을 지원합니다. 격리, 언로드 기능, 샌드박스, 버전 관리의 이점을 유지하는 동시에 추가 기능이 호스트의 UI에 직접 적용되게 할 수 있습니다.

  • 버전 관리

    추가 기능 아키텍처를 통해 호스트는 기존 추가 기능을 손상시키거나 새 추가 기능에 대한 개발자 경험에 영향을 주지 않고도 개체 모델의 새 버전을 도입할 수 있습니다.

자세한 내용은 추가 기능 및 확장성을 참조하십시오.

공용 언어 런타임

컬렉션

HashSet<T>은 성능이 뛰어난 집합 연산을 .NET Framework에 제공합니다. 집합은 중복된 요소가 없고 요소가 특정 순서로 정렬되지 않은 컬렉션입니다. 자세한 내용은 HashSet 컬렉션 형식을 참조하십시오.

진단

EventSchemaTraceListener 클래스를 사용하면 종단 간 스키마 규격 이벤트를 추적할 수 있습니다. 종단 간 추적은 스레드, AppDomain, 프로세스 및 컴퓨터 경계를 넘나드는 이질적인 구성 요소로 이루어진 시스템에 사용할 수 있습니다. 이러한 경계를 넘나들며 추적할 수 있도록 표준화된 이벤트 스키마(Event Representation for Event Consumers 참조)가 정의되어 있습니다. 이 스키마는 이벤트 뷰어와 같은 Windows Vista의 진단 도구를 비롯하여 다양한 추적 기술에서 공유합니다. 이 스키마를 통해 사용자 지정 스키마 규격 요소를 추가할 수도 있습니다.

EventSchemaTraceListener 클래스는 잠금이 필요 없는 추적을 암시적으로 지원하며 성능을 기록하도록 최적화되어 있습니다.

I/O 및 파이프

파이프는 같은 컴퓨터나 네트워크 내의 다른 Windows 컴퓨터에서 실행 중인 모든 프로세스 간의 통신을 수행합니다. .NET Framework에서는 두 가지 파이프 형식(익명 파이프 및 명명된 파이프)에 대한 액세스를 제공합니다. 파이프에 대한 자세한 내용은 파이프를 참조하십시오.

가비지 수집

GCSettings 클래스에는 가비지 수집기가 응용 프로그램에 들어오는 시기를 조정하는 데 사용할 수 있는 새 LatencyMode 속성이 있습니다. 이 속성을 새 GCLatencyMode 열거형 값 중 하나로 설정합니다.

GC 클래스에는 강제 가비지 수집에 대한 동작을 조정하는 데 사용할 수 있는 새 Collect(Int32, GCCollectionMode) 메서드 오버로드가 있습니다. 예를 들어 이 오버로드를 사용하여 가비지 수집기에서 현재 시간이 개체를 확보하기에 최적 시간인지 여부를 확인하도록 지정할 수 있습니다. 이 오버로드는 새 GCCollectionMode 열거형에서 값을 가져옵니다.

리플렉션 및 부분 신뢰의 리플렉션 내보내기

부분 신뢰로 실행된 어셈블리에서 이제 코드를 생성하고 실행할 수 있습니다. public 형식과 메서드만 호출하는 생성된 코드는 액세스한 형식과 메서드에 필요한 권한 이상의 권한이 필요하지 않습니다. 새 DynamicMethod(String, Type, array<Type[]) 생성자를 통해 쉽게 이러한 코드를 생성할 수 있습니다.

생성된 코드에서 전용 데이터에 액세스해야 하는 경우 새 DynamicMethod(String, Type, array<Type[], Boolean) 생성자가 제한된 액세스를 허용합니다. 이 기능을 사용하려면 호스트에서 새 RestrictedMemberAccess 플래그가 지정된 ReflectionPermission을 부여해야 합니다. 그러면 생성된 코드가 신뢰 수준이 같거나 더 낮은 어셈블리의 형식과 메서드에 대해서만 전용 데이터에 액세스할 수 있습니다. 자세한 내용은 연습: 부분 신뢰 시나리오에서 코드 내보내기를 참조하십시오.

리플렉션의 경우 RestrictedMemberAccess의 호스트 부여를 통해 신뢰 수준이 같거나 더 낮은 대상 어셈블리에 대해서만 유사한 방식으로 전용 속성 액세스, 전용 메서드 호출 등의 제한된 메서드 사용을 허용할 수 있습니다.

스레딩

판독기/작성기 잠금 향상

ReaderWriterLockSlim 클래스는 ReaderWriterLock보다 훨씬 향상된 성능을 제공하며 lock 문(Visual Basic의 경우 SyncLock)과 유사합니다. 잠금 상태의 전환이 단순화되어 프로그램이 쉬워졌으며 교착 상태가 발생할 가능성이 줄었습니다. 새 클래스는 lock 및 ReaderWriterLock에서 간단하게 마이그레이션할 수 있도록 재귀를 지원합니다.

ThreadPool 성능 향상

관리되는 스레드 풀의 작업 항목 및 I/O 작업 디스패치 처리량이 훨씬 향상되었습니다. 이제 디스패치는 비관리 코드로 전환되지 않고 관리 코드에서 처리되며 잠금 수도 줄었습니다. 응용 프로그램별 스레드 풀 구현에 대해서는 ThreadPool을 사용하는 것이 좋습니다.

표준 시간대 향상

두 개의 새 형식인 DateTimeOffsetTimeZoneInfo는 표준 시간대에 대한 지원을 향상시키며 다른 표준 시간대의 날짜와 시간을 사용하는 응용 프로그램을 보다 쉽게 개발할 수 있게 합니다. 특정 경우에서 사용할 형식에 대한 자세한 내용은 DateTime, DateTimeOffset 및 TimeZoneInfo 중 선택을 참조하십시오.

TimeZoneInfo

TimeZoneInfo 클래스는 주로 기존 TimeZone 클래스를 대체합니다. TimeZoneInfo를 사용하여 현지 시간 영역과 UTC(협정 세계시)뿐 아니라 레지스트리에 정의된 모든 표준 시간대를 검색할 수 있습니다. 이 클래스를 통해 사용자 지정 표준 시간대를 정의하고, 사용자 지정 표준 시간대 데이터를 serialize 및 deserialize하고, 표준 시간대 간에 시간을 변환할 수도 있습니다. TimeZoneInfo 클래스를 사용하는 응용 프로그램 개발에 대한 자세한 내용은 시간 및 표준 시간대를 참조하십시오.

DateTimeOffset

DateTimeOffset 구조체는 DateTime 구조체를 확장하여 여러 표준 시간대의 시간을 보다 쉽게 사용할 수 있도록 합니다. DateTimeOffset 구조체는 날짜 및 시간 정보를 UTC와의 시간 차이를 나타내는 오프셋 값과 함께 UTC 날짜 및 시간으로 저장합니다.

암호화

ClickOnce 매니페스트

ClickOnce 응용 프로그램에 대한 매니페스트 서명 정보를 확인하고 얻기 위한 새 암호화 클래스가 있습니다. ManifestSignatureInformation 클래스의 VerifySignature 메서드 오버로드를 사용하여 매니페스트 서명에 대한 정보를 가져올 수 있습니다. ManifestKinds 열거형을 사용하여 확인할 매니페스트를 지정할 수 있습니다. 확인 결과는 SignatureVerificationResult 열거형 값 중 하나입니다. ManifestSignatureInformationCollection은 확인된 서명의 ManifestSignatureInformation 개체로 구성된 읽기 전용 컬렉션을 제공합니다. 또한 다음 클래스는 구체적인 서명 정보를 제공합니다.

Suite B 지원

.NET Framework 3.5에서는 NSA(National Security Agency)에서 게시하는 암호화 알고리즘의 Suite B 집합을 지원합니다. NSA 문서를 보려면 www.nsa.gov/ia/industry/crypto_suite_b.cfm을 참조하십시오.

다음과 같은 알고리즘이 포함되어 있습니다.

  • 암호화 - 키 크기가 128 및 256비트인 AES(Advanced Encryption Standard)

  • 해시 - Secure Hash Algorithm(SHA-256 및 SHA-384)

  • 서명 - 256비트 및 384비트 소수 모듈 곡선을 사용하는 ECDSA(Elliptic Curve Digital Signature Algorithm). 이 알고리즘은 ECDsaCng 클래스에서 제공합니다. 이를 통해 개인 키로 서명하고 공개 키로 확인할 수 있습니다.

  • 키 교환/비밀 계약 - 256비트 및 384비트 소수 모듈 곡선을 사용하는 ECDH(Elliptic Curve Diffie-Hellman). 이 알고리즘은 ECDiffieHellmanCng 클래스에서 제공합니다.

새로운 AesCryptoServiceProvider, SHA256CryptoServiceProviderSHA384CryptoServiceProvider 클래스는 AES, SHA-256 및 SHA-384 구현에 대한 FIPS(Federal Information Processing Standard) 인증 구현의 관리 코드 래퍼를 제공합니다.

CNG(Cryptography Next Generation) 클래스는 네이티브 CAPI(Crypto API)에 대한 관리되는 구현을 제공합니다. 이 그룹의 핵심은 CNG 키의 저장 및 사용을 추상화하는 CngKey 키 컨테이너 클래스입니다. 이 클래스를 통해 키 쌍 또는 공개 키를 안전하게 저장하고 간단한 문자열 이름을 사용하여 참조할 수 있습니다. ECDsaCngECDiffieHellmanCng 클래스는 CngKey 개체를 사용합니다.

CngKey 클래스는 키 열기, 만들기, 삭제 및 내보내기 등의 추가적인 다양한 작업에 사용됩니다. 또한 네이티브 API를 직접 호출할 때 사용할 내부 키 핸들에 대한 액세스를 제공합니다.

키 저장소 공급자를 유지 관리하는 CngProvider, CNG 알고리즘을 유지 관리하는 CngAlgorithm 및 일반적으로 사용되는 키 속성을 유지 관리하는 CngProperty 등 다양한 지원 CNG 클래스가 있습니다.

네트워킹

피어 투 피어 네트워킹

피어 투 피어 네트워킹은 여러 네트워크 장치가 리소스를 공유하고 서로 직접 통신할 수 있게 하는 서버를 사용하지 않는 네트워크 기술입니다. System.Net.PeerToPeer 네임스페이스는 피어 투 피어 클라우드에 등록된 PeerName 개체를 통해 다른 피어 노드를 검색하는 데 사용할 수 있는 PNRP(피어 이름 확인 프로토콜)를 지원하는 클래스 집합을 제공합니다. PNRP는 피어 이름을 IPv6 또는 IPv4 IP 주소로 확인할 수 있습니다.

피어 투 피어 네트워킹을 사용한 공동 작업

System.Net.PeerToPeer.Collaboration 네임스페이스는 피어 투 피어 네트워킹 인프라를 사용한 공동 작업을 지원하는 클래스 집합을 제공합니다. 이러한 클래스를 통해 응용 프로그램에서 간편하게 다음 작업을 수행할 수 있습니다.

  • 서버 없이 피어가 있는지 추적합니다.

  • 참석자에게 초대를 보냅니다.

  • 같은 서브넷 또는 LAN의 피어를 찾습니다.

  • 연락처를 관리합니다.

  • 피어와 상호 작용합니다.

Microsoft의 피어 투 피어 공동 작업 인프라는 서버를 사용하지 않는 공동 작업을 위한 피어 투 피어 네트워크 기반 프레임워크를 제공합니다. 이 프레임워크를 사용하여 서브넷 또는 인터넷에 있는 컴퓨터의 총체적 능력을 사용하는 분산 네트워킹 응용 프로그램을 구현할 수 있습니다. 이러한 형식의 응용 프로그램은 공동 작업 계획, 통신, 콘텐츠 배포 또는 멀티플레이어 게임 짝짓기와 같은 작업에 사용할 수 있습니다.

소켓 성능 향상

Socket 클래스는 비동기 네트워크 I/O를 사용하여 최고 성능을 발휘하는 응용 프로그램에서 사용할 수 있도록 향상되었습니다. Socket 네임스페이스에 대한 향상된 기능 집합의 일부로 일련의 새 클래스가 추가되었습니다. 이 클래스는 특수 고성능 소켓 응용 프로그램에서 사용할 수 있는 대체 비동기 패턴을 제공합니다. 이러한 향상된 기능은 특히 고성능을 필요로 하는 네트워크 서버 응용 프로그램을 위해 설계되었습니다.

Windows Communication Foundation

WCF 및 WF 통합 - 워크플로 서비스

.NET Framework 3.5는 WF(Windows Workflow Foundation) 및 WCF(Windows Communication Foundation) 프레임워크를 통합하므로 WF를 사용하여 WCF 서비스를 작성하거나 기존 WF 워크플로를 서비스로 노출할 수 있습니다. 이렇게 하면 저장할 수 있는 서비스를 만들고, 워크플로 간에 데이터를 쉽게 전송하고, 응용 프로그램 수준 프로토콜을 적용할 수 있습니다. 자세한 내용은 워크플로 서비스 및 영속 서비스 만들기를 참조하십시오. 코드 샘플을 보려면 워크플로 서비스 샘플을 참조하십시오.

영속 서비스

.NET Framework 3.5에서는 WF 지속성 모델을 사용하여 서비스의 상태 정보를 저장하는 WCF 서비스를 지원합니다. 이러한 영속 서비스는 상대 정보를 응용 프로그램 계층에 저장하므로 세션이 중지되어 나중에 다시 만드는 경우 상태 유지 저장소에서 해당 서비스에 대한 상태 정보를 다시 로드할 수 있습니다. 자세한 내용은 워크플로 서비스 및 영속 서비스 만들기를 참조하십시오. 코드 샘플을 보려면 Durable Service 샘플을 참조하십시오.

WCF 웹 프로그래밍 모델

WCF 웹 프로그래밍 모델을 통해 개발자는 WCF를 사용하여 웹 스타일 서비스를 빌드할 수 있습니다. 웹 프로그래밍 모듈에는 다양한 URI 처리 기능, GET을 비롯한 모든 HTTP 동사 지원, 다양한 메시지 형식(XML, JSON 및 불분명한 이진 스트림 포함) 작업을 위한 단순한 프로그래밍 모델 등이 포함되어 있습니다. 자세한 내용은 웹 프로그래밍 모델을 참조하십시오. 코드 샘플을 보려면 웹 프로그래밍 모델 샘플을 참조하십시오.

WCF 신디케이션

현재 WCF에는 Atom 1.0 및 RSS 2.0 형식을 모두 포함하는 신디케이션 피드 처리를 위한 강력한 형식의 개체 모델이 있습니다. 자세한 내용은 WCF 배포을 참조하십시오. 코드 샘플을 보려면 배포 샘플을 참조하십시오.

WCF 및 부분 신뢰

.NET Framework 3.5에서 축소된 권한으로 실행되는 응용 프로그램은 WCF 기능의 제한된 하위 집합을 사용할 수 있습니다. ASP.NET 보통 신뢰 권한으로 실행되는 서버 응용 프로그램은 WCF 서비스 모델을 사용하여 기본 HTTP 서비스를 만들 수 있습니다. 인터넷 영역 권한으로 실행되는 클라이언트 응용 프로그램(예: XAML 브라우저 응용 프로그램 또는 ClickOnce와 함께 배포된 서명되지 않은 응용 프로그램)은 WCF 프록시를 사용하여 HTTP 서비스를 이용할 수 있습니다. 또한 부분 신뢰 응용 프로그램은 AJAX 및 신디케이션을 비롯한 WCF 웹 프로그래밍 모델 기능을 사용할 수 있습니다. 자세한 내용은 부분 신뢰를 참조하십시오. 코드 샘플을 보려면 부분 신뢰 WCF 샘플을 참조하십시오.

WCF 및 ASP.NET AJAX 통합

WCF와 ASP.NET의 AJAX(Asynchronous JavaScript and XML) 기능이 통합되어 WCF 서비스를 사용할 수 있는 웹 응용 프로그램을 빌드하기 위한 종단 간 프로그래밍 모델을 제공합니다. AJAX 스타일 웹 응용 프로그램에서 클라이언트(예: 웹 응용 프로그램의 브라우저)는 비동기 요청을 사용하여 서버와 적은 양의 데이터를 교환합니다. ASP.NET의 AJAX 기능과 통합되어 브라우저에서 클라이언트 JavaScript를 사용하여 액세스할 수 있는 WCF 웹 서비스를 쉽게 빌드할 수 있습니다. 자세한 내용은 AJAX 통합 및 JSON 지원을 참조하십시오. 코드 샘플을 보려면 AJAX 샘플을 참조하십시오.

웹 서비스 상호 운용성

.NET Framework 3.5에서는 상호 운용성과 공용 표준을 준수하며 신뢰할 수 있는 새로운 보안 트랜잭트 웹 서비스 표준을 지원합니다.

웹 서비스 프로토콜 상호 운용성 가이드에서 설명하는 새로운 표준 바인딩 <ws2007HttpBinding><ws2007FederationHttpBinding>을 사용하여 이러한 프로토콜을 구현할 수 있습니다. 코드 샘플을 보려면 WS 바인딩 샘플을 참조하십시오.

Windows Presentation Foundation

.NET Framework 3.5에서 WPF(Windows Presentation Foundation)에는 버전 관리, 응용 프로그램 모델, 데이터 바인딩, 컨트롤, 문서, 주석 및 3-D UI 요소를 비롯한 다양한 영역의 변경 내용과 향상된 기능이 포함되어 있습니다.

새로운 기능 및 향상된 기능에 대한 자세한 내용은 Windows Presentation Foundation 버전 3.5의 새로운 기능을 참조하십시오.

Windows Workflow Foundation

WCF 및 WF 통합 - 워크플로 서비스

.NET Framework 3.5는 WF(Windows Workflow Foundation) 및 WCF(Windows Communication Foundation) 프레임워크를 통합하므로 WF를 사용하여 WCF 서비스를 작성하거나 기존 WF 워크플로를 서비스로 노출할 수 있습니다. 이렇게 하면 저장할 수 있는 서비스를 만들고, 워크플로 간에 데이터를 쉽게 전송하고, 응용 프로그램 수준 프로토콜을 적용할 수 있습니다. 자세한 내용은 워크플로 서비스 및 영속 서비스 만들기를 참조하십시오. 코드 샘플을 보려면 워크플로 서비스 샘플(WF)을 참조하십시오.

규칙

현재 WF 규칙 엔진은 확장 메서드, 연산자 오버로드 및 규칙에 새 연산자 사용을 지원합니다. 자세한 내용은 .NET Framework 3.5의 규칙 변경 내용을 참조하십시오. 코드 샘플을 보려면 규칙 및 조건 샘플을 참조하십시오.

Windows Forms

ClickOnce의 향상된 기능

ClickOnce에서 여러 가지 기능이 향상되었습니다. 향상된 기능에는 여러 위치에서 배포, 타사 브랜딩 등이 포함됩니다. 자세한 내용은 다시 서명하지 않고 ClickOnce 응용 프로그램 배포다른 사용자가 배포할 수 있는 ClickOnce 응용 프로그램 만들기를 참조하십시오.

경우에 따라 ClickOnce와 함께 사용되는 Mage.exe 도구가 .NET Framework 3.5에 대해 업데이트되었습니다. 자세한 내용은 매니페스트 생성 및 편집 도구(Mage.exe)를 참조하십시오.

인증, 역할 및 설정 서비스

클라이언트 응용 프로그램 서비스는 .NET Framework 3.5의 새 기능으로, 이 기능을 사용하면 Windows Forms 및 Windows Presentation Foundation 응용 프로그램을 비롯한 Windows 기반 응용 프로그램에서 ASP.NET 로그인, 역할 및 프로필 서비스에 쉽게 액세스할 수 있습니다. 이러한 서비스를 통해 사용자를 인증하고 공유 서버에서 사용자 역할과 응용 프로그램 설정을 검색할 수 있습니다.

응용 프로그램 구성 파일이나 Visual Studio 프로젝트 디자이너에서 클라이언트 서비스 공급자를 지정하고 구성하여 클라이언트 응용 프로그램 서비스를 활성화할 수 있습니다. 이러한 공급자는 웹 확장성 모델에 연결되며, 이를 사용하면 기존 .NET Framework 로그인, 역할 및 API 설정을 통해 웹 서비스에 액세스할 수 있습니다. 또한 클라이언트 응용 프로그램 서비스는 응용 프로그램이 오프라인 상태일 때 로컬 데이터 캐시를 통해 사용자 정보를 저장하고 검색하는 방법으로 필요에 따른 연결 기능을 지원합니다.

자세한 내용은 클라이언트 응용 프로그램 서비스를 참조하십시오.

Windows Vista 지원

기존 Windows Forms 응용 프로그램은 Windows Vista에서 원활하게 작동하며, 가능한 경우에는 항상 Windows Vista용으로 작성되는 응용 프로그램과 같은 외관으로 업그레이드되었습니다. 공용 파일 대화 상자는 자동으로 Windows Vista 버전으로 업데이트됩니다. .NET Framework 3.5에서는 UAC(사용자 계정 컨트롤) 방패 아이콘도 지원합니다. 자세한 내용은 FileDialog 클래스Shield를 참조하십시오.

WPF 지원

Windows Forms을 사용하여 WPF(Windows Presentation Foundation) 컨트롤과 콘텐츠를 Windows Forms 컨트롤과 함께 호스팅할 수 있습니다. Windows Form에서 WPF 창을 열 수도 있습니다. Windows Forms과 WPF를 함께 사용하는 방법에 대한 자세한 내용은 마이그레이션 및 상호 운용성을 참조하십시오.

LINQ

LINQ(통합 언어 쿼리)는 Visual Studio 2008 및 .NET Framework 3.5의 새 기능입니다. LINQ에서는 강력한 쿼리 기능을 배우기 쉬운 표준 쿼리 패턴 형태의 C# 및 Visual Basic 언어 구문으로 확장합니다. 이 기술을 확장하여 잠재적으로 모든 종류의 데이터 저장소를 지원할 수 있습니다. .NET Framework 3.5에는 LINQ를 사용하여 .NET Framework 컬렉션, SQL Server 데이터베이스, ADO.NET 데이터 집합 및 XML 문서를 쿼리할 수 있게 하는 LINQ 공급자 어셈블리가 들어 있습니다.

.NET Framework 3.5에 속하는 LINQ의 구성 요소는 다음과 같습니다.

  • LINQ 쿼리 인프라에서 사용되는 표준 쿼리 연산자와 형식 및 인터페이스 집합이 들어 있는 System.Linq 네임스페이스. 이 네임스페이스는 System.Core.dll 어셈블리에 있습니다.

  • LINQ to SQL 응용 프로그램에서 관계형 데이터베이스와 상호 작용하는 기능을 지원하는 클래스가 들어 있는 System.Data.Linq 네임스페이스

  • 관계형 데이터베이스의 구조와 내용을 나타내는 LINQ to SQL 개체 모델을 생성하는 데 사용할 수 있는 클래스가 들어 있는 System.Data.Linq.Mapping 네임스페이스

  • LINQ to XML에 대한 클래스가 들어 있는 System.Xml.Linq 네임스페이스. LINQ to XML은 XML 문서를 쉽고 효율적으로 수정할 수 있게 하는 메모리 내 XML 프로그래밍 인터페이스입니다. LINQ to XML을 사용하여 XML을 로드하고, XML을 serialize하고, 처음부터 XML 트리를 만들고, 메모리 내 XML 트리를 조작하고, XSD를 사용하여 유효성을 검사할 수 있습니다. 이러한 기능의 조합을 사용하여 XML 트리를 다른 모양으로 변환할 수도 있습니다.

  • System.Web.UI.WebControlsSystem.Web.UI.Design.WebControls 네임스페이스의 새 형식. LinqDataSource 등의 이러한 새 형식은 데이터 소스 컨트롤을 통해 ASP.NET 웹 페이지에서 LINQ 사용을 지원합니다.

  • ADO.NET DataSet 개체에 대한 LINQ 쿼리를 지원하는 System.Data 네임스페이스의 DataRowComparer, DataRowExtensionsDataTableExtensions 클래스

클라이언트 라이브러리에서 클래스에 적용되는 LINQ 확장 메서드는 내용 창과 인덱스 창의 클래스 멤버 페이지에 표시됩니다.

식 트리

식 트리는 .NET Framework 3.5의 새로운 기능이며 데이터 형태로 언어 수준 코드를 나타낼 수 있게 합니다. System.Linq.Expressions 네임스페이스에는 식 트리의 빌딩 블록인 형식이 들어 있습니다. 이러한 형식을 사용하여 여러 형식의 코드 식(예: 메서드 호출 또는 같음 비교)을 나타낼 수 있습니다.

식 트리는 SQL 데이터베이스와 같은 원격 데이터 소스를 대상으로 하는 LINQ 쿼리에서 광범위하게 사용됩니다. 이러한 쿼리는 식 트리로 표시되며, 이 표시를 통해 쿼리 공급자는 쿼리를 검사하고 도메인별 쿼리 언어로 변환할 수 있습니다.

System.Linq.Expressions 네임스페이스는 System.Core.dll 어셈블리에 있습니다.

프로그래밍 언어

세 가지 Microsoft 프로그래밍 언어는 명시적으로 .NET Framework를 대상으로 합니다. 이러한 언어의 새 기능 및 향상된 기능에 대한 자세한 내용은 다음 항목을 참조하십시오.

Visual C#의 새로운 기능

Visual C++ 2008의 새로운 기능

Visual Basic 언어의 새로운 기능

참고 항목

개념

ASP.NET의 새로운 기능과 웹 개발

.NET Compact Framework 버전 3.5의 새로운 기능

Windows Presentation Foundation 버전 3.5의 새로운 기능

Visual Studio 2008의 새로운 기능