
בפוסט הקודם שעסק במה זה WinRT הזכרתי שאפשר לכתוב אפליקציות Metro במגוון שפות (C# & Xaml, C++ & Xaml, Js & HTML) ולעבוד מול ה-WinRT בצורה די שקופה. מי שמאפשר את זה היא ה-Language Projection.
מה היא ה-Language Projection
WinRT היא חלק מה-Windows Core, היא fully native code, והיא חושפת APIs אשר מולם אנחנו יכולים לעבוד.
כיוון ש-WinRT צריכה לשרת כמה שפות (C#, C++, js), דרושה שכבת תיווך שתחשוף אותה בצורה המותאמת לאותה שפה, וזו שכבת ה-Projection אשר מעליה נמצאת האפליקציה שלנו.
אובייקט WinRT מממש 2 ממשקים חשובים:
IUnknown – כיוון ש-WinRT עובדת מעל COM, כל אובייקט צריך לממש את Iunknown, זה ממשק שהיה קיים עוד לפני WinRT, והוא מסמל אובייקט שאנחנו לא יודעים עליו כלום.
IInspectable – כל אובייקט WinRT מממש IInspectable, זה ממשק חדש שמאפשר לחקור את האובייקט דרך ה-MetaData שלו וזה מה ששכבת ה-Projection עושה.
MetaData
ה-MetaData נמצא בתוך קובץ WinMD (Windows Meta Data)
אפשר לפתוח אותו עם ILDASM ולראות מה הוא מכיל:
Read more: Windows 8
QR: 