Windows 스토어 앱용 .NET 개요
.NET Framework에서는 C# 또는 Visual Basic을 사용하여 Windows 스토어 앱을 만드는 데 사용할 수 있는 관리되는 형식의 하위 집합을 제공합니다. 이 관리되는 형식의 하위 집합은 Windows 스토어 앱용 .NET라고 하며 .NET Framework 개발자가 익숙한 프로그래밍 프레임워크 내에서 Windows 스토어 앱을 만드는 데 사용할 수 있습니다. Windows 스토어 앱 개발과 관련되지 않은 모든 형식은 이 하위 집합에 포함되지 않습니다.
이러한 관리되는 형식을 Windows 런타임 API의 형식과 함께 사용하여 Windows 스토어 앱을 만들 수 있습니다. 관리되는 형식이 System으로 시작하는 네임스페이스에 있고 Windows 런타임 형식이 Windows로 시작하는 네임스페이스에 있다는 점을 제외하고, 일반적으로 관리되는 형식 사용과 Windows 런타임 형식 사용에는 어떠한 차이점도 없습니다. 이와 함께 Windows 스토어 앱용 .NET 및 Windows 런타임은 C# 또는 Visual Basic을 사용하여 Windows 스토어 앱을 개발하는 데 사용할 수 있는 형식과 멤버의 전체 집합을 제공합니다.
관리되는 형식과 멤버의 하위 집합은 Windows 스토어 앱 개발을 중점으로 두고 디자인되었습니다. 따라서 이 하위 집합에는 다음 항목이 포함되지 않습니다.
Windows 스토어 앱 개발에 적용할 수 없는 형식 및 멤버(예: 콘솔 및 ASP.NET 형식)
사용되지 않는 형식 및 레거시 형식
Windows 런타임 형식과 겹치는 형식
운영 체제 기능을 래핑하는 형식 및 멤버(예: System.Diagnostics.EventLog 및 성능 카운터)
혼동을 주는 멤버(예: I/O 형식에 대한 Close 메서드)
.NET Framework 데스크톱 앱에서 사용한 형식이 Windows 스토어 앱용 .NET 안에 없는 경우도 있습니다. 대신 Windows 런타임의 형식을 사용할 수 있습니다. 예를 들어 System.IO.IsolatedStorage.IsolatedStorageSettings 클래스는 Windows 스토어 앱용 .NET에 포함되어 있지 않지만 Windows.Storage.ApplicationDataContainer 클래스는 앱 설정을 저장하기 위한 유사한 동작을 제공합니다. 수행해야 할 수 있는 일반 변경의 예가 기존 .NET Framework 코드 변환 단원에 포함되어 있습니다.
Windows 스토어 앱용 .NET의 전체 어셈블리 집합이 C# 또는 Visual Basic을 사용하여 Windows 스토어 앱을 만들 때 프로젝트에서 자동으로 참조됩니다. 따라서 추가 작업 없이 프로젝트에서 Windows 스토어 앱용 .NET이 지원하는 형식을 사용할 수 있습니다. Windows 스토어 앱용 .NET 및 Windows 런타임에서 제공하는 결합된 네임스페이스의 목록(기능 영역별로 그룹화됨)은 .NET Framework 및 Windows Runtime 네임스페이스 단원을 참조하십시오.
.NET Framework 하위 집합에 포함된 네임스페이스와 형식의 목록은 Windows 스토어 앱용 .NET - 지원되는 API을 참조하십시오.
Windows 스토어 앱에서 사용할 수 있는 .NET Framework 라이브러리를 개발하기 위해 이식 가능한 클래스 라이브러리 프로젝트를 만들 수도 있습니다. 이 프로젝트에는 대상 플랫폼 중 하나로 Windows 스토어 앱용 .NET이 포함되어야 합니다. 이식 가능한 클래스 라이브러리는 Windows Phone 앱, 데스크톱 앱 및 Windows 스토어 앱과 같은 여러 가지 유형의 플랫폼용 앱에서 사용할 수 있는 클래스를 개발하려는 경우 특히 유용합니다. 휴대용 클래스 라이브러리 개요를 참조하십시오.
이 항목에는 다음 단원이 포함되어 있습니다.
기존 .NET Framework 코드 변환
형식을 변환하기 위한 확장 메서드
.NET Framework 및 Windows Runtime 네임스페이스
기존 .NET Framework 코드 변환
일반적으로 기존 .NET Framework 앱을 Windows 스토어 앱으로 단순히 변환하기보다는 새로운 사용자 환경에 사용할 수 있도록 .NET Framework 앱을 다시 디자인합니다. 그러나 새로운 Windows 스토어 앱에서 사용하기 위해 기존 .NET Framework 앱의 일부를 변환하려고 할 수 있습니다. 기존 .NET Framework 코드를 변환할 때는 Windows 스토어 앱에서 다음과 같은 변경이 필요할 수 있음을 명심해야 합니다.
UI 변경
I/O 변경
저장소 변경
네트워킹 변경
스레딩 변경
리플렉션 변경
보안 변경
리소스 변경
예외 변경
WCF 변경
일반 .NET Framework 형식의 변경
UI 변경
Silverlight 기반 앱 또는 Windows Phone 앱에서 UI 코드를 변환할 때 많은 동일한 UI 형식을 사용할 수 있지만 형식은 이제 System.Windows 네임스페이스 대신에 Windows.UI.Xaml 네임스페이스에 있습니다. 이러한 새 UI 형식은 이전 .NET Framework UI 형식과 유사하지만 일부 다른 멤버를 포함합니다.
바꿀 원본 |
바꿀 대상 |
---|---|
System.Windows.* 네임스페이스의 UI 형식 |
Windows.UI.Xaml.* 네임스페이스의 UI 형식 (예를 들어 Border 클래스는 Windows.UI.Xaml.Controls 네임스페이스에 있음) |
UI 코드 이식에 대한 자세한 내용은 Migrating a Windows Phone 7 app to XAML을 참조하십시오.
I/O 변경
I/O 형식에는 비동기 프로그래밍 모델에서 새로운 await 키워드를 지원하기 위한 새 멤버가 포함되어 있습니다.
저장소 변경
System.IO.IsolatedStorage 클래스를 사용하는 대신 Windows.Storage 네임스페이스의 형식을 사용하여 로컬 데이터와 파일을 저장합니다.
바꿀 원본 |
바꿀 대상 |
---|---|
System.IO.IsolatedStorage.IsolatedStorageFile 클래스 |
Windows.Storage.ApplicationData 클래스에 대한 LocalFolder 속성
|
System.IO.IsolatedStorage.IsolatedStorageSettings 클래스 |
Windows.Storage.ApplicationData 클래스에 대한 LocalSettings 속성
|
자세한 내용은 Application data를 참조하십시오.
네트워킹 변경
바꿀 원본 |
바꿀 대상 |
---|---|
System.Net.WebClient 클래스 |
HTTP 요청을 보내고 HTTP 응답을 받기 위한 System.Net.Http.HttpClient 클래스 또는 많은 양의 데이터를 업로드하거나 다운로드하기 위한 Windows.Networking.BackgroundTransfer 네임스페이스의 형식 |
System.Net.Sockets 네임스페이스의 형식 |
Windows.Networking.Sockets 네임스페이스의 형식 |
Windows 런타임 형식에 전달될 때의 상대 URI |
절대 URI 자세한 내용은 Windows 런타임에 URI 전달을 참조하십시오. |
UriFormatException 예외를 catch하는 예외 처리 코드 |
UriFormatException의 부모 클래스인 FormatException 예외를 catch하는 코드 |
스레딩 변경
일부 .NET Framework 스레딩 멤버가 변경되었으며 일부 형식은 이제 Windows 런타임 API에서 사용할 수 있습니다.
바꿀 원본 |
바꿀 대상 |
---|---|
System.Threading.Thread.MemoryBarrier 메서드 |
System.Threading 네임스페이스의 Interlocked.MemoryBarrier 메서드 |
System.Threading.Thread.ManagedThreadId 속성 |
System 네임스페이스의 Environment.CurrentManagedThreadId 속성 |
System.Threading.Thread.CurrentCulture 속성 |
System.Globalization 네임스페이스의 CultureInfo.CurrentCulture 속성 |
System.Threading.Thread.CurrentUICulture 속성 |
System.Globalization 네임스페이스의 CultureInfo.CurrentUICulture 속성 |
System.Threading.Timer 클래스 |
|
System.Threading.ThreadPool 클래스 |
|
작업을 풀에 대기시키는 코드 |
|
작업을 풀에 대기시키고 완료될 때까지 기다리는 코드 |
|
장기 실행 작업 항목을 만드는 코드 |
|
리플렉션 변경
System.Type 클래스의 멤버 대부분이 System.Reflection.TypeInfo 클래스로 이동되었습니다. Type의 확장 메서드인 System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type) 메서드를 호출하여 TypeInfo 개체를 검색할 수 있습니다.
바꿀 원본 |
바꿀 대상 |
---|---|
type.Assembly |
type.GetTypeInfo().Assembly |
type.GetMethods(BindingFlags.DeclaredOnly) |
type.GetTypeInfo().DeclaredMethods |
type.GetMethod("MethodName", BindingFlags.DeclaredOnly) |
type.GetTypeInfo().GetDeclaredMethod("MethodName") |
type.GetNestedTypes() |
type.GetTypeInfo().DeclaredNestedTypes |
System.Delegate.CreateDelegate 메서드 |
자세한 내용은 MSDN 라이브러리의 Windows 스토어 앱에 대한 .NET Framework의 리플렉션을 참조하십시오.
보안 변경
보안, 인증 및 암호화 작업에 대한 많은 형식은 Windows 런타임 형식을 통해 사용할 수 있습니다. Windows 스토어 앱에 사용할 수 있는 보안 네임스페이스의 전체 목록은 이 항목의 뒷부분에 나오는 보안 네임스페이스를 참조하십시오.
리소스 변경
Windows 스토어 앱의 경우 데스크톱 앱에서 사용되는 허브 및 스포크 모델 대신 단일 리소스 파일을 만듭니다. 또한 System.Resources 네임스페이스 대신 Windows.ApplicationModel.Resources 및 Windows.ApplicationModel.Resources.Core 네임스페이스의 리소스 형식을 사용합니다.
자세한 내용은 Windows 스토어 앱에서 리소스 만들기 및 검색을 참조하십시오.
예외 변경
경우에 따라 관리되는 형식은 Windows 스토어 앱용 .NET에 포함되지 않은 예외를 throw합니다. 이러한 경우에는 포함되지 않은 예외의 부모 클래스를 catch할 수 있습니다. 예를 들어 데스크톱 앱에서는 UriFormatException 예외를 catch하여 잘못된 URI를 처리하지만, Windows 스토어 앱에서는 UriFormatException이 Windows 스토어 앱용 .NET에 포함되지 않기 때문에 FormatException 예외를 catch합니다. FormatException은 UriFormatException의 부모 클래스입니다.
WCF 변경
Windows 스토어 앱에서 WCF(Windows Communication Foundation) 클라이언트 기능을 사용하여 WCF 서비스에서 데이터를 검색할 수 있지만 데이터를 처리하는 WCF 서비스를 만들 수는 없습니다.
일반 .NET Framework 형식의 변경
바꿀 원본 |
바꿀 대상 |
---|---|
System.Xml.XmlConvert.ToDateTime 메서드 |
|
System.ICloneable 인터페이스 |
적절한 형식을 반환하는 사용자 지정 메서드 |
System.Array.AsReadOnly 및 System.Collections.Generic.List<T>.AsReadOnly 메서드 |
다음과 같이 만들어진 System.Collections.ObjectModel.ReadOnlyCollection<T> 클래스의 새 인스턴스
|
형식을 변환하기 위한 확장 메서드
대부분의 경우 특별한 고려나 변환 없이 .NET Framework 형식과 Windows 런타임 형식을 함께 사용하여 Windows 스토어 앱을 개발합니다. 그러나 몇몇 경우에 .NET Framework는 .NET Framework 형식과 Windows 런타임 형식 간의 상호 작용을 단순화하는 확장 메서드를 제공합니다. 이러한 확장 메서드는 다음 클래스에 있습니다.
System.IO.WindowsRuntimeStreamExtensions – 관리되는 스트림과 Windows 런타임의 스트림 간 변환에 사용됩니다.
System.IO.WindowsRuntimeStorageExtensions – Windows 런타임 파일 및 폴더를 관리되는 스트림으로 여는 데 사용됩니다.
System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions – IBuffer에서 변환하는 데 사용됩니다.
.NET Framework 및 Windows 런타임 네임스페이스
다음 단원에는 Windows 스토어 앱용 .NET 및 Windows 런타임에서 제공되는 네임스페이스가 기능별로 나열되어 있습니다.
컬렉션
코어
데이터 및 콘텐츠
장치
진단
파일 및 폴더
전역화
그래픽
MEF(Managed Extensibility Framework)
다음 네임스페이스를 설치하려면 Visual Studio 2012에서 프로젝트를 열고 프로젝트 메뉴에서 NuGet 패키지 관리를 선택한 다음 Microsoft.Composition 패키지를 온라인으로 검색합니다.
미디어
네트워킹
프레젠테이션
인쇄
리플렉션
리소스
보안
소셜
스레딩
UI 자동화
사용자 상호 작용
언어 및 컴파일러
참고 항목
개념
Windows 스토어 앱용 .NET - 지원되는 API
C# 및 Visual Basic으로 Windows Runtime 구성 요소 만들기