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

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

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

기본 사항The Basics

.NET Framework는 Windows 8.x 스토어 앱용 .NET.NET for Windows 8.x Store apps을 제공 하 고 Windows 런타임 자체를 지원 하 여 앞에서 설명한 세 가지 개발 시나리오를 지원 합니다.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 Runtime itself.

  • .NET Framework 및 Windows 런타임 네임 스페이스 는 .NET Framework 클래스 라이브러리를 간소화 된 뷰로 제공 하며 @no__t 1 앱 및 Windows 런타임 구성 요소를 만드는 데 사용할 수 있는 형식과 멤버만 포함 합니다..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 Runtime Components.

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

    • 이 간소화 된 API 집합은 .NET Framework 내에서 중복 되거나 Windows 런타임 기능이 중복 되는 기능을 제거 하 여 더욱 간소화 됩니다.This streamlined API set is simplified further by the removal of features that are duplicated within the .NET Framework or that duplicate Windows Runtime features. 예를 들어, 컬렉션 형식의 제네릭 버전만 포함 하 고 XML 문서 개체 모델은 Windows 런타임 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 Runtime XML API set.

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

    @No__t에 대 한 자세한 내용은 Windows 스토어 앱 용 .net 개요를 참조 하세요.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 선택 프로세스에 대 한 자세한 내용은 .NET 블로그에서 Metro 스타일 앱 용 .net 항목을 참조 하세요.To read about the API selection process, see the .NET for Metro style apps entry in the .NET blog.

  • Windows 런타임 은 @no__t 1 앱을 빌드하기 위한 사용자 인터페이스 요소를 제공 하 고 운영 체제 기능에 대 한 액세스를 제공 합니다.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 런타임에는 C# 및 Visual Basic 컴파일러가 .NET Framework 클래스 라이브러리를 사용 하는 방식으로 Windows 런타임를 사용할 수 있도록 하는 메타 데이터가 있습니다.Like the .NET Framework, the Windows Runtime has metadata that enables the C# and Visual Basic compilers to use the Windows Runtime the way they use the .NET Framework class libraries. .NET Framework를 사용 하면 몇 가지 차이점을 숨겨 Windows 런타임를 더 쉽게 사용할 수 있습니다.The .NET Framework makes it easier to use the Windows Runtime by hiding some differences:

    • 이벤트 처리기를 추가 및 제거 하는 패턴과 같은 .NET Framework와 Windows 런타임 간의 프로그래밍 패턴 차이는 숨겨집니다.Some differences in programming patterns between the .NET Framework and the 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. 이 문서의 뒷부분에 나오는 IDE에 표시되는 차이점에 설명 된 대로 .NET Framework 형식을 사용 하기만 하면 됩니다.You simply use the .NET Framework type, as discussed in Differences That Are Visible in the IDE, later in this article.

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

.NET Framework 및 Windows 런타임 참조 설명서The .NET Framework and the 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:

  • @No__t-0 인터페이스와 같은 항목에는 Visual Basic 또는 C#에 대 한 선언 구문이 없습니다.Topics such as the IIterable<T> interface don't have declaration syntax for Visual Basic or C#. 대신 구문 섹션 위에 노트가 표시 됩니다 (이 경우 ".NET: 이 인터페이스는 no__t-0T > ")로 표시 됩니다.Instead, a note appears above the syntax section (in this case, ".NET: This interface appears as System.Collections.Generic.IEnumerable<T>"). .NET Framework 및 Windows 런타임는 다른 인터페이스와 유사한 기능을 제공 하기 때문입니다.This is because the .NET Framework and the 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 런타임를 지원 합니다.Instead of forcing you to learn a different way of performing a common task, the .NET Framework supports the Windows Runtime by making your managed code appear to use the type you're familiar with. IDE에 IIterable 인터페이스가 표시 되지 않으므로 Windows 런타임 참조 설명서에서 해당 설명서를 직접 탐색 하는 방법에 대해서만 설명 합니다.You won't see the IIterable interface in the IDE, and therefore the only way you'll encounter it in the Windows Runtime reference documentation is by browsing through that documentation directly.

  • @No__t-0 설명서는 밀접 하 게 관련 된 문제를 보여 줍니다. 해당 매개 변수 형식이 언어 마다 다르게 표시 됩니다.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 런타임 형식을 숨깁니다.In the IDE, the .NET Framework hides the corresponding Windows Runtime types.

  • @No__t-0 구조와 같은 일부 경우에는 .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 런타임 구조에는 필드만 있습니다.In the Windows Runtime, structures have only fields. Windows 런타임 구조체에는 동일한 기능을 제공 하기 위해-0 @no__t 도우미 클래스가 필요 합니다.The 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 런타임 형식이 System.Object에서 파생 된 것으로 나타납니다.In the IDE, 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 런타임 형식을 Object로 캐스팅할 수 있는 경우 처럼 작동 합니다.These members operate as they would if the types actually inherited from Object, and Windows Runtime types can be cast to Object. 이 기능은 .NET Framework에서 Windows 런타임에 대해 제공 하는 지원의 일부입니다.This functionality is part of the support that the .NET Framework provides for the Windows Runtime. 그러나 Windows 런타임 참조 설명서에서 형식을 보면 해당 멤버가 표시 되지 않습니다.However, if you view the types in the 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 8.x 스토어Windows 8.x Store 앱에 C# 대 한 응용 프로그램 논리를 제공 하기 위해에서 작성 된 Windows 런타임 구성 요소를 사용 하는 등의 고급 프로그래밍 시나리오에서는 IDE와 설명서에서 이러한 차이가 명확해 집니다.In more advanced programming scenarios, such as using a 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. 구성 요소가 javascript에 대 한 IDictionary<int, string>을 반환 하 고 javascript 디버거에서이를 확인 하는 경우 JavaScript는 Windows 런타임 형식을 사용 하기 때문에 IMap<int, string>의 메서드를 볼 수 있습니다.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 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 런타임에서 IMap<K, V>IMapView<K, V>IKeyValuePair를 사용 하 여 반복 됩니다.In the 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 런타임 구성 요소를 만드는 방법 및 JavaScript와 함께 이러한 구성 요소를 사용 하는 방법을 보여 주는 연습은 및 Visual Basic에서 C# Windows 런타임 구성 요소 만들기를 참조 하세요.For more information about using the .NET Framework to create a 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 런타임 대신 .NET Framework 기본 형식이 표시 됩니다.To enable the natural use of the Windows Runtime in managed code, .NET Framework primitive types appear instead of 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 런타임의 기본 형식과 구조체에는 필드만 있습니다.By contrast, primitive types and structures in the 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 런타임 기본 형식 Int32, Int64, Single, Double, Boolean, String (유니코드 문자의 변경할 수 없는 컬렉션), Enum, UInt32, UInt64Guid의 경우 0 네임 스페이스에 있는 동일한 이름의 형식을 사용 합니다.For the 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 8.x 스토어Windows 8.x Store 앱에서 사용 하는 Windows 런타임 구성 요소인 경우에만이 표현의 증거가 표시 될 수 있습니다.As with interface types, the only time you might see evidence of this representation is when your .NET Framework project is a Windows Runtime component that is used by a Windows 8.x 스토어Windows 8.x Store app built using JavaScript.

관리 코드에 해당 하는 것으로 표시 되는 다른 기본, 일반적으로 사용 되는 Windows 런타임 형식 .NET Framework으로는 관리 코드에 System.DateTimeOffset 구조로 표시 되는 Windows.Foundation.DateTime 구조와 System.TimeSpan으로 표시 되는 Windows.Foundation.TimeSpan 구조가 있습니다. 구조체나.Other basic, commonly used 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 런타임 형식 대신 .NET Framework 형식이 코드에 표시 되기 때문에 사용자가 작업을 수행 해야 합니다.In a few cases, the fact that .NET Framework types appear in your code instead of Windows Runtime types requires action on your part. 예를 들어 Windows.Foundation.Uri 클래스는 .NET Framework 코드에서 System.Uri로 표시 됩니다.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. 따라서 Windows 런타임 메서드에 URI를 전달 하는 경우 절대 URI 인지 확인 해야 합니다.Therefore, when you pass a URI to a 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 런타임 구성 요소에 대해 지원 되는 시나리오는 다음과 같은 일반적인 원칙에 따라 다릅니다.The scenarios that are supported for managed Windows Runtime Components depend on the following general principles:

  • .NET Framework를 사용 하 여 빌드된 Windows 런타임 구성 요소는 다른 Windows Runtimelibraries와 뚜렷한 차이점이 없습니다.Windows Runtime Components that are built using the .NET Framework have no apparent differences from other Windows Runtimelibraries. 예를 들어 관리 코드를 사용 하 여 네이티브 Windows 런타임 구성 요소를 다시 구현 하는 경우 두 구성 요소는 outwardly 구분할 수 없습니다.For example, if you re-implement a native 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 런타임 구성 요소로 만들 이유가 없습니다.If your component will be used only with C# or Visual Basic, there's no reason to make it a Windows Runtime component. 대신 일반 .NET Framework 클래스 라이브러리로 지정 하는 경우 공용 API 화면을 Windows 런타임 형식으로 제한할 필요가 없습니다.If you make it an ordinary .NET Framework class library instead, you don't have to restrict its public API surface to Windows Runtime types.

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

  • 구성 요소의 형식은 Windows 런타임 형식에서 파생 될 수 있습니다.The types in your component can derive from 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.

    중요

    @No__t-0 및 .NET Framework 4.5부터 관리 되는 Windows 런타임 구성 요소의 모든 public 형식이 sealed 여야 합니다.Starting with Windows 8Windows 8 and the .NET Framework 4.5, all public types in a managed Windows Runtime component must be sealed. 다른 Windows 런타임 구성 요소의 형식은 해당 형식에서 파생 될 수 없습니다.A type in another 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 런타임 형식 이어야 합니다.All parameter and return types on the public types in your component must be Windows Runtime types (including the 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 런타임 구성 요소는 앱의 필수적인 부분 이므로 버전 특성을 제공 하는 것은 적합 하지 않습니다.In this scenario, the 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

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

기존 .NET Framework 앱의 재사용 가능한 애플리케이션 논리Reusable Application Logic from Existing .NET Framework Apps

기존 데스크톱 앱에서 관리 코드를 독립 실행형 Windows 런타임 구성 요소로 패키지할 수 있습니다.You can package managed code from your existing desktop apps as a standalone 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 @No__t-0 앱 및 Windows RuntimeComponents을 만드는 데 사용할 수 있는 .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 RuntimeComponents. (Windows 개발자 센터)(In the Windows Dev Center.)
또는 Visual Basic를 사용 하 C# 는 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.)
방법 (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 런타임 구성 요소를 만드는 방법 및 JavaScript를 사용 하 여 Windows 용으로 빌드된 @no__t 0 앱의 일부로 사용 하는 방법을 설명 하 고 Visual Studio와의 조합을 디버그 하는 방법을 설명 합니다.Describes how to create a 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 런타임에 대 한 참조 설명서입니다.The reference documentation for the Windows Runtime. (Windows 개발자 센터)(In the Windows Dev Center.)
Windows 런타임에 URI 전달Passing a URI to the Windows Runtime 관리 코드에서 Windows 런타임 URI를 전달 하는 경우 발생할 수 있는 문제와이를 방지 하는 방법을 설명 합니다.Describes an issue that can arise when you pass a URI from managed code to the Windows Runtime, and how to avoid it.