Windows Runtime, or WinRT, is Microsoft‘s new programming model that makes the backbone of the new Metro-style apps (also known as Immersive) in their new Windows 8 operating system. WinRT supports development in C++ (usually with Component Extensions, C++/CX), the managed languages C# and VB.NET, as well as JavaScript.
WinRT is essentially a COM-based API, although relying on an enhanced COM. Because of its COM-like basis, WinRT allows relatively easy interfacing from multiple languages, just as COM does, but it’s essentially an unmanaged, native API. The API definitions however, stored in “.winmd” files, are encoded in ECMA 335 metadata format, which is the same format that .NET uses with a few modifications.
Metadata format allows for significantly less overhead
when invoking WinRT from .NET applications compared to a P/Invoke, and
much simpler syntax.
The new C++/CX (Component Extensions) language, which borrows some
C++/CLI syntax, allows the authoring and consumption of WinRT components
with less glue visible to the programmer compared to classic COM
programming in C++, and at the same time imposes fewer restrictions
compared to C++/CLI on the mixing of types. Regular C++ (with
COM-specific discipline) can also be used to program with WinRT components, with the help of new template library called Windows
Runtime C++ Template Library (WRL), which is similar in purpose to what
Active Template Library provides for COM. The MSDN documentation
however recommends using C++/CX instead of WRL.
Tidak ada komentar:
Posting Komentar