Sunday, June 17, 2012

Projection in Windows 8

Inline image 1

בפוסט הקודם שעסק במה זה 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: Inline image 2

Posted via email from Jasper-Net