متعدد المنصات: الفرق بين النسختين

[مراجعة غير مفحوصة][مراجعة غير مفحوصة]
تم حذف المحتوى تمت إضافة المحتوى
ط استرجاع تعديلات Mtellesy (نقاش) حتى آخر نسخة بواسطة 41.252.23.51
وسمان: تحرير من المحمول تعديل ويب محمول
طلا ملخص تعديل
سطر 7:
[[تصنيف:برمجيات]]
 
== منصات ==
==
المصطلح "منصة" قد يشير الى نوع من المعالجات او\و كيانات مادية اخرى التي تشتغل عليها [[نظام تشغيل|نظم التشغيل]] او التطبيقات , او قد يعنى بالمنصة نظام التشغيل على الحاسوب او على اي كيان مادي أخر له نفس نظام التشغيل .
من امثلة المنصات المشهورة منصة مايكروسوفت ويندوز التي تعمل على معمارية X86. أيضا منصة [[لينوكس\يونيكس]] و [[ماك او إس]] , كل منهم يعتبر متعدد المنصات .
جميع التطبيقات التي يتم تطويرها , تعتمد اثناء تطويرها على المنصة التي سوف تعمل عليها و التي تعتمد على لغة البرمجة التي سوف تكتب بها و نظام التشغيل التي سوف تعمل عليه , لذلك بعض اللغات توفر إمكانية العمل على عدة نظم تشغيل و منصات حاسوبية, من امثلتها لغة الجافا التي تعتبر كمنصة وسيطة بين نظام التشغيل و الكيان المادي و بين البرنامج المكتوب بلغة الجافا تعرف هذه المنصة ب[[الألة الإفتراضية]].
 
=== منصات الأجهزة ===
منصات الأجهزة تشير الى معمارية ما للحاسوب او المعالج مثل معمارية x86 و x64 , مثل هذه المعمارية يمكن يشتغل عليها أكثر من نظام تشغيل مثل انظمة [[Windows]] , [[Linux]], [[OpenBSD]], [[NetBSD]], [[Mac OS X]] و [[FreeBSD]].
 
منصات الأجهزة تضم ايضا كل منصات ألعاب الفيديو مثل منصات Playstion و Xbox و Nintendo, حيث توفر هذه المنصات بيئة متكاملة من حيث العتاد و نظام التشغيل لغرض تشعيل الألعاب و بعض الخدمات الترفهية الأخرى , تتوفر مع هذه المنصة في العادة معدات تطوير خاصة بالمطورين .
 
===المنصات البرمجية===
في العادة يشار بهذا المسمى الى نظم التشغيل التي تعمل على منصات الأجهزة و تتواصل معها , و تعمل بشكل اساسي كوسيط بين تلك المنصات و المستخدم, و تقوم بتزوير المستخدم بالعديد من الخدمات و تسهل عليه عمل العديد من المهمات, أيضا تقوم بتنظيم و إدارة موارد المنصة التي تعمل عليها مثل ادارة المعالج و الذاكرة .
 
ايضا يشار أحياناً بالمنصات البرمجية الى بيئة البرمجة و التي توفر لك الأدوات لتطوير التطبيقات و البرمجيات من أمثلتها [[Java]] .
من المنصات الاخرى , المنصات التي توفر بيئة عمل للتطبيقات التي صممت في الغالب خصيصاً لهذه المنصات , من اهم امثلتها منصة [[Facebook]] و غيرها من المنصات التي تعمل على الإنترنت .
 
== برمجيات متعددة المنصات ==
<nowiki>لكي يعتبر اي تطبيق كبرنامج متعدد المنصات , يجب ان يكون قادراً على العمل بكامل وظائفه الأساسية على أكثر من معمارية حاسوبية او نظام تشغيل.
عملية التطوير هذه البرامج ستكون في العادة بإستخدام عدة أدوات و لغات برمجية المتناسبة مع كل منصة و عدة فرق تطوير, يعني جهد اكثر و اموال اكثر و وقت اطول من المقدار الذي يستغرقه في العادة في عملية تطوير تطبيق لمنصة واحدة , خصوصا فيما يتعلق بمرحلة الإختبار , بكل بساطة هي عملية تطوير تطبيق لكل منصة و ليس مجرد تطبيق واحد .</nowiki>
 
=== تطبيقات الويب ===
 
يشار في العادة الى تطبيقات الويب على أنها متعددة المنصات , بسبب حقيقة انه يمكن الوصول اليها من عدة أنواع من المتصفحات داخل عدة أنواع من نظم التشغيل , مثل هذه التطبيقات توظف بشكل عام نموذج[[Client–server model|العميل/الخادم]] , وتختلف التطبيقات من حيث التعقيد و الوظائف .
 
تطبيقات الويب الأساسية تقوم بأداء كل أو معظم العمليات و المعالجات على الخادم server، وتمرر النتيجة إلى متصفح الويب الخاص بالعميل.
جميع التفاعلات بين المستخدم والتطبيق تتكون من التبادلات بسيطة من طلبات الحصول على البيانات والردود على هذه الطلبات القادمة من الخادم.
ما يجعل هذه التطبيقات تعمل على اكثر من منصة و إن كانت منصة ذات قدرات محدودة انها لا تقوم باي عمليات كبيرة على المنصة , و كل العمليات المعقدة تكون في جانب الخادم .
 
=== ألعاب الفيديو ===
 
مصطلح (متعدد المنصات) يمكن ان يعنى به أيضا العاب الفيديو التي يتم اطلاقها لأكثر من منصة ألعاب او منصة قادرة توفر ميزة تشغيل الألعاب , من امثلة هذه الألعاب :
[[Grand Theft Auto 5]]
[[FIFA 16]]
[[Tomb Raider: Legend]]
 
كل منها تم إطلاقها في عدد من المنصات المشهورة مثل [[Wii]], [[PlayStation 3]], [[Xbox 360]], [[الكمبيوتر الشخصي PC]].
 
عملية إطلاق الألعاب على أكثر من منصة قد يسبب في إطالة فترة التطوير , خصوصاً بسبب تعديل اللعبة مع مميزات المنصة التي سوف تعمل عليه , الذي يجعل الشركات تلجأ في بعض الأحيان الى إطلاق اللعبة في وقت أخر على بعض المنصات .
هذه الحالات تحدث في العادة عندما يتم إطلاق منصة العاب جديدة ,لأن المطورون يحتاجون لبعض الوقت للتعود و لتعلم التطوير على هذه المنصات الجديدة .
 
بعض الألعاب قد لا تكون متعددة المنصات لسببين , الأول بسبب أنها من تطوير شركات الطرف الأول التي تتبع الشركة المالكة للمنصة, فيتم تطوير الألعاب بشكل حصري على منصة الشركة , و السبب الثاني ناتج من شروط العقد الذي قد يتم احياناً بين الشركة المالكة للمنصة و شركات الطرف الثالث المطورة للعبة الذي ينص على حصرية اللعبة لهذه المنصة لفترات قد تكون طويلة او قصيرة, من أمثلة الألعاب الحصرية :
Uncharted الحصرية على منصة Playstation
Gears of War الحصرية على منصة Xbox
 
== البرمجة المتعددة المنصات ==
برمجة متعددة المنصات هي العمليات التي يتم فيها كتابة برنامج يعمل على أكثر من منصة واحدة .
 
=== طرق برمجة المنصات المتعددة ===
يوجد عدة طرق مختلفة لبرمجة التطبيقات المتعددة المنصات , أحدها و أبسطها هي تصميم تطبيق من مجموعة مختلفة من الشفرات المصدرية , أي مثلا ان نسخة الويندوز سوف يتم كتابتها بلغة برمجة و تحمل شفرة مصدرية خاصة بها , و نسخة ماكنتوش سوف يتم كتابتها بلغة برمجة و شفرة مصدرية مختلفة عن السابقة , و بهذه الشكلية لكل المنصات الأخرى .
رغم ان هذه الطريقة تعتبر مباشرة لحل المشكلة , الا انها تزيد من تكاليف التطوير او تزيد من طول المدة الزمنية المخصصة للتطوير او كلاهما.
الفكرة وراء هذه الطريقة هي بإنشاء برنامجين او اكثر و لجميع البرامج سلوك متشابه.
و هذا قد يعني ان التطوير بهذه الطريقة سوف ينتج عنه مشاكل اكثر التي تحتاج الى تتبع و اصلاح , لانه مع شفرة مصدرية مختلفة لكل برنامج تأتي الحاجة لمبرجين أكثر , الذي بسبب عيوب في نسخة تختلف عن عيوب النسخة الأخرى .
 
أيضاً هنالك طريقة اخرى مستخدمة لتطوير هذا النوع من البرامج ,تعتمد هذه الطريقة على إستخدام برمجيات موجودة مسبقاً ,تقوم بإخفاء الإختلافات بين المنصات على التطبيق الذي يعمل عليها , بحيث ان التطبيق يكون جاهلاً بالمنصة التي يشتغل عليها, من اهم الأمثلة على هذه البرمجيات هو [[آلة جافا الافتراضية]] , التي تعمل كوسيط بين نظام التشغيل و البرنامج .
 
=== أدوات و بيئات التطوير ===
 
يوجد عدد كبير من الأدوات التي تسهل عليك و تسمح لك بتطوير تطبيقات متعددة المنصات , تختلف هذه الادوات من حيث الطرق التي تعتمد عليها في طرق التطوير , منها:
* [[AppearIQ]]: إطار عمل يدعم عمليات التطوير و الإطلاق للتطبيق داخل المؤسسات , يستخدم في عملية البرمجة [[HTML5]] التي تتميز بامكانية عملها على مختلف المنصات و مخصص للأجهزة المحمولة و اللوحيات .
* [[Eclipse]]: منصة تطوير متعددة المنصات و مفتوحة المصدر , يتم التطوير عليها بإستخدام لغة [[جافا]] بشكل عام .
* [[Mono]]: نسخة مفتوحة المصدر من [[Microsoft]] [[.Net]] .
*[[Xamarin]]: منصة تطوير لإطلاق تطبيقات متعددة المنصات بإستخدام لغة [[#C]].