تفصيل حول بنية النظام: ويندوز فون 8 Windows Phone

رأيت الكثير من الأسئلة واللبس حول الويندوز فون 8 ، كان على رأسها أن الويندوز فون 8 ما هو إلا تطوير للويندوز فون 7 ، وهذا أدى إلى الكثير من الافتراضات لدى المعتقدون أهمها أن الأجهزة الحالية سيتم تطويرها لتدعم الويندوز فون 8. وسأحاول أن أوضح هذا الأمر من ناحية هندسية برمجية بنبوية ، أيما شئت سمها المهم أن تصل الفكرة، وللعلم الحديث هنا سيطول.

عندما صدر الويندوز فون 7 ، قمت بالحديث عن البرمجة لهذا النظام ، حيث البرمجة المتاحة كانت بخيارين هما Silverlight  و XNA وكلاهما كود مدار Managed Code أي دوت نت فقط (C# and VB.NET)،
أما الكود الغير مدار Native Code – السي بلس بلس C++ –  فهو ممنوع إطلاقاً ، وهذا معناه أنك من خلال الكود المسموح لك ( الكود المدار ) لا تستطيع الوصول المباشر إلى دوال النظام الأساسية واستدعائها ( Win32 API ) ،
وعليك فقط متابعة ما تصدره مايكروسوفت من هذه الدوال في إطار الكود المدار فقط.

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

ما هو السبب ؟

سبب العلة الرئيسي هو أن منصة الدوت نت المستخدمة في الويندوز فون 7 مبنية على .NET Compact Framework وهو أمر بالكاد تقبلته أول ما قرأت عنه لعدة أسباب سيتضح بعضها بعد قليل.

ال .NET Compact Framework 3.7 هو إصدار المنصة التي تم استخدامها في الويندوز فون 7 واختصارا NETCF ، وهو نسخة مصغرة من الدوت نت تعمل على نظام التشغيل Windows Compact Embedded (WinCE) لتعمل على الأجهزة ذات العتاد المحدود مثلا الجوالات ، الثلاجات ، السيارات ، أي شيء لديه حدود في الذاكرة والمعالج ، ومرة أخرى طالما هنالك حدود في السعة والذاكرة ، سيكون هنالك حدود في الدوال ، وبالتالي حدود في البرامج …… .

ولكي يكتمل الموضوع ولا انسى شيء ، ال NETCF 3.7  هو نسخة محدثة عن NETCF 3.5 ، والاختلافات كالتالي

يتكون NETCF 3.5 من
1-  NETCF 3.5 runtime المحرك
2-  NETCF 3.5 BCL مكتبة الدوال والأصناف
3-  NETCF 3.5 UI programming model مبنى على الويندوز فورمز !!!!!!

أما NETCF 3.7 يتكون من السابق نفسه بهذه التعديلات بالترتيب
1-  NETCF 3.7 runtime بتعديلات هائلة
2-  NETCF 3.7 BCL (طبعا بإضافة مكتبات Silverlight 3 مع تعديلات بسيطة  )
3-  تم استبدال UI programming model بالخيارات التالين( Silverlight 3 ، XNA  )

أعتقد الصورة وضحت الآن وهي أن ال NETCF 3.5 مبنية واجهته للعمل للويندوز فورمز ، وقد تم استبدالها بكافة السبل بواجهة سيلفرلايت للعمل على الويندوز فون ، وهذا ما تبعه الكثير من التعديلات والجهد على مايكروسوفت ،

ولكن يكفي الحديث أنه مثلا عند إصدار مايكروسوفت لأي تعديل أو نسخة من السيلفرلايت ( مثلا الإصدار الرابع ) لا يمكنهم بسهولة نقله على الجوال ، لأن السيلفرلايت في حقيقته يستخدم جزء فوقي خاص من منصة الدوت نت العادية،
وهذا الجزء الخاص يجب تعديله مرة أخرى ليتوافق مع NETCF 3.7 ، ومن ثم تعديله مرة ثانية أو ثالثة ليتوافق مع الجوال ، يعني فيلم هندي ،
لذلك تأخر مثلا دعم عرض النص العربي في الويندوز فون ( حتى نزول 7.1 )  مع أن السيلفرلايت 4 كان قد صدر قبل إصدار الويندوز فون 7.0  ،
هذا بسبب الجهد الشاق الذي كان يتوجب على المطورين القيام به لدعم السيلفرلايت 4 على NETCF 3.7.
الكثير والكثير من المعاناة والجهد والحدود ، بلا جدوى ، وهذا ما أدى إلى الويندوز فون 8

مرحبا بالويندوز فون 8 ( احبيبي )

عند الحديث عن الويندوز فون 8 ، فهنا الحديث عن نقلة نوعية في بنية النظام ، بل هنا نظام جديد كليا والشبه بينه وبين الويندوز فون 7 ، هو كالشبه بين الفيجوال بيسك 6 ، والفيجوال بيسك دوت نت .

الاختلافات كثيرة ويكفي الاختلاف في نظام التشغيل الأساسي ، فالويندوز فون 7 الذي يعمل على Compact Framwork كان يتطلب Windows Compact والذي كان مخصص للويندوز موبايل القديم حيث تم تطويره من من الإصدار السادس إلى السابع ليماشي المطلوب ،
أما الويندوز فون 8 فهو يعمل على نظام تشغيل مخصص مشابه بشكل كبير لنظام التشغيل ويندوز 8 مع بعض الخصومات ، أي أن النظام السابق Windows Compact تم التخلص منه واستخدام نظام مشابه للويندوز العادي ، وهذا يعني أنه يمكنك مستقبل استخدام بعض المكتبات في تطبيقاتك بين الويندوز فون 8 والويندوز 8 بدون تعديل ، وهو ما توفره مايكروسوفت في المكتبة المحمولة Portable Class Library.

عندما يكون أساسا النظام مشترك أو واحد بين الويندوز فون والويندوز العادي ( المقصود بالمشترك هنا هي نفس ملفات الكيرنال والتعاريف والولوج للذاكرة .. إلخ ) ، سيكون أسهل للمهندسين في مايكروسوفت التعديل والتطوير فهو في النهاية نظام واحد وليس نظامين كالسابق ، فما سيتم تعديله وتطويره في الويندوز العادي سيكون متاح للويندوز فون 8 بدون جهد يذكر ( نسبيا ) .

ماذا عن منصة الدوت نت المستخدمة ؟!!!.

هذا هو السؤال المهم وسبب كتابة هذا الموضوع ، بالتأكيد يجب استبدال .NET Compact Framework المخصصة للويندوز فون 7 على ال Win CE  بمنصة جديدة على النظام المشترك ،

أعزائي الكرام رحبوا معي ب .NET for Windows Phone 8 والذي يستخدم CoreCLR ،
إذا كنت لم تفطر فول هذا الصباح ستعلم أنها نفس منصة الدوت نت العادية المخصصة للويندوز 8 ، ولكن مع حذف الدوال التي لا تلزم على الجوال وهو أمر منطقي ، وتعديلات وإضافات أخرى أيضا منطقية ، وأضيف هنا عما لتوي قلته عن الفطور ، أنك لو كنت نبيها ، فستعلم أن CoreCLR ما هي إلا مكتبات العمل للسيلفرلايت مباشرة مرة أخرى مع بعض التعديلات والإضافات.
هذا يعني أن السيلفرلايت سيعمل بمكتباته مباشرة على الجوال ، ولا داعي لتعديله مرتين ، مرة ليتوافق مع منصة الكومباكت ( وهي الخطوة الصعبة ) ومن ثم تعديله ليتوافق مع الجوال ( وهي الخطوة الأسهل ) ، بل هنا يتم تعديله فقط لتوافق مع الجوال ( وهي الخطوة الأسهل ).

التحدي هنا لمطوري مايكروسوفت هو دعم التطبيقات السابقة التي كانت تعمل على الويندوز فون 7 ، لتعمل على الويندوز فون 8 ، فهو نظام جديد ببنية جديدة ، ولكن المطورون اجتهدوا كل الجهد وأتموا الأمر ، فبما أن تطبيقات السيلفرلايت sandbox مغلقة ومغلفة عن النظام ، هنا مع النظام الجديد لدينا بنية مختلفة وقابلية للوصول للنظام ، فوداعا لل sandbox ، ولكن أن تتخيلوا الجهد الذي بذلوه في دعم هذه التطبيقات !

هنالك العديد من الاستنتاجات بدورها بعد دعم النظام الجيد وبعد دعم منصة الدوت نت بشكل أوسع منها

لدينا في هذا النظام قابلية الوصول المباشر ولدينا قابلية استخدام الكود الغير مدار Native code  وأهلا بالسي بلس بلس ، هذا يعني لدينا تطبيقات أقوى لا محدودة .

أيضا يعني أن السي شارب 5 ، والفيجوال بيسك 11 – الموجودين في منصة الدوت نت 4.5 – بكل خصائصهم الجديدة تم دعمها على الجوال بشكل افتراضي مثلا البرمجة الغير متزامنة async والبرمجة الموازية للأنوية المتعددة ( طبعا مع دعم نظام التشغيل بشكل مستقل لهذا الأمر ).

أيضا يعني أن تطبيقات الويندوز فون 7 القديمة ستكون أسرع وأقل استهلاك للذاكرة على الويندوز فون 8 ، ببساطة لأنها تستخدم مكتبات سيلفرلايت مباشرة وليست معدلة لتعمل على منصة دخيلة كالسابق .

لهذا يتطلب الأمر شراء جهاز جديد يعمل بالويندوز فون 8 ، لأن الويندوز فون 8 يتطلب عتاد جديد ببنية جديدة، لا أقول أنه لن يعمل على العتاد السابق ، بل أقول أن الكفاءة ستكون أفضل على العتاد الجديد، وأقل جهدا على الشركات من تعديل النظام الجديد ليتوافق مع عتادها القديم.

أيضا لهذا لن تقوم مايكروسوفت بإصدار تحديث للويندوز 8، فالنظام الجديد ليست نظام معدل، بل هو نظام جديد كليا ، والذي يفترض من باب أن يصدر هذا التحديث هو شركات التصنيع ، مثلا شركة HTC  تدفع ثمن تراخيص النظام الجديد لكل مستخدم وتقوم بتعديله وإرساله كتحديث للأجهزة الخاصة بها ، وهذا ما لن يتم ، حظاً أوفر لنا مستخدمي الويندوز فون 7.

شكرا لكم وأعتذر عن الإطالة.

About the author

خليل سليم

Leave a Comment

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.