بيئة تشغيل ويندوز

Windows Runtime ( WinRT ) هو مكون مستقل عن النظام الأساسي وبنية تطبيق تم تقديمها لأول مرة في Windows 8 و Windows Server 2012 في عام 2012. يتم تنفيذه بلغة C++ ويدعم رسميًا التطوير بلغة C++ (عبر C++/WinRT أو C++/CX أو WRL) و Rust/WinRT و Python/WinRT و JavaScript - TypeScript ولغات التعليمات البرمجية المُدارة C# و Visual Basic (.NET) (VB.NET).

لا يُعدّ WinRT بيئة تشغيل بالمعنى التقليدي، بل هو واجهة ثنائية للتطبيقات مستقلة عن اللغة، تعتمد على COM، وتتيح استهلاك واجهات برمجة التطبيقات (APIs) الموجهة للكائنات من لغات متعددة، مع توفير خدمات عادةً بواسطة بيئة تشغيل كاملة، مثل تفعيل الأنواع. [ 1 ] أي أن WinRT هو "نظام توصيل واجهات برمجة التطبيقات". يمكن تشغيل التطبيقات التي تستخدم بيئة تشغيل Windows داخل بيئة معزولة (sandboxed) لضمان أمان واستقرار أكبر، كما تدعم بشكل أصلي كلاً من معماريتي x86 و ARM . [ 2 ] [ 3 ] صُممت مكونات WinRT مع مراعاة التوافق بين لغات وواجهات برمجة تطبيقات متعددة، بما في ذلك اللغات الأصلية والمدارة ولغات البرمجة النصية. تُعرف واجهات برمجة التطبيقات المدمجة التي يوفرها Windows والتي تستخدم واجهة WinRT الثنائية للتطبيقات (ABI) باسم واجهات برمجة تطبيقات WinRT؛ ومع ذلك، يمكن لأي شخص استخدام واجهة WinRT الثنائية للتطبيقات (ABI) لإنشاء واجهات برمجة تطبيقات خاصة به.

تكنولوجيا

تم تنفيذ WinRT بلغة البرمجة C++ [ 4 ] وهو مصمم ليكون كائني التوجه . [ 4 ] أما تقنيته الأساسية، واجهة برمجة تطبيقات ويندوز (Win32 API)، فهي مكتوبة في الغالب بلغة C. [ 5 ] وهي واجهة ثنائية غير مُدارة للتطبيقات ، تعتمد على نموذج كائنات المكونات (COM)، مما يسمح بالتفاعل من لغات متعددة، كما هو الحال في COM. ومع ذلك، تُخزن تعريفات واجهة برمجة التطبيقات في ملفات مُشفرة بتنسيق بيانات تعريف ECMA 335 ، وهو التنسيق الذي يستخدمه إطار عمل .NET أيضًا مع بعض التعديلات. بالنسبة لمكونات WinRT المُنفذة بلغة البرمجة الأصلية، يحتوي ملف بيانات التعريف فقط على تعريفات الطرق والفئات والواجهات والتعدادات، ويتم توفير التنفيذ في مكتبة DLL منفصلة. [ 6 ] [ 7 ] [ 8 ] يُسهل تنسيق بيانات التعريف الموحد هذا استخدام واجهات برمجة تطبيقات WinRT من تطبيقات .NET، حيث يتميز ببنية أبسط من P/Invoke . [ 9 ] يوفر نظام التشغيل Windows مجموعة من واجهات برمجة التطبيقات المدمجة المبنية على WinRT ABI والتي توفر كل شيء بدءًا من مكتبة WinUI المستندة إلى XAML والوصول إلى الأجهزة مثل الكاميرا والميكروفون وما إلى ذلك..winmd

تم تقديم لغة C++/CX (امتدادات المكونات) السابقة ، التي تستعير بعضًا من بنية C++/CLI ، لكتابة واستخدام مكونات WinRT مع تقليل كمية التعليمات البرمجية الوسيطة الظاهرة للمبرمج، مقارنةً ببرمجة COM التقليدية في C++، كما أنها تفرض قيودًا أقل على دمج الأنواع مقارنةً بـ C++/CLI. يُوصى باستخدام امتدادات مكونات C++/CX على مستوى واجهة برمجة التطبيقات فقط، وليس لأغراض أخرى. [ 10 ] يمكن أيضًا استخدام C++ العادية (مع مراعاة قواعد COM) للبرمجة باستخدام مكونات WinRT، [ 11 ] بمساعدة مكتبة قوالب C++ لوقت تشغيل Windows (WRL)، والتي تُشابه في غرضها مكتبة القوالب النشطة لـ COM. [ 12 ] في عام 2019، أوقفت مايكروسوفت دعم C++/CX لصالح مكتبة رؤوس C++/WinRT . [ 13 ]

تعمل معظم تطبيقات WinRT ضمن بيئة معزولة، وتتطلب موافقة صريحة من المستخدم للوصول إلى ميزات نظام التشغيل الأساسية والمكونات المادية. وبشكل افتراضي، يقتصر الوصول إلى الملفات على مواقع محددة مسبقًا، مثل مجلدي المستندات أو الصور. [ 14 ]

تُغلّف تطبيقات WinRT بصيغة ملف .appx، ثم لاحقًا بصيغة ملف .msix ؛ واستنادًا إلى اتفاقيات التغليف المفتوحة ، تستخدم صيغة ZIP مع ملفات XML إضافية. [ 15 ] تُوزّع تطبيقات WinRT في الغالب عبر متجر تطبيقات يُسمى متجر Microsoft ، حيث يمكن للمستخدمين شراء تطبيقات Windows (المسماة تطبيقات متجر Windows ) وتنزيلها. في البداية، كان بالإمكان تثبيت تطبيقات WinRT يدويًا من خارج متجر Windows فقط على أنظمة Windows 8 أو RT التي تُشكّل جزءًا من نطاق Windows ، أو المُزوّدة بمفتاح تنشيط خاص مُستَحصَل عليه من Microsoft. [ 16 ] [ 17 ] [ 18 ] [ 19 ] إلا أن هذه القيود رُفعت في تحديث نوفمبر لنظام Windows 10، حيث يُمكن للمستخدمين الآن تثبيت أي تطبيق مُوقّع بشهادة موثوقة يدويًا بحرية عن طريق تفعيل أحد الإعدادات. [ 20 ]

في تحولٍ جذري عن Win32، وعلى غرار .NET Framework 4.5 ، تُنفَّذ معظم واجهات برمجة التطبيقات (APIs) التي يُتوقع أن تستغرق وقتًا طويلًا لإكمالها، بشكلٍ غير متزامن . عند استدعاء دالة غير متزامنة في Windows Runtime، تبدأ المهمة في سلسلة عمليات أو عملية أخرى، وتُنهي الدالة عملها فورًا، مما يُتيح للتطبيق تنفيذ مهام أخرى أثناء انتظار النتائج. [ 21 ] يتطلب النموذج غير المتزامن بنيات جديدة في لغات البرمجة. تُوفر كل لغة طريقتها الخاصة لاستخدام واجهات برمجة التطبيقات غير المتزامنة . تشمل أجزاء واجهة برمجة التطبيقات المُدمجة التي تحتاج إلى وصول غير متزامن: الرسائل والحوارات على الشاشة، والوصول إلى الملفات، والاتصال بالإنترنت، والمآخذ، والجداول، والأجهزة والخدمات، والتقويم، وجهات الاتصال، والمواعيد.

خدمات

البيانات الوصفية

تصف البيانات الوصفية واجهات برمجة التطبيقات المكتوبة باستخدام WinRT ABI. وهي تحدد نموذج برمجة يجعل من الممكن كتابة كود موجه للكائنات يمكن مشاركته عبر لغات البرمجة ، كما أنها تُمكّن خدمات مثل البرمجة الانعكاسية (الانعكاس).

أوضح هيرب ساتر ، خبير لغة C++ في مايكروسوفت ، خلال جلسته حول C++ في مؤتمر Build لعام 2011 ، أن بيانات تعريف WinRT تأتي بنفس تنسيق بيانات تعريف واجهة سطر الأوامر (CLI ) . [ 10 ] لا يمكن للتعليمات البرمجية الأصلية (أي التعليمات البرمجية الخاصة بالمعالج) أن تحتوي على بيانات تعريف، لذا تُخزَّن في ملف بيانات تعريف منفصل يمكن عرضه مثل تجميعات واجهة سطر الأوامر العادية . [ 22 ] وبما أنها بنفس تنسيق بيانات تعريف واجهة سطر الأوامر، يمكن استخدام واجهات برمجة تطبيقات WinRT من لغات واجهة سطر الأوامر المُدارة كما لو كانت واجهة برمجة تطبيقات .NET عادية.

نظام الكتابة

يتميز WinRT بنظام أنواع غني قائم على الفئات وموجه للكائنات، وهو مبني على البيانات الوصفية. ويدعم هذا النظام بنيات لها بنى مقابلة في إطار عمل .NET: الفئات ، والأساليب ، والخصائص ، والمفوضين ، والأحداث .

من أبرز الإضافات إلى WinRT مقارنةً بـ COM واجهة التطبيق الثنائية المشتركة (ABI)، وهي عبارة عن أنواع عامة على نمط .NET . تقتصر الأنواع العامة على الواجهات والمفوضين، بينما لا يمكن أن تكون فئات وقت التشغيل والأساليب الموجودة فيها عامة. تُعرف الواجهات العامة أيضًا بالواجهات المُعاملة. في لغة C++/CX، يتم تعريفها باستخدام الكلمة المفتاحية `generic` genericبصيغة مشابهة جدًا لصيغة الكلمة المفتاحية ` templategeneric`. يمكن أيضًا تعميم فئات WinRT (الفئات المرجعية) باستخدام قوالب C++، ولكن لا يمكن تصدير سوى مثيلات القوالب إلى بيانات تعريف .winmd (مع بعض التعديلات على الأسماء )، على عكس الأنواع العامة في WinRT التي تحتفظ بعموميتها في بيانات التعريف. يوفر WinRT أيضًا مجموعة من الواجهات للحاويات العامة التي تُوازي تلك الموجودة في مكتبة C++ القياسية ، وتوفر اللغات بعض دوال التحويل المتبادل (ذهابًا وإيابًا). يُعدّ استخدام مجموعات WinRT في لغات .NET (مثل C# وVB) وفي JavaScript أكثر شفافيةً منه في C++، حيث تتمّ عمليات الربط التلقائية مع مكافئاتها الطبيعية في الخلفية. عند إنشاء مكون WinRT بلغة مُدارة، يجب اتباع بعض القواعد الإضافية، على غرار قواعد COM، على سبيل المثال، لا يُمكن تعريف أنواع مجموعات إطار عمل .NET كأنواع إرجاع، ولكن لا يُمكن استخدام سوى واجهات WinRT التي تُنفّذها عند حدود المكون.

مكونات WinRT

تُسمى الفئات المُجمَّعة لاستهداف WinRT بمكونات WinRT . وهي فئات يُمكن كتابتها بأي لغة مدعومة ولأي منصة مدعومة. ويكمن جوهرها في البيانات الوصفية، التي تُتيح التفاعل مع المكون من أي لغة WinRT أخرى. يتطلب وقت التشغيل من مكونات WinRT المبنية باستخدام .NET Framework استخدام أنواع الواجهات المُعرَّفة أو واجهات أنواع .NET، والتي تُطابق تلقائيًا النوع الأول المُسمى. ولا يدعم WinRT المُدار التوريث حتى الآن، باستثناء فئات XAML. [ 23 ]

واجهات البرمجة

يمكن إنشاء البرامج والمكتبات المُخصصة لبيئة تشغيل WinRT واستخدامها من منصات ولغات برمجة متعددة، أبرزها C / C++ (إما باستخدام امتدادات لغوية توفر دعمًا كاملًا لمفاهيم WinRT، أو باستخدام مكتبة قوالب منخفضة المستوى تسمح بكتابة التعليمات البرمجية بلغة C++ القياسية)، و.NET ( C# و Visual Basic (.NET) (VB.NET))، و JavaScript . ويُمكن تحقيق ذلك من خلال البيانات الوصفية. في مصطلحات WinRT، يُطلق على ربط اللغة اسم إسقاط اللغة.

C++ (C++/WinRT، ملحقات المكونات، WRL)

تُعدّ لغة C++ القياسية جزءًا أساسيًا من منصة WinRT. بدءًا من نظام التشغيل Windows 10، الإصدار 1803، تتضمن حزمة تطوير البرامج (SDK) الخاصة بنظام Windows مكتبة C++/WinRT. تُعتبر C++/WinRT إسقاطًا للغة C++17 الحديثة القياسية بالكامل لواجهات برمجة تطبيقات Windows Runtime (WinRT)، وهي مُنفذة كمكتبة تعتمد على ملفات الرأس، ومُصممة لتوفير وصول مباشر إلى واجهة برمجة تطبيقات Windows الحديثة. باستخدام C++/WinRT، يُمكن إنشاء واجهات برمجة تطبيقات Windows Runtime واستخدامها باستخدام أي مُترجم C++17 متوافق مع المعايير. WinRT منصة أصلية تدعم أي كود C++ أصلي (وقياسي)، مما يُتيح لمطوري C++ إعادة استخدام مكتبات C/C++ الأصلية الموجودة. لا توجد أي امتدادات لغوية مع C++/WinRT.

هناك خياران قديمان آخران لاستخدام WinRT من C++: مكتبة قوالب C++ لوقت تشغيل Windows (WRL)، وهي مكتبة قوالب على نمط ATL (مشابهة لمكتبة قوالب Windows أو WTL)، و C++/CX (C++ مع ملحقات المكونات) التي تشبه C++/CLI. [ 24 ] نظرًا لمتطلبات الاستخدام الداخلية في Microsoft، فإن WRL لا تستخدم الاستثناءات، مما يعني أن آلية إرجاع القيمة فيها تعتمد على HRESULT تمامًا مثل COM. [ 25 ] من ناحية أخرى، تُغلّف C++/CX استدعاءات WinRT برمز برمجي يقوم بفحص الأخطاء وإطلاق الاستثناءات عند الاقتضاء. [ 26 ]

تتضمن لغة C++/CX العديد من الإضافات التي تُمكّن من التكامل مع المنصة ونظام أنواعها. يشبه تركيبها تركيب لغة C++/CLI، مع أنها تُنتج شيفرة وبيانات وصفية أصلية (وإن لم تكن قياسية) تتكامل مع وقت التشغيل. على سبيل المثال، يمكن تخصيص كائنات WinRT باستخدام `<ht>` ref new، وهو ما يُقابل `<ht>` gcnewفي C++/CLI. يحتفظ عامل `ht>` ^بمعناه، ولكن في حالة كتابة كل من المُستدعي والمُستدعى بلغة C++ ووجودهما في نفس العملية، فإن مرجع `ht>` هو ببساطة مؤشر إلى `vptr` لجدول الأساليب الافتراضية (vtable، VMT). [ 26 ]

إلى جانب لغة C++/CX، وبالمقارنة مع برمجة COM التقليدية بلغة C++، توجد الفئات الجزئية ، المستوحاة بدورها من .NET. تسمح هذه الفئات بترجمة كود WinRT XAML إلى كود C++ بواسطة الأدوات، ثم دمجه مع الكود المكتوب يدويًا لإنتاج الفئة الكاملة، مع إمكانية فصل الأجزاء المولدة آليًا والأجزاء المعدلة يدويًا من تنفيذ الفئة في ملفات منفصلة.

.شبكة

تم دمج إطار عمل .NET وبيئة التشغيل المشتركة (CLR) في WinRT كمنصة فرعية. وقد أثرت هذه البيئة على معايير النظام البيئي ووضعتها من خلال تنسيق البيانات الوصفية والمكتبات. توفر بيئة التشغيل المشتركة خدمات مثل تجميع التعليمات البرمجية في الوقت الفعلي (JIT) وجمع البيانات المهملة . تستخدم تطبيقات WinRT التي تعتمد على لغات .NET واجهة المستخدم الرسومية WinUI المبنية على XAML ، وتُكتب بشكل أساسي بلغات C# وVB.NET، ولأول مرة بلغة XAML، باستخدام التعليمات البرمجية الأصلية بلغة C++/CX. على الرغم من عدم دعمها رسميًا حتى الآن، يمكن كتابة البرامج بلغات .NET أخرى. مع إصدار .NET 5، أزالت مايكروسوفت دعم WinRT المدمج، وأنشأت بدلاً منه CsWinRT، وهي أداة تُنشئ تعليمات برمجية للتوافق مع واجهات برمجة تطبيقات وقت تشغيل Windows، على غرار آلية عمل C++/WinRT. [ 27 ] [ 28 ]

القيود

يجب تعريف الفئات المُعرَّفة في مكونات WinRT المُنشأة بلغات .NET المُدارة على أنها فئات مُغلقة sealed، لذا لا يمكن اشتقاقها من فئات أخرى. مع ذلك، يمكن توريث فئات WinRT غير المُغلقة المُعرَّفة في أماكن أخرى من فئات .NET، وتجاوز توابعها الافتراضية، وما إلى ذلك؛ ولكن يجب أن تظل الفئة المُدارة الموروثة مُغلقة.

يجب أن تحتوي الأعضاء التي تتفاعل مع لغة أخرى على توقيع بأنواع WinRT أو نوع مُدار قابل للتحويل إلى هذه الأنواع. [ 23 ]

جافا سكريبت

يمكن أيضًا برمجة تطبيقات WinRT باستخدام HTML مع JavaScript في الكود الخلفي ، والتي تُشغَّل باستخدام محرك العرض Trident ومحرك JavaScript Chakra ، وكلاهما يستخدمه متصفح Internet Explorer . عند برمجة تطبيق WinRT باستخدام JavaScript، تُكيَّف خصائصه لتتوافق مع اصطلاحات تسمية JavaScript، كما تُربط مساحات الأسماء بكائنات JavaScript.

لغات أخرى

تعمل مايكروسوفت حاليًا على تطوير واجهات برمجة تطبيقات WinRT لتتوافق مع لغات برمجة أخرى غير C++. ومن الأمثلة على ذلك Rust/WinRT، وهي واجهة تُمكّن البرامج المكتوبة بلغة Rust من استخدام واجهات برمجة تطبيقات WinRT وتطويرها. [ 29 ] يُعدّ Rust/WinRT جزءًا من حزمة تطوير تطبيقات ويندوز (المعروفة سابقًا باسم Project Reunion)، وهي مبادرة من مايكروسوفت تهدف إلى التوفيق بين بيئة سطح المكتب التقليدية لنظام ويندوز ونموذج تطبيقات UWP. [ 30 ]

الجسور

مع إطلاق منصة ويندوز العالمية (UWP)، حظيت المنصة بالعديد من جسور واجهة برمجة التطبيقات (API) التي تُسهّل نقل البرامج التي طُوّرت في الأصل لمنصات أخرى، مع الاستفادة من ميزات UWP. وقد وفّرت مايكروسوفت جسورًا لأنظمة أندرويد (التي توقفت عن العمل منذ عام 2016)، و iOS ( Cocoa Touchوتطبيقات الويب التقدمية ، وSilverlight ، بالإضافة إلى تطبيقات سطح المكتب التقليدية لنظام ويندوز (باستخدام حزمة MSIX من Windows App SDK ).

واجهة برمجة التطبيقات (API)

يأتي نظام WinRT مزودًا بواجهة برمجة تطبيقات (API) على شكل مكتبة فئات ، تُتيح للمطورين الوصول إلى ميزات نظام التشغيل Windows 8، مثل واجهة برمجة التطبيقات الخاصة به. ويمكن الوصول إليها واستخدامها من أي لغة برمجة مدعومة.

فئات وقت التشغيل

تُعدّ فئات وقت تشغيل ويندوز مجموعة من حزم تطوير البرامج (SDKs) التي توفر الوصول إلى جميع الوظائف بدءًا من محلل XAML وصولًا إلى وظيفة الكاميرا. وتُنفَّذ هذه الحزم كمكتبات C/C++ أصلية (غير مُدارة).

اصطلاحات التسمية

تتأثر اصطلاحات تسمية المكونات (الفئات والأعضاء الآخرين) في واجهة برمجة التطبيقات (API) بشكل كبير باصطلاحات تسمية .NET التي تستخدم نمط Camel Case (وتحديدًا PascalCase). وتوصي مايكروسوفت المستخدمين باتباع هذه القواعد في حال عدم وجود قواعد أخرى.

تُعرض هذه الاصطلاحات بشكل مختلف في بعض اللغات، مثل جافا سكريبت، التي تُحوّلها إلى اصطلاحاتها والعكس صحيح. يهدف هذا إلى توفير تجربة سلسة ومتسقة بغض النظر عن لغة البرمجة.

القيود والقواعد

بما أن بيئة تشغيل ويندوز تدعم لغات برمجة متعددة، توجد بعض القيود على أنواع البيانات الأساسية لضمان توافقها مع جميع هذه اللغات. يجب على المبرمجين توخي الحذر عند التعامل مع سلوك هذه الأنواع عند استخدامها مع الوصول العام (مثل معلمات الدوال، وقيم الإرجاع، والخصائص، وما إلى ذلك). [ 31 ]

الأنواع الأساسية
في لغات .NET و C++، توجد مجموعة غنية من أنواع البيانات، تمثل أرقامًا مختلفة.
في لغة جافا سكريبت، Numberلا يمكن لـ a أن يمثل سوى ما يصل إلى 53 بت من الدقة.
في نظام التشغيل WinRT، النوع الوحيد من البيانات الرقمية الذي يفتقر إليه هو العدد الصحيح ذو الإشارة 8 بت، مقارنةً بنظامي .NET وC++. لذا، يجب على مطوري JavaScript توخي الحذر عند التعامل مع الأعداد الكبيرة أثناء البرمجة لنظام WinRT.
الأوتار
تكون السلاسل النصية غير قابلة للتغيير في .NET و JavaScript، ولكنها قابلة للتغيير في C++.
يتم تحويل المؤشر الفارغ الذي تم تمريره كسلسلة نصية إلى WinRT بواسطة C++ إلى سلسلة نصية فارغة.
في .Net، يتم تحويل القيمة الفارغة التي يتم تمريرها كسلسلة نصية إلى WinRT إلى سلسلة نصية فارغة.
في جافا سكريبت، يتم تحويل القيمة الفارغة (null) المُمرَّرة كسلسلة نصية إلى WinRT إلى سلسلة نصية تحتوي على الكلمة null null. ويعود ذلك إلى أن الكلمة المفتاحية null في جافا سكريبت nullتُمثَّل ككائن فارغ (null). وتحدث نتائج مماثلة عند تمرير قيمة فارغة (null) undefinedإلى WinRT من جافا سكريبت.
الهياكل
في .NET و C++، تعتبر الهياكل أنواع قيم، ويمكن أن يحتوي هذا الهيكل على أي نوع فيه.
لا تدعم لغة جافا سكريبت الهياكل بشكل مباشر.
في نظام التشغيل WinRT، يُسمح باستخدام البنى فقط لاحتواء أنواع ذات دلالات قيمية، بما في ذلك الأرقام والسلاسل النصية والبنى الأخرى. أما المؤشرات أو مراجع الواجهات فهي غير مسموح بها.
مراجع
في .NET، يتم تمرير الكائنات بالمرجع، بينما يتم تمرير الأرقام والهياكل بالقيمة.
في لغة C++، يمكن تمرير جميع الأنواع عن طريق المرجع أو القيمة.
في نظام التشغيل WinRT، يتم تمرير الواجهات بالمرجع؛ أما جميع الأنواع الأخرى فيمكن تمريرها إما بالقيمة أو بالمرجع. [ 2 ]
المصفوفات
في .NET و C++ و JavaScript، تعتبر المصفوفات أنواعًا مرجعية.
في نظام WinRT، تعتبر المصفوفات أنواع قيم ومقيدة للغاية.
الفعاليات
في .NET و C++، يشترك العملاء في الأحداث باستخدام +=عامل التشغيل.
في لغة جافا سكريبت، يتم استخدام addEventListenerالدالة أو تعيين on<EventName>الخاصية للاشتراك في الأحداث.
في نظام WinRT، يمكن لجميع اللغات استخدام طريقتها الخاصة للاشتراك في الأحداث.
المجموعات
بعض مجموعات .NET ترتبط مباشرة بمجموعات WinRT.
يشبه نوع WinRT Vector المصفوفات ويتم استخدام صيغة المصفوفة لاستهلاكها.
نوع خريطة WinRT هو مجموعة من أزواج المفاتيح/القيم، ويتم عرضه كقاموس في لغات .NET.
التحميل الزائد للأساليب
تدعم جميع لغات WinRT (.NET، C++، JavaScript) التحميل الزائد على المعلمات
يدعم كل من .NET و C++ أيضًا التحميل الزائد على النوع.
في نظام WinRT، يتم استخدام رقم المعلمة فقط للتحميل الزائد.
عدم التزامن
تم تصميم جميع طرق WinRT بحيث تكون أي طريقة تستغرق أكثر من 50 مللي ثانية طريقة غير متزامنة.
يُستخدم نمط التسمية المُعتمد لتمييز الطرق غير المتزامنة <Verb>[<Noun>]Async. بالنسبة لمكتبة وقت التشغيل الكاملة، تُنفَّذ جميع الطرق التي يُحتمل أن تستغرق أكثر من 50 مللي ثانية كطرق غير متزامنة فقط.

بيئة تشغيل ويندوز فون

يستخدم نظام التشغيل Windows Phone 8.1 إصدارًا من بيئة تشغيل Windows يُسمى Windows Phone Runtime . يُمكّن هذا الإصدار من تطوير التطبيقات باستخدام لغتي C# وVB.NET، بالإضافة إلى مكونات بيئة تشغيل Windows باستخدام لغة C++/CX. [ 32 ] على الرغم من أن Windows Phone 8.1 قدّم دعمًا محدودًا، إلا أن النظام الأساسي اندمج في النهاية مع Windows 8.1 في Windows Phone 8.1 .

ويندوز فون 8

يُوفر نظام التشغيل Windows Phone 8 دعمًا محدودًا لتطوير واستخدام مكونات Windows Runtime من خلال Windows Phone Runtime . وقد تم نقل العديد من واجهات برمجة تطبيقات Windows Runtime في Windows 8، والتي تُعنى بوظائف نظام التشغيل الأساسية، إلى Windows Phone 8. [ 33 ] كما تمت إضافة دعم لتطوير الألعاب الأصلية باستخدام C++/CX وDirectX، بناءً على طلب من قطاع تطوير الألعاب.

ومع ذلك، لا يزال إطار عمل XAML الخاص بنظام Windows Phone يعتمد على إطار عمل Microsoft Silverlight نفسه ، كما هو الحال في Windows Phone 7، وذلك لضمان التوافق مع الإصدارات السابقة. وبالتالي، اعتبارًا من عام 2016تطوير تطبيقات XAML غير ممكن باستخدام لغة C++/CX. كما أن التطوير باستخدام HTML5 أو WinJS غير مدعوم على نظام Windows Phone 8.

ويندوز فون 8.1

يدعم نظام التشغيل Windows Runtime على Windows Phone 8.1 الآن نظام Windows 8.1. يُقدّم هذا الإصدار واجهة برمجة تطبيقات Windows Runtime كاملة للمنصة، بما في ذلك دعم WinRT XAML ، وروابط لغات C++/CX ، و HTML5 - JavaScript . كما يتضمن نوع مشروع يُسمى " التطبيقات الشاملة" لتمكين التطبيقات من مشاركة التعليمات البرمجية بين إصدارات Windows Phone 8.1 وWindows.

تم تحديث إطار عمل سيلفرلايت الخاص بنظام ويندوز فون 8. وهو الآن قادر على الاستفادة من بعض الميزات الجديدة في بيئة تشغيل ويندوز.

يستخدم Windows Phone Runtime تنسيق حزمة AppX من Windows 8، بعد أن كان يستخدم سابقًا Silverlight XAP .

مراجع

  1. تشانغ، يي (15 مارس 2017). "بيئة تشغيل ويندوز ليست بيئة تشغيل" . مدونة yizhang82 . تم الاطلاع عليه في 14 يونيو 2021 .
  2. 1 2 أفرام، أبيل (21 سبتمبر 2011). "تفاصيل تصميم وقت تشغيل ويندوز" . InfoQ .
  3. كلوج، برايان؛ سميث، رايان (13 سبتمبر 2011). "إصدار مايكروسوفت: ويندوز 8، معاينة ما قبل الإصدار التجريبي" . أناند تك . مؤرشف من الأصل في 25 أكتوبر 2011.
  4. 1 2 مايكل، مايبيري (2012). كشف النقاب عن WinRT . مدينة نيويورك: Apress . ص 3. ISBN  978-1-4302-4585-8.
  5. "إنشاء تطبيقات Win32 (C++)" . MSDN . مايكروسوفت . تم الاطلاع عليه في 12 يناير 2014 .
  6. "ملفات بيانات تعريف ويندوز (WinMD)" . مرجع واجهة برمجة التطبيقات لتطبيقات UWP. وثائق مايكروسوفت . تم الاطلاع عليه في 20 يوليو 2019 .
  7. ^ دي إيكازا ، ميغيل (15 سبتمبر 2011). "تم إزالة الغموض عن WinRT" . المدونة الشخصية لميغيل دي إيكازا . النشر الذاتي . تم الاسترجاع 15 يناير، 2014 .
  8. "ملفات WINMD تحت الغطاء" . CodeProject . 15 أكتوبر 2012. تم الاطلاع عليه في 14 يونيو 2021 .
  9. "ما هو العبء الإضافي لعملية تحويل البيانات عبر COM عند استدعاء واجهة برمجة تطبيقات WinRT من لغة C#؟" . منتدى MSDN . منشور ذاتيًا . 20 سبتمبر 2011. مؤرشف من الأصل في 16 يناير 2014. تم الاطلاع عليه في 15 يناير 2014 .
  10. 1 2 "استخدام بيئة تشغيل ويندوز من لغة C++ | Build2011 | القناة 9" . Channel9.msdn.com. 14 سبتمبر 2011. مؤرشف من الأصل في 12 أكتوبر 2011. تم الاطلاع عليه في 24 أبريل 2012 .
  11. سيفاكومار، نيش (29 سبتمبر 2011). "Visual C++ وWinRT/Metro - بعض الأساسيات - CodeProject®" . Codeproject.com. مؤرشف من الأصل في 8 ديسمبر 2011. تم الاطلاع عليه في 24 أبريل 2012 .
  12. "استخدام بيئة تشغيل ويندوز من لغة C++ | Build2011 | القناة 9" . Channel9.msdn.com. 14 سبتمبر 2011. مؤرشف من الأصل في 12 أكتوبر 2011. تم الاطلاع عليه في 24 أبريل 2012 .
  13. "مقدمة إلى C++/WinRT - تطبيقات Windows UWP" . docs.microsoft.com . مايكروسوفت. 18 نوفمبر 2022.
  14. lastnameholiu. "أذونات الوصول إلى الملفات - تطبيقات UWP" . docs.microsoft.com . تم الاطلاع عليه بتاريخ 8 أغسطس 2020 .
  15. "تصميم حزمة تطبيقات بسيطة وآمنة - APPX" . مدونة مطوري تطبيقات ويندوز 8. تم الاطلاع عليها بتاريخ 30 ديسمبر 2013 .
  16. "كيفية إضافة التطبيقات وإزالتها" . TechNet . مايكروسوفت. 31 مايو 2012. تم الاطلاع عليه في 4 أكتوبر 2012. لتمكين التثبيت الجانبي على جهاز كمبيوتر يعمل بنظام Windows 8 Enterprise غير منضم إلى نطاق، أو على أي جهاز كمبيوتر يعمل بنظام Windows® 8 Pro، يجب استخدام مفتاح تنشيط منتج التثبيت الجانبي. لتمكين التثبيت الجانبي على جهاز يعمل بنظام Windows® RT، يجب استخدام مفتاح تنشيط منتج التثبيت الجانبي. لمزيد من المعلومات حول مفاتيح تنشيط منتج التثبيت الجانبي، راجع ترخيص Microsoft المجمع.
  17. "ويندوز 8: فوضى مترو" . مجلة الكمبيوتر الشخصي. مؤرشف من الأصل في 18 نوفمبر 2018. تم الاطلاع عليه في 8 سبتمبر 2012 .
  18. "تستخدم مايكروسوفت الآن مصطلح 'نمط واجهة المستخدم الحديثة' للإشارة إلى تطبيقات 'نمط مترو' في نظام التشغيل ويندوز 8" . تم الاطلاع عليه بتاريخ 10 أغسطس 2012 .
  19. "ما هو تطبيق متجر مايكروسوفت؟" . مركز مطوري ويندوز . تم الاطلاع عليه في 1 أكتوبر 2012 .
  20. "ما هو التحميل الجانبي وكيفية تثبيت التطبيقات جانبياً على نظام ويندوز 10؟ [ التفاصيل ] " . سيليكوفيليك . 27 يوليو 2019. مؤرشف من الأصل في 14 يونيو 2021. تم الاطلاع عليه في 14 يونيو 2021 .
  21. "البرمجة غير المتزامنة (تطبيقات متجر ويندوز)" . MSDN . مايكروسوفت . تم الاطلاع عليه في 12 يناير 2014 .
  22. "شبكة .NET تحصل على فرصة جديدة للحياة" . مؤرشف من الأصل بتاريخ 24 سبتمبر 2011. تم الاطلاع عليه بتاريخ 16 سبتمبر 2011 .
  23. 1 2 "استخدام بيئة تشغيل ويندوز من لغة سي شارب وفيجوال بيسك | Build2011 | القناة 9" . Channel9.msdn.com. 14 سبتمبر 2011. تم الاطلاع عليه في 24 أبريل 2012 .
  24. "داخل تصميم C++/CX - مدونة فريق Visual C++ - الصفحة الرئيسية للموقع - مدونات MSDN" . Blogs.msdn.com. 20 أكتوبر 2011. تم الاطلاع عليه في 24 أبريل 2012 .
  25. تشارلز (26 أكتوبر 2011). "GoingNative 3: حلقة C++/CX مع ماريان لوبارو | C9::GoingNative | القناة 9" . Channel9.msdn.com. مؤرشف من الأصل في 7 مايو 2012. تم الاطلاع عليه في 24 أبريل 2012 .
  26. ١ ٢ نظرة معمقة على لغة C++ لتطبيقات نمط Metro مع ديون برويس في //Build
  27. "CSWinRT: كيفية استدعاء واجهات برمجة تطبيقات Windows WinRT من تطبيقات .NET5" . TECHCOMMUNITY.MICROSOFT.COM . 22 سبتمبر 2020. تم الاطلاع عليه في 14 يونيو 2021 .
  28. مايبيري، مايكل (2012)، "بناء تطبيق .NET باستخدام WinRT" ، WinRT Revealed ، بيركلي، كاليفورنيا: Apress، ص 29-46 ، doi : 10.1007/978-1-4302-4585-8_3 ، ISBN  978-1-4302-4584-1تم الاطلاع عليه بتاريخ 14 يونيو 2021
  29. "microsoft/winrt-rs" . GitHub . 28 سبتمبر 2021.
  30. "microsoft/WindowsAppSDK: تُمكّن حزمة تطوير تطبيقات ويندوز (Windows App SDK) جميع تطبيقات سطح المكتب من استخدام واجهة مستخدم ويندوز الحديثة، وواجهات برمجة التطبيقات (APIs)، وميزات النظام الأساسي، بما في ذلك دعم التوافق مع الإصدارات السابقة، ويتم توفيرها عبر NuGet" . GitHub . تم الاطلاع عليه بتاريخ 12 أكتوبر 2021 .
  31. "عشر نصائح لكتابة تطبيق هجين بأسلوب مترو - Build2011 - القناة التاسعة" . القناة التاسعة . مايكروسوفت.
  32. "مرجع واجهة برمجة تطبيقات ويندوز فون" . مرجع واجهة برمجة تطبيقات ويندوز فون . مايكروسوفت . 21 يوليو 2014.
  33. "واجهة برمجة تطبيقات وقت تشغيل ويندوز فون" . microsoft.com . مايكروسوفت. 21 يوليو 2014.