03-10-12, 03:00 PM
كاتب الموضوع : magicsword
بسم الله الرحمن الرحيم
سوف نبدا ان شاء الله دورة حول كيفية نقل برامجك المكتوبة بلغة الفيجوال بيسك دوت نت للعمل تحت انظمة التشغيل الاخرى مثل اللينيكس و الماك و غيرها من منصات التشغيل ولكن سوف نركز على نظام اللينيكس بسبب سهولة استخدامة و توفر امكانيات تشغيلة. سوف تكون هذة الدورة ان شاء الله المصدر العربي الوحيد حول الموضوع.
مقدمة:
انا وغيري من مبرمجي الفيجوال بيسك ننظر بعين الاعجاب الى مبرمجي ال C++ و الجافا ليس لقدرة اللغات المذكورة على تصميم مختلف انواع البرامج ولكن لقدرتة هؤلاء المبرمجين على تصميم و كتابة برامج تعمل تحت اي منصة تشغيل .....فمثلا يمكن لبرامج الجافا ان تحت تعمل تحت اي منصة ونظام تشغيل مثل نظم تشغيل الهواتف المحمولة و البلاي ستيشن وغيرها من الانظمة طالما توفرت JRE (Java Runtime Environment) .....
ما الحاجة الى دعم الانظمة الاخرى؟
قديما كنا لا نسمع عن اي نظم تشغيل غير ميكروسوفت ويندوز حيث كانت اغلب انظمة التشغيل الاخرى كالينيكس مازلت في المهد وغير جاهزة للاستخدام و كان مستخدميها فقط من محترفي الحاسب الالي Computer Geeks ......ولكن مع وصول هذة الانظمة الى تطور كبير وسهولة في الاستخدام ادى ذلك الى انتشار استخدامها على مستوى العالم و ايضا ظهور انظمة اخرى مثل Apple iPhone OS و Sony Playstation 3 و Google Android .... فكان لابد من توفير مكتبات برمجية SDK لدعم هذة الانظمة....فانتشرت البرمجيات الموجهة لهذة الانظمة بكثرة...
Ubuntu Software Store
http://en.wikipedia.org/wiki/Ubuntu_Software_Center
Android App store
https://market.android.com/
اين Visual Basic ؟
على الرغم من انتشار المكتبات البرمجية الموجهه لدعم تلك الانظمة الا انها في الغالب تعتمد على اسلوب C++ في كتابة الكود مما يجعل تعلمها يستغرق الكثير من الوقت والجهد وخاصة عندما يكون المبرمج قد استخدم لغة VB لانة سوف يحتاج الى وقت لكي يتقن اسلوب كتابة الكود في C++ . الى وقت قريب ظل VB.Net حكرا على نظام التشغيل Windows بسبب ان Microsoft Dot Net Framework هي منصة تشغيل برامج احتكارية ومغلقة المصدر مما يعرقل تضمينها في الكثير من الانظمة وخاصة الانظمة الحرة مثل Linux و Android التي تخضع لترخيص GNU GPL التي تلزم المبرمج باتاحة الوصول الى الكود المصدري و حرية تعديلة بدون اي شروط....وهذا يتنافى مع سياسة ميكروسوفت الاحتكارية.
Dot Net Framework
في السنوات القليلة الماضية وفي محاولة من Microsoft لنشر منصة Dot Net وقعت شركة Microsoft عقد شراكة مع شركة Novell المالكة لنظام التشغيل Linux Suse ينص على نقل دعم تطبيقات الدوت نت الى انظمة التشغيل الاخرى و منها Linux من خلال تطوير بديل لل Dot Net Framework يكون حر و متاح للاستخدام من خلال العديد من انظمة التشغيل..........هذا البديل يسمى Mono
Mono Framework
هو منصة حرة لتشغيل التطبيقات ويسمح للمطورين ببناء تطبيقات دوت نت متعددة المنصات وهو البديل الحر لل Microsoft Dot Net Framework وهو موجة اساسا لنظام اللينيكس.
مكونات Mono
C# Compiler مترجم للغة C# وهي اللغة الاساسية التي يدعمها ال Mono وهو متوافق مع كل اصدارات اللغة حتى الاصدار C# 4
Mono Runtime ولة نفس وظيفة CLR Common Language Runtime في الدوت نت......حيث يحتوي على Just In Time Compiler (JIT) و garbage collector و نظام ادارة تعدد المسارات threading system.
Base Class Library يوفر Mono مكتبة كاملة من ال classes التي تمكن المطور من برمجة التطبيقات بسرعة وكفائة و تتوافق اغلب هذة المكتبات مع مكتبات الدوت نت حتي في الاسماء.
Mono Class Library بالاضافة الى المكتبات الاساسية يوفر Mono مكتبات خاصة بة لا تتوافر في الدوت نت ... حيث توفر وظائف اضافية خاصة في بناء البرامج الموجهة ل Linux مثل مكتبات Gtk+, Zip files, LDAP, OpenGL, Cairo, POSIX.
ما فؤائد استخدام Mono ؟
1. الاستفادة من تطبيقات الدوت نت..... بعد نجاح Microsoft Dot net Framework اصبح هناك الملايين من المطورين الذين يستخدمون C# وال VB.NET في بناء التطبيقات واصبح هناك اطنان من المواقع و الكتب و الدروس التي توفر الدعم للدوت نت .....يمكنك ان تستفيد من كل ذلك في برمجة تطبيقات لانظمة تشغيل اخرى غير الويندوز بدون حاجة الى تعلم لغة برمجة اخرى مما يوفر لك الكثير من الوقت والمجهود.
2. Higher-Level Programming..... يمكنك Mono من الاستفادة من خصائص لغات البرمجة الحديثة مثل automatic memory management الادارة الذاتية للذاكرة - reflection - generics- threading.
3. تعدد المنصات... الغرض الاساسي من بناء مشروع Mono هو بناء تطبيقات متعددة المنصات.... حيث يمكن للتطبيق ان يعمل تحت المنصات التالية:
Linux, Microsoft Windows, Mac OS X, BSD, and Sun Solaris, Nintendo Wii, Sony PlayStation 3, Apple iPhone.
4. دعم CLR مما يمكنك من كتابة البرنامج باي لغة برمجة تختارها مثل C# او VB.NET
Start with Mono
اول خطوة في بناء تطبيقات باستخدم Mono تبدا ب تحميل و تثبيت منصة Mono وهو يشبة في طريقة عملة Microsoft Dot Net Framework
اذهب الى صفحة التحميل http://www.go-mono.com/mono-downloads/download.html ثم اختار Windows ثم اختار Mono for Windows, Gtk#, and XSP.
بعد اكتمال التحميل قم بتثبيتة مثل اي برنامج ...........مبروك اصبح لديك منصة تشغيل البرامج Mono.... ستجد اختصارات لبعض ادوات ال Mono في قائمة Start سنتطرق اليها لاحقا.
يمكنك الحصول على الكود المصدري لمنصة Mono:
http://mono-project.com/Compiling_Mono
MoMA
سوف تحتاج الى اداة تسمى MoMA... وهي اداه مجانية تستخدم في فحص البرامج لمعرفة المشاكل التي يمكن ان تواجها في نقل تطبيقات دوت نت للعمل تحت منصة Mono مثلا استخدامك لوظيفة في الدوت نت لا يدعمها Mono او استخدامك ل Windows API وهو شئ غير مدعوم في Linux.
يمكنك تحميل MoMA
http://www.go-mono.com/archive/moma/Moma2-8.zip
لمزيد من المعلومات
http://mono-project.com/MoMA
MonoDevelop
ايضا سوف نحتاج الى بيئة تطوير لمنصة Mono وافضل بيئة تطوير مجانية لل Mono هي Mono Develop يمكنك تحميلها من هنا
http://download.xamarin.com/monodeve...evelop-2.6.msi
وايضا يجب تثبيت مكتبات Gtk#
http://ftp.novell.com/pub/mono/gtk-s...2.10.win32.msi
MonoDevelop هي بيئة تطوير مخصصة ل C# ولكنها تدعم الفيجوال بيسك ولكن دعمها للغة فيجوال بيسك فية قصور كبير. يمكن ل Mono Develop جلب والتعامل مع مشاريع Microsoft Visual Studio حتى الاصدار 2010.
سوف نستخدم Microsoft Visual Studio لكتابة الكود ورسم الواجهات وسوف نستخدم Mono Develop لعمل debug للبرامج تحت منصة Mono. يمكن عمل Debug للبرامج تحت منصة Mono مباشرة من Microsoft Visual Studio بدون الحاجة ل MonoDevelop باستخدام MonoTools ولكنها غير مجانية http://mono-tools.com/
لمزيد من المعلومات عن MonoDevelop:
http://monodevelop.com/
......
انتهي الدرس الاول من الدورة
ومنتظر الاراء و الاسئلة
بالتوفيق
Magic Sword