다음을 통해 공유


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 런타임 형식과 겹치는 형식

  • 운영 체제 기능을 래핑하는 형식 및 멤버(예: 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 스토어 앱과 같은 여러 가지 유형의 플랫폼용 앱에서 사용할 수 있는 클래스를 개발하려는 경우 특히 유용합니다. 자세한 내용은 Portable Class Libraries를 참조하세요.

이 항목에는 다음 단원이 포함되어 있습니다.

  • 기존 .NET Framework 코드 변환

  • 형식을 변환하기 위한 확장 메서드

  • .NET Framework 및 Windows Runtime 네임스페이스

이러한 항목에서는 앱의 다른 부분을 Windows 런타임으로 변환하는 방법에 대한 정보를 제공합니다.

기존 .NET Framework 코드 변환

일반적으로 기존 .NET Framework 앱을 Windows 스토어 앱으로 단순히 변환하기보다는 새로운 사용자 환경에 사용할 수 있도록 .NET Framework 앱을 다시 디자인합니다. 그러나 새로운 Windows 스토어 앱에서 사용하기 위해 기존 .NET Framework 앱의 일부를 변환하려고 할 수 있습니다. 기존 .NET Framework 코드를 변환할 때는 Windows 스토어 앱에서 다음과 같은 변경이 필요할 수 있음을 명심해야 합니다.

  • UI 변경

  • I/O 변경

  • 저장소 변경

  • 네트워킹 변경

  • 스레딩 변경

  • 리플렉션 변경

  • 보안 변경

  • 리소스 변경

  • 예외 변경

  • WCF 변경

  • 일반 .NET Framework 형식의 변경

BR230302.collapse_all(ko-kr,VS.120).gifUI 변경

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 코드 포팅에 대한 자세한 내용은 Windows Phone 7 앱을 XAML로 마이그레이션을 참조하세요.

BR230302.collapse_all(ko-kr,VS.120).gifI/O 변경

I/O 형식에는 비동기 프로그래밍 모델에서 새로운 await 키워드를 지원하기 위한 새 멤버가 포함되어 있습니다.

바꿀 원본

바꿀 대상

System.IO.Stream.BeginRead 및 EndRead 메서드

System.IO.Stream.ReadAsync 메서드

예제를 보려면 ReadAsync(array<Byte[], Int32, Int32)를 참조하십시오.

System.IO.Stream.BeginWrite 및 EndWrite 메서드

System.IO.Stream.WriteAsync 메서드

예제를 보려면 WriteAsync(array<Byte[], Int32, Int32)를 참조하십시오.

I/O 클래스에 대한 Close() 메서드

I/O 클래스에 대한 Dispose() 메서드

또는

using(C#) 또는 Using(Visual Basic) 문 안에서 I/O 개체를 선언하고 인스턴스화하여 I/O 개체가 제대로 삭제되도록 합니다. 예를 들면 다음과 같습니다.

using (StreamReader sr = 
  new StreamReader(await passedFile.OpenStreamForReadAsync()))
{
    while ((nextLine = await sr.ReadLineAsync()) != null)
    {
        contents.Append(nextLine);
    }
}
Using sr As StreamReader = 
  New StreamReader(Await passedFile.OpenStreamForReadAsync())
    While (nextLine = Await sr.ReadLineAsync()) <> Nothing
        contents.Append(nextLine)
    End While
End Using

System.IO.File.ReadAllText 메서드

Windows.Storage.PathIO 클래스의 ReadTextAsync 메서드

파일을 검색하고 여는 코드

public static async void ReadFileSamples()
{
  // Read a file from package
  StorageFolder packageFolder = 
      ApplicationModel.Package.Current.InstalledLocation;
  StorageFile packagedFile = 
      await packageFolder.GetFileAsync("FileInPackage");

  // Read a file from AppData
  StorageFolder localFolder = ApplicationData.Current.LocalFolder;
  StorageFile localFile = 
    await localFolder.GetFileAsync("FileInAppData");
}
Public Async Shared Sub ReadFileSamples()
  ' Read a file from package
  Dim packageFolder As StorageFolder = 
      ApplicationModel.Package.Current.InstalledLocation
  Dim packagedFile As StorageFile = 
      Await packageFolder.GetFileAsync("FileInPackage")

  ' Read a file from AppData
  Dim localFolder As StorageFolder = ApplicationData.Current.LocalFolder
  Dim localFile As StorageFile = 
    Await localFolder.GetFileAsync("FileInAppData ")
End Sub

BR230302.collapse_all(ko-kr,VS.120).gif저장소 변경

System.IO.IsolatedStorage 클래스를 사용하는 대신 Windows.Storage 네임스페이스의 형식을 사용하여 로컬 데이터와 파일을 저장합니다.

바꿀 원본

바꿀 대상

System.IO.IsolatedStorage.IsolatedStorageFile 클래스

Windows.Storage.ApplicationData 클래스의 LocalFolder 속성

ApplicationData.Current.LocalFolder

System.IO.IsolatedStorage.IsolatedStorageSettings 클래스

Windows.Storage.ApplicationData 클래스의 LocalSettings 속성

ApplicationData.Current.LocalSettings

자세한 내용은 응용 프로그램 데이터를 참조하세요.

BR230302.collapse_all(ko-kr,VS.120).gif네트워킹 변경

바꿀 원본

바꿀 대상

System.Net.WebClient 클래스

HTTP 요청을 보내고 HTTP 응답을 받기 위한 HttpClient 클래스

또는

데이터를 대량 업로드하거나 다운로드할 수 있는 Windows.Networking.BackgroundTransfer 네임스페이스의 형식

System.Net.Sockets 네임스페이스의 형식

Windows.Networking.Sockets 네임스페이스의 형식

Windows 런타임 형식에 전달될 때의 상대 URI

절대 URI

자세한 내용은 Windows 런타임에 URI 전달을 참조하세요.

UriFormatException 예외를 catch하는 예외 처리 코드

UriFormatException의 부모 클래스인 FormatException 예외를 catch하는 코드

BR230302.collapse_all(ko-kr,VS.120).gif스레딩 변경

일부 .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 클래스

Windows.System.Threading.ThreadPoolTimer 클래스

System.Threading.ThreadPool 클래스

Windows.System.Threading.ThreadPool 클래스

작업을 풀에 대기시키는 코드

Task.Run(() => 
{ 
  // work goes here
});
Task.Run(
    Sub()
        ' work goes here
    End Sub)

작업을 풀에 대기시키고 완료될 때까지 기다리는 코드

await Task.Run(() => 
{ 
  // work goes here
});
Await Task.Run(
    Sub()
        ' work goes here
    End Sub)

장기 실행 작업 항목을 만드는 코드

Task.Factory.StartNew(() => 
{ 
  // work goes here
}, TaskCreationOptions.LongRunning);
Task.Factory.StartNew(
    Sub()
        ' work goes here
    End Sub, TaskCreationOptions.LongRunning)

BR230302.collapse_all(ko-kr,VS.120).gif리플렉션 변경

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 메서드

MethodInfo.CreateDelegate 메서드

자세한 내용은 MSDN 라이브러리의 Reflection in the .NET Framework for Windows Store Apps을 참조하십시오.

BR230302.collapse_all(ko-kr,VS.120).gif보안 변경

보안, 인증 및 암호화 작업에 대한 많은 형식은 Windows 런타임 형식을 통해 사용할 수 있습니다. Windows 스토어 앱에 사용할 수 있는 보안 네임스페이스의 전체 목록은 이 항목의 뒷부분에 나오는 보안 네임스페이스를 참조하십시오.

BR230302.collapse_all(ko-kr,VS.120).gif리소스 변경

Windows 스토어 앱의 경우 데스크톱 앱에서 사용되는 허브 및 스포크 모델 대신 단일 리소스 파일을 만듭니다. 또한 System.Resources 네임스페이스 대신 Windows.ApplicationModel.ResourcesWindows.ApplicationModel.Resources.Core 네임스페이스의 리소스 형식을 사용합니다.

자세한 내용은 Windows 스토어 앱에서 리소스 만들기 및 검색을 참조하세요.

BR230302.collapse_all(ko-kr,VS.120).gif예외 변경

경우에 따라 관리되는 형식은 Windows 스토어 앱용 .NET에 포함되지 않은 예외를 throw합니다. 이러한 경우에는 포함되지 않은 예외의 부모 클래스를 catch할 수 있습니다. 예를 들어 데스크톱 앱에서는 UriFormatException 예외를 catch하여 잘못된 URI를 처리하지만, Windows 스토어 앱에서는 UriFormatException이 Windows 스토어 앱용 .NET에 포함되지 않기 때문에 FormatException 예외를 catch합니다. FormatException은 UriFormatException의 부모 클래스입니다.

BR230302.collapse_all(ko-kr,VS.120).gifWCF 변경

Windows 스토어 앱에서 WCF(Windows Communication Foundation) 클라이언트 기능을 사용하여 WCF 서비스에서 데이터를 검색할 수 있지만 데이터를 처리하는 WCF 서비스를 만들 수는 없습니다.

BR230302.collapse_all(ko-kr,VS.120).gif일반 .NET Framework 형식의 변경

바꿀 원본

바꿀 대상

System.Xml.XmlConvert.ToDateTime 메서드

XmlConvert.ToDateTimeOffset 메서드

System.ICloneable 인터페이스

적절한 형식을 반환하는 사용자 지정 메서드

System.Array.AsReadOnly 및 System.Collections.Generic.List<T>.AsReadOnly 메서드

다음과 같이 만들어진 ReadOnlyCollection 클래스의 새 인스턴스

new ReadOnlyCollection<string>(selectedList)
New ReadOnlyCollection(Of String)(selectedList)

형식을 변환하기 위한 확장 메서드

대부분의 경우 특별한 고려나 변환 없이 .NET Framework 형식과 Windows 런타임 형식을 함께 사용하여 Windows 스토어 앱을 개발합니다. 그러나 몇몇 경우에 .NET Framework는 .NET Framework 형식과 Windows 런타임 형식 간의 상호 작용을 단순화하는 확장 메서드를 제공합니다. 이러한 확장 메서드는 다음 클래스에 있습니다.

  • WindowsRuntimeStreamExtensions – 관리되는 스트림과 Windows 런타임의 스트림 간 변환에 사용됩니다.

  • WindowsRuntimeStorageExtensions – Windows 런타임 파일 및 폴더를 관리되는 스트림으로 여는 데 사용됩니다.

  • WindowsRuntimeBufferExtensions – IBuffer에서 변환하는 데 사용됩니다.

.NET Framework 및 Windows 런타임 네임스페이스

다음 단원에는 Windows 스토어 앱용 .NET 및 Windows 런타임에서 제공되는 네임스페이스가 기능별로 나열되어 있습니다.

BR230302.collapse_all(ko-kr,VS.120).gif컬렉션

BR230302.collapse_all(ko-kr,VS.120).gif코어

BR230302.collapse_all(ko-kr,VS.120).gif데이터 및 콘텐츠

BR230302.collapse_all(ko-kr,VS.120).gif장치

BR230302.collapse_all(ko-kr,VS.120).gif진단

BR230302.collapse_all(ko-kr,VS.120).gif파일 및 폴더

BR230302.collapse_all(ko-kr,VS.120).gif전역화

BR230302.collapse_all(ko-kr,VS.120).gif그래픽

BR230302.collapse_all(ko-kr,VS.120).gifMEF(Managed Extensibility Framework)

다음 네임스페이스를 설치하려면 Visual Studio 2012 이상에서 프로젝트를 열고 프로젝트 메뉴에서 NuGet 패키지 관리를 선택한 다음 Microsoft.Composition 패키지를 온라인으로 검색합니다.

BR230302.collapse_all(ko-kr,VS.120).gif미디어

BR230302.collapse_all(ko-kr,VS.120).gif네트워킹

BR230302.collapse_all(ko-kr,VS.120).gif프레젠테이션

BR230302.collapse_all(ko-kr,VS.120).gif인쇄

BR230302.collapse_all(ko-kr,VS.120).gif리플렉션

BR230302.collapse_all(ko-kr,VS.120).gif리소스

BR230302.collapse_all(ko-kr,VS.120).gif보안

BR230302.collapse_all(ko-kr,VS.120).gif소셜

BR230302.collapse_all(ko-kr,VS.120).gif스레딩

BR230302.collapse_all(ko-kr,VS.120).gifUI 자동화

BR230302.collapse_all(ko-kr,VS.120).gif사용자 상호 작용

BR230302.collapse_all(ko-kr,VS.120).gif언어 및 컴파일러

참고 항목

개념

Windows 스토어 앱용 .NET API

C# 및 Visual Basic으로 Windows Runtime 구성 요소 만들기

기타 리소스

Windows 스토어 앱 및 Windows 런타임에 대한 .NET Framework 지원