윈도 런타임
Windows Runtime기타 이름 | WinRT |
---|---|
개발자 | 마이크로소프트 |
초기 릴리즈 | 2011년 9월, | 전(
기입처 | C++ |
엔진 | 컴포넌트 객체 모델 |
운영 체제 | Microsoft Windows |
유형 | 응용 프로그램 바이너리 인터페이스, 응용 프로그램 프로그래밍 인터페이스 |
웹 사이트 | https://docs.microsoft.com/en-us/windows/apps/ |
Windows Runtime(WinRT)은 플랫폼에 구애받지 않는 컴포넌트 및 애플리케이션 아키텍처로 2012년 Windows 8 및 Windows Server 2012에서 처음 도입되었습니다.C++에서 구현되어 C++에서의 개발을 공식적으로 지원합니다(C++/Win 경유).RT, C++/CX 또는 WRL), Rust/WinRT, Python/WinRT, JavaScript-TypeScript 및 관리 코드 언어 C# 및 Visual Basic.NET(VB)네트워크)
WinRT는 전통적인 의미의 런타임이 아니라 API를 여러 언어에서 소비할 수 있도록 COM에 기반한 언어 독립적인 애플리케이션 바이너리 인터페이스입니다.다만, 타입 [1]액티베이션등의 완전한 런타임에 의해서 통상 제공되는 특정의 서비스를 제공하고 있습니다.Windows Runtime을 사용하는 앱은 샌드박스 환경에서 실행되어 보안과 안정성을 높일 수 있으며 x86과 [2][3]ARM을 기본적으로 지원할 수 있습니다.WinRT 컴포넌트는 네이티브 언어, 관리 언어, 스크립트 언어 등 여러 언어 및 API 간의 상호 운용성을 염두에 두고 설계되었습니다.WinRT ABI를 사용하는 Windows에 의해 제공되는 빌트인 API는 일반적으로 WinRT API로 알려져 있습니다.단, WinRT ABI는 누구나 자신의 API에 사용할 수 있습니다.
테크놀로지
WinRT는 프로그래밍 언어 C++[4]로 구현되며 [4]설계상 객체 지향입니다.기본 기술인 Windows API(Win32 API)는 대부분 [5]C 언어로 작성됩니다.Component Object Model(COM; 컴포넌트 오브젝트 모델)에 기반한 비관리 응용 프로그램 바이너리 인터페이스로 COM과 마찬가지로 여러 언어에서 인터페이스를 사용할 수 있습니다.단, API 정의는 다음 위치에 저장됩니다..winmd
파일은 ECMA 335 메타데이터 형식으로 인코딩되어 있습니다.또한 NET Framework는 몇 가지 수정을 가하여 사용합니다.네이티브 코드로 구현된 WinRT 컴포넌트의 경우 메타데이터 파일에는 메서드, 클래스, 인터페이스 및 열거의 정의만 포함되어 있으며 구현은 별도의 [6][7][8]DLL로 제공됩니다.이 일반적인 메타데이터 형식을 사용하면 에서 WinRT API를 쉽게 사용할 수 있습니다.P/[9][unreliable source?]Invoke보다 구문이 간단한 NET 앱.Windows 에서는, XAML 베이스의 Win으로부터 모든 것을 제공하는 WinRT ABI 에 짜넣어진 API 세트를 제공합니다.UI 라이브러리 및 카메라, 마이크 등의 장치 액세스...
C++/CLI 구문을 차용한 이전 C++/CX(컴포넌트 확장) 언어는 C++의 기존 COM 프로그래밍에 비해 프로그래머가 볼 수 있는 글루 코드가 적은 WinRT 컴포넌트를 쓰고 사용하기 위해 도입되었으며 혼합 타입에 대한 제한이 적습니다.C++/CX의 Component Extensions는 API 경계에서만 사용할 것을 권장합니다.다른 [10]목적은 사용할 수 없습니다.Windows Runtime C++ Template Library(WRL)를 사용하여 일반 C++([11]COM 고유의 규율 포함)를 사용하여 WinRT 컴포넌트를 프로그래밍할 수도 있습니다.이것은 Active Template Library가 [12]COM에 제공하는 것과 목적이 유사합니다.2019년에 Microsoft는 C++/CX를 C++/Win으로 대체했습니다.RT 헤더 [13]라이브러리
대부분의 WinRT 애플리케이션은 샌드박스 내에서 실행되며 중요한 OS 기능과 기본 하드웨어에 액세스하려면 사용자의 명시적인 승인이 필요합니다.기본적으로 파일 액세스는 문서 또는 [14]그림 디렉토리와 같은 미리 정해진 여러 위치로 제한됩니다.
WinRT 애플리케이션은 .appx 이후의 .msix 파일 형식으로 패키지화되어 있습니다.오픈 패키징 규약에 따라 XML [15]파일이 추가된 ZIP 형식을 사용합니다.WinRT 어플리케이션은 주로 Microsoft Store라는 이름의 어플리케이션스토어를 통해 배포됩니다.이 스토어에서는 Windows 어플리케이션(Termed Windows Store 어플리케이션)을 사용자가 구입하여 다운로드할 수 있습니다.WinRT 앱은 Windows 도메인의 일부인 Windows 8 또는 RT 시스템의 Windows Store 외부에서만 사용할 수 있습니다.또,[16][17][18][19] Microsoft 로부터 취득한 특수한 액티베이션 키를 탑재할 수 있습니다.이러한 제한은 Windows 10 Novel Update에서 해제되었습니다.여기서 사용자는 설정을 [20]활성화함으로써 신뢰할 수 있는 인증서로 서명된 모든 앱을 자유롭게 열 수 있습니다.
Win32 및 와 같은 주요 출발지.NET Framework 4.5, 완료에 상당한 시간이 걸릴 것으로 예상되는 대부분의 API는 비동기식으로 구현됩니다.Windows Runtime 비동기 함수를 호출하면 작업이 다른 스레드 또는 프로세스에서 시작되어 즉시 반환되므로 [21]앱이 결과를 기다리는 동안 다른 작업을 수행할 수 있습니다.비동기 모델에는 새로운 프로그래밍 언어 구조가 필요합니다.각 언어는 비동기 API를 사용하는 고유한 방법을 제공합니다.비동기 액세스를 필요로 하는 임베디드 API에는 온스크린 메시지와 대화 상자, 파일 액세스, 인터넷 연결, 소켓, 스트림, 디바이스 및 서비스, 캘린더, 연락처 및 약속이 포함됩니다.
서비스
메타데이터
메타데이터는 WinRT ABI를 사용하여 작성된 API를 기술합니다.프로그래밍 언어 간에 공유할 수 있는 객체 지향 코드를 작성할 수 있는 프로그래밍 모델을 정의하고 리플렉션과 같은 서비스를 가능하게 합니다.
Microsoft의 C++ 전문가인 Herb Sutter는 2011 빌드 컨퍼런스에서 C++에 관한 세션에서 WinRT 메타데이터는 CLI [10]메타데이터와 같은 형식이라고 설명했습니다.네이티브 코드(프로세서 고유의 머신 코드)에는 메타데이터를 포함할 수 없기 때문에 일반 CLI [22]어셈블리와 같이 반영할 수 있는 별도의 메타데이터 파일에 저장됩니다.WinRT API는 CLI 메타데이터와 같은 형식이기 때문에 관리 대상 CLI 언어에서 그대로 사용할 수 있습니다.NET API
유형계
WinRT에는 메타데이터를 기반으로 구축된 풍부한 객체 지향 클래스 기반 유형 시스템이 있습니다.에서 대응하는 컨스트럭트를 사용하는 컨스트럭트를 지원합니다.NET 프레임워크: 클래스, 메서드, 속성, 위임자 및 이벤트.
COM과 관련된 WinRT의 주요 추가 중 하나는 크로스 애플리케이션 바이너리 인터페이스(ABI)인 .NET 스타일의 범용입니다.인터페이스와 대리자만 범용이 될 수 있으며 런타임 클래스와 메서드는 사용할 수 없습니다.범용 인터페이스는 파라미터화된 인터페이스라고도 합니다.C++/CX 에서는, 다음의 키워드를 사용해 선언됩니다.generic
키워드와 매우 유사한 구문을 사용하여template
WinRT 클래스(참조 클래스)는 C++ 템플릿을 사용하여 범용화할 수도 있지만 메타데이터 내의 범용성을 유지하는 WinRT 제네릭과는 달리 템플릿 인스턴스화만 .winmd 메타데이터(일부 이름 망글링 포함)로 내보낼 수 있습니다.WinRT는 또한 C++ 표준 라이브러리와 병렬로 사용되는 범용 컨테이너에 대한 인터페이스 세트를 제공하며, 언어는 몇 가지 상호(뒤로 및 뒤로) 변환 기능을 제공합니다.의 WinRT 컬렉션 소비량.NET 언어(예를 들어 C# 및 VB)와 JavaScript는 C++보다 투과성이 높으며, 백그라운드에서 동일한 자연 언어로의 자동 매핑이 발생합니다.WinRT 컴포넌트를 관리 대상 언어로 작성하는 경우 COM 스타일의 추가 규칙을 따라야 합니다.NET 프레임워크 수집 유형은 반환 유형으로 선언할 수 없지만 구성 요소 경계에서 사용할 수 있는 것은 이러한 프레임워크 수집 유형뿐입니다.
WinRT 컴포넌트
WinRT를 대상으로 컴파일된 클래스를 WinRT 구성 요소라고 합니다.지원되는 모든 언어 및 지원되는 플랫폼에서 쓸 수 있는 클래스입니다.열쇠는 메타데이터입니다.이 메타데이터를 사용하면 다른 모든 WinRT 언어의 컴포넌트와 인터페이스할 수 있습니다.런타임에는 에서 빌드된 WinRT 컴포넌트가 필요합니다.정의된 인터페이스 타입을 사용하는NET Framework 또는NET 타입의 인터페이스.이 인터페이스는, 최초로 이름 붙여진 인터페이스에 자동적으로 매핑 됩니다.XAML [23]클래스를 제외한 관리되는 WinRT 구성 요소에서는 상속이 아직 지원되지 않습니다.
프로그래밍 인터페이스
WinRT 런타임용 프로그램 및 라이브러리는 여러 플랫폼 및 프로그래밍 언어에서 생성 및 사용할 수 있습니다.특히 C/C++(WinRT 개념에 대한 퍼스트 클래스 지원을 제공하는 언어 확장자 또는 표준 C++에서 코드를 쓸 수 있는 하위 레벨의 템플릿 라이브러리 중 하나)는 다음과 같습니다.NET(C# 및 Visual Basic).NET(VB)NET) 및 JavaScript.이것은 메타데이터에 의해서 가능하게 됩니다.WinRT 용어에서 언어 바인딩은 언어 투영이라고 불립니다.
C++(C++/윈)RT, 컴포넌트 확장, WRL)
Standard C++는 WinRT 플랫폼의 1등급 사용자입니다.Windows 10 버전 1803 에서는, Windows SDK 에 C++/Win 가 포함되어 있습니다.RT. C++/WinRT는 Windows Runtime(WinRT) API를 위한 완전히 표준 최신 C++17 언어 프로젝션으로, 헤더 파일 기반 라이브러리로 구현되어 최신 Windows API에 대한 퍼스트 클래스 액세스를 제공하도록 설계되었습니다.C++/Win 사용 시RT, Windows Runtime API는 표준 준거 C++17 컴파일러를 사용하여 작성 및 소비할 수 있습니다.WinRT는 네이티브 플랫폼이며 모든 네이티브(및 표준) C++ 코드를 지원하므로 C++ 개발자는 기존의 네이티브 C/C++ 라이브러리를 재사용할 수 있습니다.C++/Win 사용 시RT, 언어 확장자는 없습니다.
C++/Win 이전RT는 2016년 [24]10월부터 Windows SDK에서 정식 출시되었으며, 마이크로소프트는 GitHub C++/Win을 제공하였다.RT.[25] C++/CX 코드에 의존하지 않으며, 그 결과 바이너리가 작고 코드가 [26]빨라집니다.
C++에서 WinRT를 사용하기 위한 두 가지 레거시 옵션이 있습니다. Windows Runtime C++ Template Library(WRL), ATL 스타일의 템플릿 라이브러리(Windows Template Library 또는 WTL과 유사), C++/CX(C++++[27]CLI와 유사)입니다.Microsoft의 내부 소비 요건으로 인해 WRL은 예외 없이 사용할 수 있습니다.즉, 수익률 [28]규율은 COM과 마찬가지로 HRESULT 기반입니다.한편, C++/CX 는, WinRT 에의 콜을 에러 체크를 실시해,[29] 필요에 따라서 예외를 발생시키는 코드로 정리합니다.
C++/CX에는 플랫폼 및 그 타입 시스템과의 통합을 가능하게 하는 몇 가지 확장 기능이 있습니다.이 구문은 C++/CLI의 구문과 비슷하지만 런타임과 통합된 네이티브(표준이 아님) 코드와 메타데이터를 생성합니다.예를 들어 WinRT 오브젝트는 다음과 같이 할당할 수 있습니다.ref new
의 대응책입니다.gcnew
C++/CLI에서.모자 연산자^
는 그 의미를 유지하지만, 발신자와 착신자가 모두 C++로 쓰여져 같은 프로세스에 존재하는 경우, 햇 참조는 가상 메서드테이블(vtable, VMT)[29]에 대한 vptr에 대한 포인터일 뿐입니다.
C++/CX와 함께, 기존의 C++ COM 프로그래밍에 상대적인 부분 클래스이며, 다시 에서 영감을 받았습니다.NET. 이를 통해 WinRT XAML 인스턴스 코드를 도구에 의해 C++ 코드로 변환한 후 인간이 작성한 코드와 결합하여 완전한 클래스를 생성하고 클래스 구현의 기계 생성 부분과 인간이 편집한 부분을 다른 파일로 깔끔하게 분리할 수 있습니다.
.그물
.NET Framework와 Common Language Runtime(CLR)은 서브플랫폼으로 WinRT에 통합되어 있습니다.메타데이터 형식과 라이브러리를 통해 생태계의 표준에 영향을 미치고 있습니다.CLR은 JIT 컴파일 코드 및 가비지 컬렉션 등의 서비스를 제공합니다.를 사용한 WinRT 어플리케이션NET 언어는 XAML 기반의 WinUI를 사용하며 주로 C#, VB로 작성됩니다.NET 및 XAML에서는 처음으로 C++/CX를 사용하는 네이티브 코드를 사용합니다.아직 공식적으로 지원되지는 않았지만, 다른 에서 프로그램을 작성할 수도 있습니다.NET 언어.NET 5에서는 Microsoft는 내장 WinRT 지원을 해제하고 대신 CsWinRT를 만들었습니다.C++/Win은 Windows Runtime API에 액세스하기 위한 상호 운용 코드를 생성하는 툴입니다.RT는 [30][31]동작합니다.
제한 사항
managed 에 내장된 WinRT 컴포넌트에 정의되어 있는 클래스.NET 언어는 다음과 같이 선언해야 합니다.sealed
에서는 도출할 수 없습니다.단, 다른 곳에서 정의된 밀봉되지 않은 WinRT 클래스는 에서 상속할 수 있습니다.NET, 가상 메서드 덮어쓰기 등입니다.단, 상속된 관리 클래스는 계속 밀봉되어 있어야 합니다.
다른 언어와 인터페이스하는 구성원은 WinRT 유형 또는 이러한 [23]유형으로 변환할 수 있는 관리되는 유형을 가진 시그니처가 있어야 합니다.
자바스크립트
WinRT 어플리케이션은 코드 배후에 JavaScript를 사용한HTML을 사용하여 코드화할 수도 있습니다.이것들은 Trident 렌더링 엔진과 Chakra JavaScript 엔진을 사용하여 실행되며, 둘 다 Internet Explorer에 의해 사용됩니다.JavaScript에서 WinRT 앱을 코딩할 때 그 기능은 JavaScript 명명 규칙을 따르도록 조정되며 네임스페이스도 JavaScript 객체에 매핑됩니다.
기타 언어
Microsoft는 WinRT API를 C++ 이외의 언어로 투영하고 있습니다.예를 들어 Rust/WinRT는 Rust로 작성된 프로그램이 WinRT API를 [32]소비하고 작성하기 위한 인터페이스입니다.Rust/WinRT는 기존 Windows 데스크톱과 UWP 앱 [33]모델을 조화시키기 위한 Microsoft의 노력인 Windows App SDK(이전의 Project Reunion)의 일부입니다.
브릿지
![]() | 이 섹션은 확장해야 합니다.추가하시면 됩니다. (2015년 8월) |
Universal Windows Platform(UWP)의 도입으로 플랫폼은 UWP 기능을 활용하면서 다른 플랫폼용으로 개발된 프로그램을 쉽게 이식할 수 있는 API 브릿지를 많이 받았습니다.Microsoft는 Android(2016년 이후 폐지), iOS(Cocoa Touch), Progressive Web Apps, Silverlight 및 기존 Windows 데스크톱 애플리케이션(Windows App SDK의 MIX 패키지 사용)을 위한 브릿지를 제공하고 있습니다.
API
WinRT는 몰입형 인터페이스 API와 같이 Windows 8의 기능을 개발자에게 공개하는 클래스 라이브러리의 형태로 Application Programming Interface(API; 응용 프로그램프로그래밍 인터페이스)와 함께 제공됩니다.지원되는 모든 언어에서 액세스 및 소비할 수 있습니다.
런타임 클래스
Windows Runtime 클래스는 XAML 파서에서 카메라 기능에 이르는 모든 기능에 대한 액세스를 제공하는 세트 SDK입니다.SDK는 네이티브 C/C++ 라이브러리로 구현됩니다(관리되지 않음).
명명 규칙
API의 컴포넌트(클래스 및 기타 멤버) 명명 규칙은 의 영향을 많이 받습니다.캐멀 케이스(특히 Pascal Case)를 사용하는 NET 명명 규칙.Microsoft 에서는, 그 외의 정보가 없는 경우는, 유저에게 이러한 룰을 따를 것을 추천합니다.
이 규칙들은 자바스크립트와 같은 일부 언어에서는 다르게 투영되어 있으며, 이는 이를 규칙으로 변환하거나 그 반대로 변환합니다.이는 프로그래밍 언어에 관계없이 원어민적이고 일관된 경험을 제공하기 위한 것입니다.
제약사항 및 규칙
Windows Runtime은 다양한 언어로 표시되므로 이러한 모든 언어를 호스트하기 위해 기본 데이터 유형에 대한 몇 가지 제한이 있습니다.프로그래머는 퍼블릭액세스와 함께 사용할 때 이러한 유형의 동작에 주의해야 합니다(메서드 파라미터, 메서드 반환값, 속성 등).[34]
- 기본형
- .NET 언어 및 C++에서는 다양한 숫자를 나타내는 풍부한 데이터 타입이 존재합니다.
- JavaScript에서는
Number
는 최대 53비트의 정밀도만을 나타낼 수 있습니다. - WinRT 에서는 숫자 데이터 타입이 부족한 것은 에 상대적인8비트 부호 있는 정수뿐입니다.NET 및 C++.자바스크립트 개발자는 WinRT를 코딩할 때 빅넘버를 다룰 때 주의해야 합니다.
- 줄들
- 그럼 문자열은 불변입니다.NET 및 JavaScript. 단, C++로 변경할 수 있습니다.
- C++에 의해 WinRT에 문자열로 전달된 null 포인터가 빈 문자열로 변환됩니다.
- .Net에서는 WinRT에 문자열로 전달되는 null이 빈 문자열로 변환됩니다.
- JavaScript에서 null이 WinRT에 문자열로 전달되면 해당 단어가 포함된 문자열로 변환됩니다.
null
이는 JavaScript의 키워드 때문입니다.null
null 객체로 표시됩니다.통과 시 유사한 결과가 발생합니다.undefined
JavaScript에서 WinRT로 이동합니다. - 구조
- .NET 및 C++에서는 구조체는 값 유형이며 이러한 구조체는 모든 유형을 포함할 수 있습니다.
- JavaScript는 구조를 직접 지원하지 않습니다.
- WinRT에서는 숫자, 문자열 및 기타 구조를 포함한 값 의미론을 가진 유형을 포함하는 경우에만 구조 사용이 허용됩니다.포인터 또는 인터페이스 참조는 허용되지 않습니다.
- 레퍼런스
- .NET에서는 객체는 참조에 의해 전달되지만 숫자와 구조체는 값에 의해 전달됩니다.
- C++ 에서는, 모든 타입을 참조 또는 값으로 전달할 수 있습니다.
- WinRT에서는 인터페이스는 참조에 의해 전달되며 다른 모든 유형은 값에 의해 전달됩니다.
- 어레이
- .NET에서는 C++ 및 JavaScript 배열이 참조 유형입니다.
- WinRT에서 어레이는 값 유형입니다.
- 이벤트
- .NET 및 C++에서는 클라이언트는 다음과 같이 이벤트를 서브스크라이브합니다.
+=
교환입니다. - JavaScript에서는
addEventListener
기능 또는 설정on<EventName>
속성을 사용하여 이벤트를 서브스크라이브합니다. - WinRT 에서는, 모든 언어가 독자적인 방법으로 이벤트를 등록할 수 있습니다.
- 컬렉션
- 일부 .NET 컬렉션은 WinRT 컬렉션에 직접 매핑됩니다.
- WinRT 벡터 유형은 어레이와 유사하며 어레이 구문을 사용하여 어레이를 소비합니다.
- WinRT Map 타입은 키/값 쌍의 컬렉션으로 에서 딕셔너리로 표시됩니다.NET 언어
- 메서드 오버로드
- 모든 WinRT 언어(.NET, C++, JavaScript)의 파라미터 오버로드 지원
- .NET 및 C++는 타입의 오버로드도 지원합니다.
- WinRT에서는 파라미터 번호만 오버로드에 사용됩니다.
- 비동기
- 모든 WinRT 메서드는 50밀리초를 초과하는 모든 메서드가 비동기 메서드가 되도록 설계되었습니다.
- 비동기 방식을 구별하기 위해 확립된 명명 패턴은 다음과 같습니다.
<Verb>[<Noun>]Async
완전한 런타임 라이브러리의 경우 50밀리초 이상 지속될 가능성이 있는 모든 메서드는 비동기 메서드로만 구현됩니다.
Windows 전화 런타임
Windows Phone 8.1은 Windows Phone Runtime이라는 이름의 Windows Runtime 버전을 사용합니다.C# 및 VB에서 애플리케이션을 개발할 수 있습니다.C++/CX의 [35]NET 및 Windows Runtime 컴포넌트.WP8은 제한된 지원을 제공했지만, 이 플랫폼은 결국 Windows Phone 8.1에서 Windows 8.1과 통합되었습니다.
Windows Phone 8
Windows Phone 8은 Windows Phone Runtime을 통한 Windows Runtime 컴포넌트 개발 및 사용에 대한 지원이 제한되어 있습니다.핵심 운영 체제 기능을 처리하는 Windows 8의 Windows Runtime API의 대부분은 Windows Phone [36]8로 이식되었습니다.게임 개발 업계의 요청에 따라 C++/CX와 DirectX를 사용한 네이티브 게임 개발 지원이 추가되었습니다.
단, Windows Phone XAML Framework는 하위 호환성을 위해 Windows Phone7과 같은 Microsoft Silverlight 프레임워크를 기반으로 합니다.따라서 2016년 현재[update] C++/CX에서는 XAML 개발이 불가능합니다.HTML5 또는 WinJ를 사용한 개발은 Windows Phone8 에서는 지원되지 않습니다.
Windows Phone 8.1
Windows Phone 8.1 에서의 Windows Runtime 지원은 Windows 8.1과 통합됩니다.이 릴리스에서는 WinRT XAML 지원, C++/CX 언어 바인딩 및 HTML5-JavaScript를 포함한 완전한 Windows Runtime API가 플랫폼에 제공됩니다.또한 앱이 8.1 버전의 Windows Phone 및 Windows에서 코드를 공유할 수 있도록 하는 Universal apps라는 프로젝트 유형도 있습니다.
Windows Phone 8 Silverlight Framework가 [when?]업데이트되었습니다.Windows 런타임의 새로운 기능 중 일부를 이용할 수 있습니다.
Windows Phone Runtime은 이전에 Silverlight XAP를 사용한 후 Windows 8의 AppX 패키지 형식을 사용합니다.
레퍼런스
- ^ Zhang, Yi (2017-03-15). "Windows Runtime is not a Runtime". yizhang82’s blog. Retrieved 2021-06-14.
- ^ Avram, Abel (21 September 2011). "Design Details of the Windows Runtime". InfoQ.
- ^ Klug, Brian; Smith, Ryan (13 September 2011). "Microsoft Build: Windows 8, A Pre-Beta Preview". AnandTech.
- ^ a b Michael, Mayberry (2012). WinRT Revealed. New York City: Apress. p. 3. ISBN 978-1-4302-4585-8.
- ^ "Creating Win32 Applications (C++)". MSDN. Microsoft. Retrieved 12 January 2014.
- ^ "Windows Metadata (WinMD) files". API reference for UWP apps. Microsoft Docs. Retrieved 2019-07-20.
- ^ De Icaza, Miguel (15 September 2011). "WinRT demystified". Personal blog of Miguel de Icaza. Self-published. Retrieved 15 January 2014.
- ^ "WINMD Files Under the Hood". CodeProject. 2012-10-15. Retrieved 2021-06-14.
- ^ "What is the COM marshaling overhead in calling the WinRT API from C#?". MSDN forum. Self-published. 20 September 2011. Retrieved 15 January 2014.
- ^ a b "Using the Windows Runtime from C++ Build2011 Channel 9". Channel9.msdn.com. 2011-09-14. Retrieved 2012-04-24.
- ^ Sivakumar, Nish (2011-09-29). "Visual C++ and WinRT/Metro - Some fundamentals - CodeProject®". Codeproject.com. Retrieved 2012-04-24.
- ^ "Using the Windows Runtime from C++ Build2011 Channel 9". Channel9.msdn.com. 2011-09-14. Retrieved 2012-04-24.
- ^ "Introduction to C++/WinRT - Windows UWP applications". docs.microsoft.com. Microsoft.
- ^ lastnameholiu. "File access permissions - UWP applications". docs.microsoft.com. Retrieved 2020-08-08.
- ^ "Designing a simple and secure app package – APPX". Windows 8 app developer blog. Retrieved 30 December 2013.
- ^ "How to Add and Remove Apps". TechNet. Microsoft. 31 May 2012. Retrieved 4 October 2012.
To enable sideloading on a Windows 8 Enterprise computer that is not domain-joined or on any Windows® 8 Pro computer, you must use a sideloading product activation key. To enable sideloading on a Windows® RT device, you must use a sideloading product activation key. For more information about sideloading product activation keys, see Microsoft Volume Licensing.
- ^ "Windows 8: The Metro Mess". PC Magazine. Retrieved 8 September 2012.
- ^ "Microsoft now using 'Modern UI Style' to refer to Windows 8 'Metro Style' apps". Retrieved 10 August 2012.
- ^ "What's a Microsoft Store app?". Windows Dev Center. Retrieved 1 October 2012.
- ^ "What Is Sideloading & How To Sideload Apps On Windows 10? [DETAILS]". Silicophilic. 2019-07-27. Retrieved 2021-06-14.
- ^ "Asynchronous programming (Windows Store apps)". MSDN. Microsoft. Retrieved 12 January 2014.
- ^ ".NET Gets a New Lease of Life". Archived from the original on September 24, 2011. Retrieved September 16, 2011.
- ^ a b "Using the Windows Runtime from C# and Visual Basic Build2011 Channel 9". Channel9.msdn.com. 2011-09-14. Retrieved 2012-04-24.
- ^ "Initial preview release of C++/WinRT". github.com. 2016-10-05. Retrieved 2016-10-05.
- ^ "C++/WinRT is a standard C++ language projection for the Windows Runtime". github.com. 2016-09-14. Retrieved 2016-09-14.
- ^ "Standard C++ and the Windows Runtime (C++/WinRT)". blogs.windows.com. 2016-11-28. Retrieved 2016-11-28.
- ^ "Inside the C++/CX Design - Visual C++ Team Blog - Site Home - MSDN Blogs". Blogs.msdn.com. 2011-10-20. Retrieved 2012-04-24.
- ^ Charles (2011-10-26). "GoingNative 3: The C++/CX Episode with Marian Luparu C9::GoingNative Channel 9". Channel9.msdn.com. Retrieved 2012-04-24.
- ^ a b C++로 커버된 메트로 스타일 앱은 Deon Brewis로 //빌드
- ^ "CSWinRT: How to call Windows WinRT APIs from .NET5 applications". TECHCOMMUNITY.MICROSOFT.COM. 2020-09-22. Retrieved 2021-06-14.
- ^ Mayberry, Michael (2012), "Building a .NET App with WinRT", WinRT Revealed, Berkeley, CA: Apress, pp. 29–46, doi:10.1007/978-1-4302-4585-8_3, ISBN 978-1-4302-4584-1, retrieved 2021-06-14
- ^ "microsoft/winrt-rs". GitHub. 28 September 2021.
- ^ "microsoft/WindowsAppSDK: The Windows App SDK empowers all Windows Desktop apps with modern Windows UI, APIs, and platform features, including back-compat support, shipped via NuGet". GitHub. Retrieved 2021-10-12.
- ^ "Ten Tips When Writing a Hybrid Language Metro style Application - Build2011 - Channel 9". Channel 9. Microsoft.
- ^ "Windows Phone API reference". Windows Phone API reference. Microsoft. July 21, 2014.
- ^ "Windows Phone Runtime API". microsoft.com. Microsoft.