Windows 스토어 앱 및 Windows 런타임에 대한 .NET Framework 지원.NET Framework Support for Windows Store Apps and Windows Runtime

.NET Framework 4.5.NET Framework 4.5Windows 런타임Windows Runtime와 함께 다양한 소프트웨어 개발 시나리오를 지원합니다.The .NET Framework 4.5.NET Framework 4.5 supports a number of software development scenarios with the Windows 런타임Windows Runtime. 이러한 시나리오는 다음 세 가지 범주로 구분됩니다.These scenarios fall into three categories:

이 항목에서는 .NET Framework에서 모든 세 가지 범주에 대해 제공하는 지원을 간략하게 설명하고 Windows 런타임Windows Runtime 구성 요소에 대한 시나리오를 설명합니다.This topic outlines the support that the .NET Framework provides for all three categories, and describes the scenarios for Windows 런타임Windows Runtime Components. 첫 번째 섹션에서는 .NET Framework와 Windows 런타임Windows Runtime 사이의 관계에 대한 기본 정보가 포함되어 있으며 도움말 시스템 및 IDE에서 발생할 수 있는 일부 의문 사항을 설명합니다.The first section includes basic information about the relationship between the .NET Framework and the Windows 런타임Windows Runtime, and explains some oddities you might encounter in the Help system and the IDE. 합니다 섹션을 두 번째 개발 하기 위한 시나리오에 설명 Windows 런타임Windows Runtime 구성 요소입니다.The second section discusses scenarios for developing Windows 런타임Windows Runtime Components.

기본 사항The Basics

.NET Framework는 Windows 8.x 스토어 앱용 .NET.NET for Windows 8.x Store apps을 제공하고 Windows 런타임Windows Runtime를 자체 지원하여 앞부분에서 설명한 세 가지 개발 시나리오를 지원합니다.The .NET Framework supports the three development scenarios listed earlier by providing Windows 8.x 스토어 앱용 .NET.NET for Windows 8.x Store apps, and by supporting the Windows 런타임Windows Runtime itself.

  • .NET framework 및 Windows Runtime 네임 스페이스 .NET Framework 클래스 라이브러리의 간결한 뷰를 제공 하 고는 형식 및 멤버를 만드는 데 사용할 수 있습니다 Windows 8.x 스토어Windows 8.x Store 앱 및 Windows 런타임Windows Runtime 구성 요소입니다..NET Framework and Windows Runtime namespaces provides a streamlined view of the .NET Framework class libraries and include only the types and members you can use to create Windows 8.x 스토어Windows 8.x Store apps and Windows 런타임Windows Runtime Components.

    • Visual Studio (Visual Studio 2012 이상 버전) 개발에 사용 하는 경우는 Windows 8.x 스토어Windows 8.x Store 앱 또는 Windows 런타임Windows Runtime 구성 요소 참조 어셈블리 집합으로 관련 형식 및 멤버만 표시 되도록 합니다.When you use Visual Studio (Visual Studio 2012 or later) to develop a Windows 8.x 스토어Windows 8.x Store app or a Windows 런타임Windows Runtime component, a set of reference assemblies ensures that you see only the relevant types and members.

    • 이 간소화된 API 집합은 .NET Framework 내에서 복제되었거나 Windows 런타임Windows Runtime 기능을 복제하는 기능을 제거하여 더욱 단순화되었습니다.This streamlined API set is simplified further by the removal of features that are duplicated within the .NET Framework or that duplicate Windows 런타임Windows Runtime features. 예를 들어, 컬렉션 형식의 제네릭 버전만 포함하고, XML 문서 개체 모델은 Windows 런타임Windows Runtime XML API 집합을 위해 제거됩니다.For example, it contains only the generic versions of collection types, and the XML document object model is eliminated in favor of the Windows 런타임Windows Runtime XML API set.

    • Windows 런타임Windows Runtime를 관리 코드에서 쉽게 호출할 수 있기 때문에 단순히 운영 체제 API를 래핑하는 기능 또한 제거됩니다.Features that simply wrap the operating system API are also removed, because the Windows 런타임Windows Runtime is easy to call from managed code.

    에 대 한 자세한 합니다 Windows 8.x 스토어 앱용 .NET.NET for Windows 8.x Store apps를 참조 합니다 .NET Windows 스토어 용 앱 개요.To read more about the Windows 8.x 스토어 앱용 .NET.NET for Windows 8.x Store apps, see the .NET for Windows Store apps overview. API 선택 프로세스에 대 한 자세한 내용은 참조는 Metro 스타일 앱 용.NET .NET 블로그의 항목입니다.To read about the API selection process, see the .NET for Metro style apps entry in the .NET blog.

  • Windows 런타임 건물에 대 한 사용자 인터페이스 요소를 제공 Windows 8.x 스토어Windows 8.x Store 응용 프로그램, 운영 체제 기능에 대 한 액세스를 제공 합니다.The Windows Runtime provides the user interface elements for building Windows 8.x 스토어Windows 8.x Store apps, and provides access to operating system features. .NET Framework와 같이 Windows 런타임Windows Runtime에 있는 메타데이터를 사용하여 C# 및 Visual Basic 컴파일러를 통해 .NET Framework 클래스 라이브러리를 사용하는 방식과 같이 Windows 런타임Windows Runtime를 사용할 수 있습니다.Like the .NET Framework, the Windows 런타임Windows Runtime has metadata that enables the C# and Visual Basic compilers to use the Windows 런타임Windows Runtime the way they use the .NET Framework class libraries. .NET Framework에서는 다음과 같이 일부 차이점을 숨겨 Windows 런타임Windows Runtime를 좀 더 쉽게 사용할 수 있습니다.The .NET Framework makes it easier to use the Windows 런타임Windows Runtime by hiding some differences:

    • .NET Framework 및 Windows 런타임Windows Runtime 사이의 프로그래밍 패턴(예: 이벤트 처리기를 추가 및 제거하기 위한 패턴)의 일부 차이점이 숨겨져 있습니다.Some differences in programming patterns between the .NET Framework and the Windows 런타임Windows Runtime, such as the pattern for adding and removing event handlers, are hidden. .NET Framework 패턴을 그대로 사용하면 됩니다.You simply use the .NET Framework pattern.

    • 자주 사용되는 형식(예: 기본 형식 및 컬렉션)의 일부 차이점이 숨겨져 있습니다.Some differences in commonly used types (for example, primitive types and collections) are hidden. 에 설명 된 대로 단순히.NET Framework 형식에 사용할 차이점 표시 되는 IDE에서이 문서의 뒷부분에 나오는.You simply use the .NET Framework type, as discussed in Differences That Are Visible in the IDE, later in this article.

대부분의 경우 Windows 런타임Windows Runtime에 대한 .NET Framework 지원이 명백합니다.Most of the time, .NET Framework support for the Windows 런타임Windows Runtime is transparent. 다음 섹션에서는 관리 코드와 Windows 런타임Windows Runtime 사이의 일부 명백한 차이점을 설명합니다.The next section discusses some of the apparent differences between managed code and the Windows 런타임Windows Runtime.

.NET Framework 및 Windows 런타임Windows Runtime 참조 설명서The .NET Framework and the Windows 런타임Windows Runtime Reference Documentation

Windows 런타임 및.NET Framework 설명서 집합 구분 됩니다.The Windows Runtime and the .NET Framework documentation sets are separate. 형식이나 멤버에 도움말을 표시하기 위해 F1 키를 누르면, 적절한 집합의 참조 설명서가 표시됩니다.If you press F1 to display Help on a type or member, reference documentation from the appropriate set is displayed. 그러나 탐색할 경우 합니다 Windows 런타임 참조 같이 난해해 보이는 예제를 발생할 수 있습니다.However, if you browse through the Windows Runtime reference you might encounter examples that seem puzzling:

  • 와 같은 항목을 IIterable<T> 인터페이스는 Visual Basic 또는 C# 용 선언 구문이 없는 합니다.Topics such as the IIterable<T> interface don't have declaration syntax for Visual Basic or C#. 구문 섹션 위에 메모가 표시 하는 대신 (이 경우 ".NET: 이 인터페이스 System.Collections.Generic.IEnumerable 요소로<T > ").Instead, a note appears above the syntax section (in this case, ".NET: This interface appears as System.Collections.Generic.IEnumerable<T>"). 이는 .NET Framework와 Windows 런타임Windows Runtime가 서로 다른 인터페이스로 비슷한 기능을 제공하기 때문입니다.This is because the .NET Framework and the Windows 런타임Windows Runtime provide similar functionality with different interfaces. 게다가 동작의 차이점도 있습니다. 예를 들면 IIterableFirst 메서드 대신에 GetEnumerator 메서드를 사용하여 열거자를 반환합니다.In addition, there are behavioral differences: IIterable has a First method instead of a GetEnumerator method to return the enumerator. 일반적인 작업을 수행하는 다른 방법을 배우도록 강요하는 대신, .NET Framework는 관리 코드가 익숙한 형식을 사용하는 것처럼 보이게 하여 Windows 런타임Windows Runtime를 지원합니다.Instead of forcing you to learn a different way of performing a common task, the .NET Framework supports the Windows 런타임Windows Runtime by making your managed code appear to use the type you're familiar with. IDE에서 IIterable 인터페이스를 볼 수 없으므로 Windows 런타임Windows Runtime 참조 문서에서 확인할 수 있는 유일한 방법은 해당 문서를 직접 살펴보는 것입니다.You won't see the IIterable interface in the IDE, and therefore the only way you'll encounter it in the Windows 런타임Windows Runtime reference documentation is by browsing through that documentation directly.

  • SyndicationFeed(String, String, Uri) 설명서는 밀접 하 게 관련 된 문제를 보여 줍니다. 해당 매개 변수 형식이 언어 마다 다른 것으로 나타납니다.The SyndicationFeed(String, String, Uri) documentation illustrates a closely related issue: Its parameter types appear to be different for different languages. C# 및 Visual Basic의 경우 매개 변수 형식은 System.StringSystem.Uri입니다.For C# and Visual Basic, the parameter types are System.String and System.Uri. 즉, .NET Framework에 자체 StringUri 형식이 있고, 이같이 자주 사용되는 형식에 대해 다른 작업 방식을 배우도록 .NET Framework 사용자를 강요하는 것이 적합하지 않기 때문입니다.Again, this is because the .NET Framework has its own String and Uri types, and for such commonly used types it doesn't make sense to force .NET Framework users to learn a different way of doing things. IDE에서 .NET Framework는 해당 Windows 런타임Windows Runtime 형식을 숨깁니다.In the IDE, the .NET Framework hides the corresponding Windows 런타임Windows Runtime types.

  • 몇 가지 경우에 같은 GridLength 구조를.NET Framework 이름은 같지만 더 많은 기능을 사용 하 여 형식을 제공 합니다.In a few cases, such as the GridLength structure, the .NET Framework provides a type with the same name but more functionality. 예를 들어, 생성자 및 속성 항목 집합은 GridLength와 연관되어 있지만, 멤버를 관리 코드에서만 사용할 수 있기 때문에 Visual Basic 및 C#용 구문 블록만 있습니다.For example, a set of constructor and property topics are associated with GridLength, but they have syntax blocks only for Visual Basic and C# because the members are available only in managed code. Windows 런타임Windows Runtime에서 구조체는 필드만 가지고 있습니다.In the Windows 런타임Windows Runtime, structures have only fields. 합니다 Windows 런타임Windows Runtime 구조체에 도우미 클래스인 필요 GridLengthHelper, 해당 기능을 제공 합니다.The Windows 런타임Windows Runtime structure requires a helper class, GridLengthHelper, to provide equivalent functionality. 관리 코드를 작성할 때 IDE에서 도우미 클래스를 볼 수 없습니다.You won't see that helper class in the IDE when you're writing managed code.

  • IDE에서 Windows 런타임Windows Runtime 형식은 System.Object에서 파생되어 나타납니다.In the IDE, Windows 런타임Windows Runtime types appear to derive from System.Object. Object과 같은 Object.ToString에서 상속된 멤버를 가진 것으로 나타납니다.They appear to have members inherited from Object, such as Object.ToString. 이러한 멤버는 형식이 실제로 Object에서 상속된 것처럼 작동하고, Windows 런타임Windows Runtime 형식을 Object로 캐스팅할 수 있습니다.These members operate as they would if the types actually inherited from Object, and Windows 런타임Windows Runtime types can be cast to Object. 이 기능은 Windows 런타임Windows Runtime에 대해 .NET Framework가 제공하는 지원의 일부입니다.This functionality is part of the support that the .NET Framework provides for the Windows 런타임Windows Runtime. 그러나 Windows 런타임Windows Runtime 참조 문서에서 형식을 볼 경우 이러한 멤버는 표시되지 않습니다.However, if you view the types in the Windows 런타임Windows Runtime reference documentation, no such members appear. 이 상속된 명백한 멤버에 대한 문서는 System.Object 참조 문서에서 제공합니다.The documentation for these apparent inherited members is provided by the System.Object reference documentation.

IDE에서 표시되는 차이점Differences That Are Visible in the IDE

더 많은 고급 프로그래밍 시나리오(예: JavaScript를 사용하여 Windows용으로 빌드된 Windows 런타임Windows Runtime 앱에 대해 응용 프로그램 논리를 제공하는 데 C#에서 작성된 Windows 8.x 스토어Windows 8.x Store 구성 요소 사용)에서 이러한 차이점은 IDE와 문서 모두에서 명백합니다.In more advanced programming scenarios, such as using a Windows 런타임Windows Runtime component written in C# to provide the application logic for a Windows 8.x 스토어Windows 8.x Store app built for Windows using JavaScript, such differences are apparent in the IDE as well as in the documentation. 구성 요소가 IDictionary<int, string>을 JavaScript로 반환하고 이를 JavaScript 디버거에서 살펴보면, JavaScript가 IMap<int, string> 형식을 사용하므로 Windows 런타임Windows Runtime의 메서드를 볼 수 있습니다.When your component returns an IDictionary<int, string> to JavaScript, and you look at it in the JavaScript debugger, you'll see the methods of IMap<int, string> because JavaScript uses the Windows 런타임Windows Runtime type. 두 언어에서 다르게 나타나는 일반적으로 사용되는 컬렉션 형식의 일부는 다음 표에 표시됩니다.Some commonly used collection types that appear differently in the two languages are shown in the following table:

Windows 런타임Windows Runtime 형식type 해당 .NET Framework 형식Corresponding .NET Framework type
IIterable<T> IEnumerable<T>
IIterator<T> IEnumerator<T>
IVector<T> IList<T>
IVectorView<T> IReadOnlyList<T>
IMap<K, V> IDictionary<TKey, TValue>
IMapView<K, V> IReadOnlyDictionary<TKey, TValue>
IBindableIterable IEnumerable
IBindableVector IList
Windows.UI.Xaml.Data.INotifyPropertyChanged System.ComponentModel.INotifyPropertyChanged
Windows.UI.Xaml.Data.PropertyChangedEventHandler System.ComponentModel.PropertyChangedEventHandler
Windows.UI.Xaml.Data.PropertyChangedEventArgs System.ComponentModel.PropertyChangedEventArgs

Windows 런타임Windows Runtime에서 IMap<K, V>IMapView<K, V>IKeyValuePair를 사용하며 반복됩니다.In the Windows 런타임Windows Runtime, IMap<K, V> and IMapView<K, V> are iterated using IKeyValuePair. 관리 코드에 전달되면 이들은 IDictionary<TKey, TValue>IReadOnlyDictionary<TKey, TValue>로 표시되므로 당연히 System.Collections.Generic.KeyValuePair<TKey, TValue>를 사용하여 열거해야 합니다.When you pass them to managed code, they appear as IDictionary<TKey, TValue> and IReadOnlyDictionary<TKey, TValue>, so naturally you use System.Collections.Generic.KeyValuePair<TKey, TValue> to enumerate them.

인터페이스가 관리 코드에 표시되는 방식은 이러한 인터페이스를 구현하는 형식이 표시되는 방식에 영향을 미칩니다.The way interfaces appear in managed code affects the way types that implement these interfaces appear. 예를 들어 PropertySet 클래스는 관리되는 코드에 IDictionary<TKey, TValue>로 나타나는 IMap<K, V>를 구현합니다.For example, the PropertySet class implements IMap<K, V>, which appears in managed code as IDictionary<TKey, TValue>. PropertySet에서 IMap<K, V> 대신 IDictionary<TKey, TValue>가 구현된 것으로 나타나므로 관리되는 코드에서는 .NET Framework 사전의 Add 메서드처럼 동작하는 Add 메서드가 있는 것으로 나타납니다.PropertySet appears as if it implemented IDictionary<TKey, TValue> instead of IMap<K, V>, so in managed code it appears to have an Add method, which behaves like the Add method on .NET Framework dictionaries. 이 클래스는 Insert 메서드를 가지고 있는 것으로 보이지 않습니다.It doesn't appear to have an Insert method.

만들려면.NET Framework를 사용 하는 방법에 대 한 자세한 내용은 Windows 런타임Windows Runtime 구성 요소 및 JavaScript를 사용 하 여 이러한 구성 요소를 사용 하는 방법을 보여 주는 연습 Creating Windows Runtime Components in C# 및 Visual Basic합니다.For more information about using the .NET Framework to create a Windows 런타임Windows Runtime component, and a walkthrough that shows how to use such a component with JavaScript, see Creating Windows Runtime Components in C# and Visual Basic.

기본 형식Primitive Types

관리 코드에서 Windows 런타임Windows Runtime를 자연스럽게 사용할 수 있도록 코드에서 Windows 런타임Windows Runtime 기본 형식 대신 .NET Framework 기본 형식이 나타납니다.To enable the natural use of the Windows 런타임Windows Runtime in managed code, .NET Framework primitive types appear instead of Windows 런타임Windows Runtime primitive types in your code. .NET Framework에서 Int32 구조체와 같은 기본 형식에는 Int32.TryParse 메서드 등 유용한 속성 및 메서드가 많이 포함되어 있습니다.In the .NET Framework, primitive types like the Int32 structure have many useful properties and methods, such as the Int32.TryParse method. 반면에 Windows 런타임Windows Runtime의 기본 형식과 구조체에는 필드만 포함되어 있습니다.By contrast, primitive types and structures in the Windows 런타임Windows Runtime have only fields. 관리 코드에서 기본 형식을 사용할 때 .NET Framework 형식으로 표시되고, 평소와 같이 .NET Framework 형식의 속성 및 메서드를 사용할 수 있습니다.When you use primitives in managed code, they appear to be .NET Framework types, and you can use the properties and methods of the .NET Framework types as you normally would. 다음 목록은 요약을 제공합니다.The following list provides a summary:

  • Windows 런타임Windows Runtime 기본 형식인 Int32, Int64, Single, Double, Boolean, String(변경할 수 없는 유니코드 문자 컬렉션), Enum, UInt32, UInt64Guid의 경우 System 네임스페이스에 있는 동일한 이름의 형식을 사용합니다.For the Windows 런타임Windows Runtime primitives Int32, Int64, Single, Double, Boolean, String (an immutable collection of Unicode characters), Enum, UInt32, UInt64, and Guid, use the type of the same name in the System namespace.

  • UInt8에 대해 System.Byte를 사용합니다.For UInt8, use System.Byte.

  • Char16에 대해 System.Char를 사용합니다.For Char16, use System.Char.

  • IInspectable 인터페이스에 대해 System.Object를 사용합니다.For the IInspectable interface, use System.Object.

  • HRESULT에 대해 하나의 System.Int32 멤버가 있는 구조체를 사용합니다.For HRESULT, use a structure with one System.Int32 member.

인터페이스 형식에서처럼, .NET Framework 프로젝트가 JavaScript를 사용하여 빌드된 Windows 런타임Windows Runtime 앱에서 사용하는 Windows 8.x 스토어Windows 8.x Store 구성 요소일 때에만 이 표현의 증거를 볼 수 있습니다.As with interface types, the only time you might see evidence of this representation is when your .NET Framework project is a Windows 런타임Windows Runtime component that is used by a Windows 8.x 스토어Windows 8.x Store app built using JavaScript.

관리 코드에 해당 .NET Framework 형식으로 표시되는 일반적으로 사용되는 다른 기본 Windows 런타임Windows Runtime 형식에는 Windows.Foundation.DateTime 구조체(관리 코드에 System.DateTimeOffset 구조체로 표시됨) 및 Windows.Foundation.TimeSpan 구조체(System.TimeSpan 구조체로 표시됨)가 포함됩니다.Other basic, commonly used Windows 런타임Windows Runtime types that appear in managed code as their .NET Framework equivalents include the Windows.Foundation.DateTime structure, which appears in managed code as the System.DateTimeOffset structure, and the Windows.Foundation.TimeSpan structure, which appears as the System.TimeSpan structure.

기타 차이점Other Differences

일부의 경우 Windows 런타임Windows Runtime 형식 대신 .NET Framework 형식이 코드에 나타나는 사실로 보아 사용자가 수행해야 할 작업이 있습니다.In a few cases, the fact that .NET Framework types appear in your code instead of Windows 런타임Windows Runtime types requires action on your part. 예를 들어 합니다 Windows.Foundation.Uri 으로 표시 되는 클래스 System.Uri .NET Framework 코드에서.For example, the Windows.Foundation.Uri class appears as System.Uri in .NET Framework code. System.Uri 상대 URI를 사용할 수 있지만 Windows.Foundation.Uri 는 절대 URI가 필요 합니다.System.Uri allows a relative URI, but Windows.Foundation.Uri requires an absolute URI. 따라서 URI를 Windows 런타임Windows Runtime 메서드로 전달할 때 URI가 절대적인지 확인해야 합니다.Therefore, when you pass a URI to a Windows 런타임Windows Runtime method, you must ensure that it's absolute. (참조 Windows 런타임에 URI 전달.)(See Passing a URI to the Windows Runtime.)

Windows 런타임 구성 요소를 개발하기 위한 시나리오Scenarios for Developing Windows Runtime Components

관리 Windows 런타임Windows Runtime 구성 요소에 대해 지원되는 시나리오는 다음 일반 원칙에 따라 다릅니다.The scenarios that are supported for managed Windows 런타임Windows Runtime Components depend on the following general principles:

  • .NET Framework를 사용하여 빌드된 Windows 런타임Windows Runtime 구성 요소는 다른 Windows 런타임Windows Runtime 라이브러리와 명백한 차이점이 없습니다.Windows 런타임Windows Runtime Components that are built using the .NET Framework have no apparent differences from other Windows 런타임Windows Runtimelibraries. 예를 들어 관리 코드를 사용하여 네이티브 Windows 런타임Windows Runtime 구성 요소를 다시 구현하는 경우, 두 구성 요소는 외부적으로 구별할 수 없습니다.For example, if you re-implement a native Windows 런타임Windows Runtime component by using managed code, the two components are outwardly indistinguishable. 코드 그 자체가 관리 코드이더라도 구성 요소가 관리 코드로 작성되었다는 사실은 그것을 사용하는 코드에 표시되지 않습니다.The fact that your component is written in managed code is invisible to the code that uses it, even if that code is itself managed code. 그러나 내부적으로 구성 요소는 실제 관리 코드이며 CLR(공용 언어 런타임)에서 실행됩니다.However, internally, your component is true managed code and runs on the common language runtime (CLR).

  • 구성 요소는 응용 프로그램 논리, Windows 8.x 스토어Windows 8.x Store UI 컨트롤 또는 둘 모두를 구현하는 형식을 포함할 수 있습니다.Components can contain types that implement application logic, Windows 8.x 스토어Windows 8.x Store UI controls, or both.

    참고

    UI 요소를 응용 프로그램 논리에서 분리하는 것이 좋습니다.It's good practice to separate UI elements from application logic. 또한 JavaScript 및 HTML을 사용하여 Windows용으로 빌드된 Windows 8.x 스토어Windows 8.x Store 앱에서 Windows 8.x 스토어Windows 8.x Store UI 컨트롤을 사용할 수 없습니다.Also, you can't use Windows 8.x 스토어Windows 8.x Store UI controls in a Windows 8.x 스토어Windows 8.x Store app built for Windows using JavaScript and HTML.

  • 구성 요소는 Windows 8.x 스토어Windows 8.x Store 앱을 위한 Visual Studio 솔루션 내의 프로젝트이거나 여러 솔루션에 추가할 수 있는 재사용 가능한 구성 요소일 수 있습니다.A component can be a project within a Visual Studio solution for a Windows 8.x 스토어Windows 8.x Store app, or a reusable component that you can add to multiple solutions.

    참고

    구성 요소가 C# 또는 Visual Basic에서만 사용될 경우 Windows 런타임Windows Runtime 구성 요소로 만들 필요가 없습니다.If your component will be used only with C# or Visual Basic, there's no reason to make it a Windows 런타임Windows Runtime component. 대신 일반적인 .NET Framework 클래스 라이브러리로 만들 경우 Windows 런타임Windows Runtime 형식에 대해 공용 API 화면을 제한할 필요가 없습니다.If you make it an ordinary .NET Framework class library instead, you don't have to restrict its public API surface to Windows 런타임Windows Runtime types.

  • 사용 하 여 다양 한 재사용 가능한 구성 요소를 해제할 수 있습니다 합니다 Windows 런타임Windows Runtime VersionAttribute 형식 (및 형식 내 멤버)를 식별 하기 위한 특성 서로 다른 버전에 추가 되었습니다.You can release versions of reusable components by using the Windows 런타임Windows Runtime VersionAttribute attribute to identify which types (and which members within a type) were added in different versions.

  • 구성 요소의 형식은 Windows 런타임Windows Runtime 형식에서 파생될 수 있습니다.The types in your component can derive from Windows 런타임Windows Runtime types. 컨트롤의 기본 컨트롤 형식에서 파생 될 수 있습니다 합니다 Windows.UI.Xaml.Controls.Primitives 네임 스페이스 또는 좀 더 완료 된 컨트롤 같은 Button합니다.Controls can derive from the primitive control types in the Windows.UI.Xaml.Controls.Primitives namespace or from more finished controls such as Button.

    중요

    Windows 8Windows 8.NET Framework 4.5.NET Framework 4.5부터 관리 Windows 런타임Windows Runtime 구성 요소의 모든 공용 형식은 봉인되어야 합니다.Starting with Windows 8Windows 8 and the .NET Framework 4.5.NET Framework 4.5, all public types in a managed Windows 런타임Windows Runtime component must be sealed. 여기서 다른 Windows 런타임Windows Runtime 구성 요소의 형식은 파생될 수 없습니다.A type in another Windows 런타임Windows Runtime component can't derive from them. 구성 요소에서 다형 동작을 제공하려면 인터페이스를 만들어 다형 형식에서 구현할 수 있습니다.If you want to provide polymorphic behavior in your component, you can create an interface and implement it in the polymorphic types.

  • 구성 요소에서 공용 형식에 대한 모든 매개 변수 및 반환 형식은 Windows 런타임Windows Runtime 형식(구성 요소가 정의하는 Windows 런타임Windows Runtime 형식 포함)이어야 합니다.All parameter and return types on the public types in your component must be Windows 런타임Windows Runtime types (including the Windows 런타임Windows Runtime types that your component defines).

다음 섹션에서는 일반적인 시나리오의 예제를 제공합니다.The following sections provide examples of common scenarios.

JavaScript을 사용한 Windows 8.x 스토어Windows 8.x Store 앱에 대한 응용 프로그램 논리Application Logic for a Windows 8.x 스토어Windows 8.x Store App with JavaScript

JavaScript를 사용하여 Windows용으로 Windows 8.x 스토어Windows 8.x Store 앱을 개발할 때 관리 코드에서 응용 프로그램 논리의 일부가 더 잘 수행되거나 개발하기 더 쉬울 수도 있습니다.When you develop a Windows 8.x 스토어Windows 8.x Store app for Windows using JavaScript, you might find that some parts of the application logic perform better in managed code, or are easier to develop. JavaScript는 .NET Framework 클래스 라이브러리를 직접 사용할 수 없지만, 이 클래스 라이브러리를 .WinMD 파일로 만들 수 있습니다.JavaScript can't use .NET Framework class libraries directly, but you can make the class library a .WinMD file. 이 시나리오에서 Windows 런타임Windows Runtime 구성 요소는 앱의 핵심 부분이므로 버전 특성을 제공하는 것은 바람직하지 않습니다.In this scenario, the Windows 런타임Windows Runtime component is an integral part of the app, so it doesn't make sense to provide version attributes.

다시 사용 가능한 Windows 8.x 스토어Windows 8.x Store UI 컨트롤Reusable Windows 8.x 스토어Windows 8.x Store UI Controls

관련된 UI 컨트롤 집합을 재사용 가능한 Windows 런타임Windows Runtime 구성 요소에 패키지할 수 있습니다.You can package a set of related UI controls in a reusable Windows 런타임Windows Runtime component. 구성 요소는 직접 시장에 출시하거나 사용자가 만든 앱의 요소로서 사용할 수 있습니다.The component can be marketed on its own or used as an element in the apps you create. 이 시나리오에서 사용 하는 것이 있도록를 Windows 런타임Windows Runtime VersionAttribute 호환성을 개선 하기 위해 특성입니다.In this scenario, it makes sense to use the Windows 런타임Windows Runtime VersionAttribute attribute to improve compatibility.

기존 .NET Framework 앱의 재사용 가능한 응용 프로그램 논리Reusable Application Logic from Existing .NET Framework Apps

관리 코드를 기존 데스크톱 앱에서 독립 실행형 Windows 런타임Windows Runtime 구성 요소로 패키지할 수 있습니다.You can package managed code from your existing desktop apps as a standalone Windows 런타임Windows Runtime component. 따라서 C++ 또는 JavaScript를 사용하여 빌드한 Windows 8.x 스토어Windows 8.x Store 앱 및 C# 또는 Visual Basic을 사용하여 빌드한 Windows 8.x 스토어Windows 8.x Store 앱 모두에서 구성 요소를 사용할 수 있습니다.This enables you to use the component in Windows 8.x 스토어Windows 8.x Store apps built using C++ or JavaScript, as well as in Windows 8.x 스토어Windows 8.x Store apps built using C# or Visual Basic. 코드를 재사용하는 시나리오가 여러 개일 경우 버전 관리는 옵션입니다.Versioning is an option if there are multiple reuse scenarios for the code.

제목Title 설명Description
Windows 스토어 앱용 .NET 개요.NET for Windows Store apps overview Windows 8.x 스토어Windows 8.x Store 앱 및 Windows 런타임Windows Runtime 구성 요소를 만드는 데 사용할 수 있는 .NET Framework 형식 및 멤버를 설명합니다.Describes the .NET Framework types and members that you can use to create Windows 8.x 스토어Windows 8.x Store apps and Windows 런타임Windows RuntimeComponents. (Windows 개발자 센터)(In the Windows Dev Center.)
C# 또는 Visual Basic을 사용 하 여 Windows 스토어 앱 용 로드맵Roadmap for Windows Store apps using C# or Visual Basic C# 또는 Visual Basic을 사용하여 Windows 8.x 스토어Windows 8.x Store 앱을 개발하기 시작할 때 도움을 주기 위해 다양한 퀵 스타트 항목, 지침 및 모범 사례를 포함한 주요 리소스를 제공합니다.Provides key resources to help you get started developing Windows 8.x 스토어Windows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (Windows 개발자 센터)(In the Windows Dev Center.)
방법 tos (XAML)How tos (XAML) C# 또는 Visual Basic을 사용하여 Windows 8.x 스토어Windows 8.x Store 앱을 개발하기 시작할 때 도움을 주기 위해 다양한 퀵 스타트 항목, 지침 및 모범 사례를 포함한 주요 리소스를 제공합니다.Provides key resources to help you get started developing Windows 8.x 스토어Windows 8.x Store apps by using C# or Visual Basic, including many Quickstart topics, guidelines, and best practices. (Windows 개발자 센터)(In the Windows Dev Center.)
C# 및 Visual Basic으로 Windows 런타임 구성 요소 만들기Creating Windows Runtime Components in C# and Visual Basic .NET Framework를 사용하여 Windows 런타임Windows Runtime 구성 요소를 만드는 방법, JavaScript를 사용하여 Windows용으로 빌드한 Windows 8.x 스토어Windows 8.x Store 앱의 일부로 사용하는 방법 및 Visual Studio로 조합을 디버깅하는 방법을 설명합니다.Describes how to create a Windows 런타임Windows Runtime component using the .NET Framework, explains how to use it as part of a Windows 8.x 스토어Windows 8.x Store app built for Windows using JavaScript, and describes how to debug the combination with Visual Studio. (Windows 개발자 센터)(In the Windows Dev Center.)
Windows 런타임 참조Windows Runtime reference Windows 런타임Windows Runtime에 대한 참조 문서입니다.The reference documentation for the Windows 런타임Windows Runtime. (Windows 개발자 센터)(In the Windows Dev Center.)
Windows 런타임에 URI 전달Passing a URI to the Windows Runtime 관리 코드에서 URI를 Windows 런타임Windows Runtime로 전달할 때 발생할 수 있는 문제 및 이러한 문제를 방지하는 방법을 설명합니다.Describes an issue that can arise when you pass a URI from managed code to the Windows 런타임Windows Runtime, and how to avoid it.