03-10-12, 03:01 PM
كاتب الموضوع : magicsword
بسم الله الرحمن الرحيم
تناولنا في الدرس الاول من الدورة مقدمة مبسطة عن منصة تشغيل التطبيقات mono و بعض البرامج الهامة التي سوف نحتاج اليها لنقل برامجنا المكتوبة بلغة vb.net للعمل تحت نظام التشغيل اللينيكس. في الدرس االثاني من الدورة سوف نبدا في بناء تطبيقات بلغة vb.net تستطيع العمل في نظام Linux من خلال mono.
محتويات الدرس الثاني
1. التقنيات المدعومة تحت mono
2. تطبيق Hello World
3. مقدمة عن التطبيقات الرسومية GUI
4. تطبيق Windows Forms
التقنيات المدعومة تحت mono
قبل ان نبدا في تطوير البرامج لمنصة mono يجب ان نتعرف على التقنيات التي يدعمها mono والتقنيات التي لا يدعمها mono ... حتى نعرف نوعية التطبيقات التي يمكن او لا يمكن تطويرها لمنصة mono.
Microsoft .NET Framework 1.1
C# 1.0 - دعم متكامل
المكتبات الاساسية mscorlib, System, System.Xml - دعم متكامل
ASP.Net 1.1 - دعم متكامل
ADO.Net 1.1 - دعم متكامل
Winforms/System.Drawing 1.1 - دعم متكامل
System.Transactions - دعم متكامل
System.Management - غير مدعومة لانها لا تتوافق مع اللينيكس
System.EnterpriseServices - غير مدعومة
-------------------------------------------------------------------------------------------------
.NET 2.0
C# 2.0 (generics) - دعم كامل
Core Libraries 2.0: mscorlib, System, System.Xml - دعم كامل
ASP.Net 2.0 - دعم كامل
ADO.Net 2.0 - دعم كامل
Winforms/System.Drawing 2.0 - دعم كامل
-------------------------------------------------------------------------------------------------
.NET 3
WCF - دعم غير كامل
WPF - غير مدعوم
WF (Work Flow projects) - غير مدعوم
-------------------------------------------------------------------------------------------------
.NET 3.5
C# 3.0 - دعم متكامل
System.Core - دعم متكامل
LINQ - دعم متكامل
ASP.Net 3.5 - دعم متكامل
ASP.Net MVC - دعم متكامل
LINQ to SQL - دعم متكامل
-------------------------------------------------------------------------------------------------
.NET 4
C# 4.0 - دعم متكامل
ASP.Net 4.0 - دعم متكامل
ASP.Net MVC 1 and MVC 2 - دعم متكامل
System.Numerics - دعم متكامل
Managed Extensibily Framework - دعم متكامل
Dynamic Language Runtime - دعم متكامل
Client side OData - دعم متكامل
Parallel Framework and PLINQ - دعم متكامل
CodeContracts - دعم غير متكامل
EntityFrameworks - غير مدعومة
Server-side OData - غير مدعومة
المصدر
http://www.mono-project.com/Compatibility
-------------------------------------------------------------------------------------------------
تطبيق Hello World
سوف نبدا باذن الله بتصميم اول برنامج لنا على منصة mono بلغة vb.net باستخدام Visual Stdio 2010 كبيئة تطوير و باستخدام MonoDevelop لترجمة وتشغيل البرنامج (debugger) لمنصة mono
تطبيق Hello World هو تطبيق Console بدون واجهة رسومية وسوف يكون موجة لاطار العمل Microsoft .NET 3.5.
1. في Visual Stduio 2010 قم بانشاء مشروع جديد من نوع Console Application ويكون اسمة HelloWorld .
2. في الاجراء الاساسي main قم بكتابة الكود التالي
كود :
[color=#000000][COLOR=#0000bb] Console[/color][color=#007700].[/color][color=#0000bb]WriteLine[/color][color=#007700]([/color][color=#dd0000]"Hello World"[/color][COLOR=#007700])
[/COLOR][color=#0000bb]Console[/color][color=#007700].[/color][color=#0000bb]ReadLine[/color][COLOR=#007700]()
[/COLOR][color=#0000bb][/color][/COLOR]
3. قم بحفظ المشروع باسم HelloWorld
4. قم بتشغيل MonoDevelop ومن قائمة File اختر Open ثم اختر ملف ال solution الخاص بالمشروع HelloWorld. سوف تقوم MonoDevelop بعمل استيراد لملفات المشروع.
5. في شريط الادوات القياسي Standard Toolbar سوف تجد قائمة منسدلةCombo box تحتوي على خيارات ترجمة المشروع اختر الاعدادات التالية:
Release x86 – Mono 2.10.5 ...لكي يتم ترجمة وتشغيل البرنامج تحت منصة mono.
6. اضغط Cntrl+ F5 لتشغيل البرنامج تحت منصة mono. في حالة نجاح التطبيق ستجد عبارة Hello World قد ظهرت في Application Output.
مبروك لقد برمجت اول تطبيق لك على منصة mono وهذا التطبيق يمكنة العمل على نظام التشغيل Linux
-------------------------------------------------------------------------------------------------
مقدمة عن التطبيقات الرسومية GUI
يوفر لنا mono مجموعة من المكتبات المختلفة التي يمكن الاختيار فيما بينها لعمل واجهة رسومية للتطبيق الخاص بنا و لعل اشهر هذة المكتبات هي Windows Forms وgtk# وسوف نقوم بعرض مختصر لاهم هذة المكتبات و شرح لمزاياها و عيوبها.
GTK#
هي مكتبة تم اشتقاقها من المكتبة الام Gtk+ وتم تطويرها خصيصا لعمل تطبيقات رسومية لمنصة المونو و الدونت وهي موجهة في الاصل للغة C# ولكن يمكن استخدامها في لغة vb.net.
يوفر MonoDevelop محرر واجهات للتطبيقات المكتوبة ب Gtk#
المنصات المدعومة: Windows, Linux, Mac OSx
المزايا:
1. مجتمع كبير للدعم
2. الاندماج مع سطح المكتب جنوم
3. الاندماج مع الويندوز حيث انها لها نفس شكل التطبيقات في الويندوز native look
4.لها نفس API الخاصة ب Gtk+
5. MonoDevelop توفر دعم متكامل لتطبيقات GTK#
6. دعم لكثير من اللغات C#, Java, Python, VB.Net
7. مكتبة حرة و مفتوحة المصدر
8. مجموعة كبيرة من الادوات
العيوب:
1. لها شكل مختلف عن التطبيقات الاخرى على Mac OSx
2. ملفات المساعدة و الدعم غير مكتملة
3. صعوبة التعلم وخاصة لمبرمجي ال Vb.net
Windows.Forms
هي المكتبة الرئيسية لعمل الواجهات في Microsoft Windows ويستخدمها ملايين المبرمجيين في عمل التطبيقات. يوفر ال mono الدعم لعمل التطبيقات الرسومية باستخدام هذة المكتبة ويمكن تطبقات Windows Forms من العمل على المنصات التشغيل الاخرى ( مع استثناء مجموعة من التطبيقات التي استخدم فيها بعض الادوات خارجية والتي تستخدم Win API مباشرة)
المنصات المدعومة: Windows, Linux, Mac OSx
المزايا:
1. دعم متكامل من خلال كتب-مقالات-منتديات
2. تمكنك ببساطة من نقل برامجك المكتوبة ب vb.net للعمل على المنصات الاخرى.
العيوب:
1. لا يوجد دعم للكود الذي يستخدم WIN API
2. شكل التطبيقات يظهر مختلف عند تشغيلة على المنصات الاخرى
مكتبات رسومية اخرى يمكن استخدمها:
Mono Mac
http://www.mono-project.com/MonoMac
Qyoto
http://techbase.kde.org/Development/Languages/Qyoto
Qt4Dotnet
http://code.google.com/p/qt4dotnet/
المصدر:
http://www.mono-project.com/Gui_Toolkits
-------------------------------------------------------------------------------------------------
تطبيق Windows Forms
بما اننا نريد ان ننقل تطبيقاتنا للعمل على المنصات الاخرى فسوف نستخدم مكتبة Windows Forms
سوف نبدا باذن الله بتصميم اول برنامج رسومي لنا على منصة mono بلغة vb.net باستخدام Visual Stdio 2010 كبيئة تطوير - لان ال MonoDevelop لا تحتوي على محرر نوافذ لل vb.net - و باستخدام MonoDevelop لترجمة وتشغيل البرنامج (debugger) لمنصة mono
تطبيق Hello GUI هو تطبيق Windows Forms Application وسوف يكون موجة لاطار العمل Microsoft .NET 3.5.
1. في Visual Stduio 2010 قم بانشاء مشروع جديد من نوع Windows Forms Application ويكون اسمة Hello GUI.
2. قم باضافة button الى ال Form ثم قم باضافة الكود التالي في الحدث Button_Click
كود :
[color=#000000][COLOR=#0000bb]MessageBox[/color][color=#007700].[/color][color=#0000bb]Show[/color][color=#007700]([/color][color=#dd0000]"Hello Linux"[/color][color=#007700], [/color][color=#dd0000]"Mono"[/color][color=#007700], [/color][color=#0000bb]MessageBoxButtons[/color][color=#007700].[/color][color=#0000bb]OK[/color][color=#007700], [/color][color=#0000bb]MessageBoxIcon[/color][color=#007700].[/color][color=#0000bb]Information[/color][COLOR=#007700])
[/COLOR][color=#0000bb][/color][/COLOR]
3. قم باضافة الكود التالي في الحدث Form_FormClosing
كود :
[color=#000000][COLOR=#0000bb]Application[/color][COLOR=#007700].Exit()
[/COLOR][color=#0000bb][/color][/COLOR]
4. قم باضافة Module وسمة start
قم باضافة الكود التالي الى Module start
كود :
[color=#000000][COLOR=#0000bb] Sub main[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Application[/color][color=#007700].[/color][color=#0000bb]EnableVisualStyles[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Dim StartForm [/color][color=#007700]As New [/color][COLOR=#0000bb]Form1
StartForm[/COLOR][color=#007700].[/color][color=#0000bb]Show[/color][COLOR=#007700]()
[/COLOR][color=#0000bb]Application[/color][color=#007700].[/color][color=#0000bb]Run[/color][COLOR=#007700]()
[/COLOR][COLOR=#0000bb]End Sub
[/COLOR][/COLOR]
5. اذهب الى خيارات المشروع و فم بتعطيل الخاصية Enable Application framework حيث ان ال MonoDevelop لا تدعمها....وغير Startup object الى start
6. قم بحفظ المشروع باسم HelloGUI
7. قم بتشغيل MonoDevelop ومن قائمة File اختر Open ثم اختر ملف ال solution الخاص بالمشروع HelloGUI. سوف تقوم MonoDevelop بعمل استيراد لملفات المشروع.
8. في شريط الادوات القياسي Standard Toolbar سوف تجد قائمة منسدلةCombo box تحتوي على خيارات ترجمة المشروع اختر الاعدادات التالية:
Release x86 – Mono 2.10.5 ...لكي يتم ترجمة وتشغيل البرنامج تحت منصة mono.
9. اضغط Cntrl+ F5 لتشغيل البرنامج تحت منصة mono. في حالة نجاح التطبيق ستظهر نافذة التطبيق جرب ان تضغط على ال Button. ستجد ان شكل ايقونة التطبيق و شكل صورة الرسالة تختلف لان البرنامج من خلال منصة Mono وليس .NET
مبروك هذا اول تطبيق رسومي لك......هذا التطبيق يمكنة العمل بكل سلاسة على منصات التشغيل الاخرى.
انتهي الدرس الثاني من الدورة واعتذر عن تاخر الدرس لظروف السفر و الامتحانات
ومنتظر الاراء و الاسئلة
بالتوفيق
Magic Sword