اتحاد شباب الكانمبو
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

اتحاد شباب الكانمبو

المرجع الرئيسي لتاريخ القبيلة والنواحي الفكرية والثقافية وملتقى لشباب القبيلةز
 
الرئيسيةالبوابةأحدث الصورالتسجيلدخول
حداد على روح الفقيد الاخ الحبيب العزيز الملازممحمد نجيب بابكر الذي فارقنا قبل أن يستأذن ولو لحين علنا نسطحبه في سفرة..الحياة بدونك هوان لما تركنا وحيدين في دنا قد قل فيها الاخلاء ..من اين لنا بمثلك يا نجيب .. قد كان لي في الزمان البعيد صديق مجيب نجيب وسيظل كذلك أكيد أرى ان الايام وقد رحلت ارحلنا عنها ام عن نفسها ارتحلت اين انت

 

 بداية ولادة c# وظهور NET

اذهب الى الأسفل 
كاتب الموضوعرسالة
Eng.Abdelrahman

Eng.Abdelrahman


عدد المساهمات : 40
السٌّمعَة : 2
تاريخ التسجيل : 06/06/2010
الموقع : U.A.E-SHARJAH

بداية ولادة c# وظهور NET Empty
مُساهمةموضوع: بداية ولادة c# وظهور NET   بداية ولادة c# وظهور NET Emptyالأحد سبتمبر 26, 2010 10:29 pm

بســـــم الله الرحمــــن الرحـيم
بداية
ولادة #C وظهور NET.
لقد أرادت Microsoft المشاركه في تطوير Java مع شركة SUN ولكن شركة SUN امتنعت عن هذا الشئ ورفعت دعوه قضائيه ضد شركة Microsoft مما جعل Microsoft تفكر في انشاء لغه برمجيه تتمتع بميزات الجافا واكثر و وجدت بذور هذا الحلم في مخيلة احد مبرمجي شركة Borland فدعمت هذه الفكره وأسست فريق عمل لبناء هذه اللغه الجباره بتزامن مع انشاء تقنيات NET.و التي هي أيضاً أحد افكار فريق برمجي في شركة Borland فنتج عن هذا المشروع أتحاد عمالقة البرمجيات Microsoft و Borland فلغة #C كتب معظمها عن طريق مبرمجي ومطوري Borland فكتسبت نقاط القوه في اللغات القديمه مثل ++C و Java و VB وتخلصت من نقاط ضعفها وبهذه المرحله هناك تنبؤ بنهاية عصر لغة Java هذا بعتراف رسمي من شركة SUN بذكرها بأن تقنيات لغة Java قديمه بالنسبه لتقنيات #C و NET. هذه نهايه محتومه للجافا فأتحد شركة Borland صاحبة أفضل المترجمات في العالم ولا يخفى عليكم هذا مع عملاق البرمجيات Microsoft سينهي العصر الذهبي لل Java ويبداء عصر #C وتقنيات NET.
لماذا أبرمج بسي شارب ؟؟؟؟
C# هي إحدى لغات .NET من إنتاج شركة مايكروسوفت،بتعاون مع بورلاند
تم إنشائها بواسطة فريق عمل بقيادة أندرس هيجلزبرج، وقدر ركز هذا الفريق في بناء هذه اللغة على نقاط القوة في اللغات الأخرى و تجنب نقاط الضعف فيها بالإضافة إلى بعض المميزات الجديدة التي أضيفت إلى هذه اللغة..لذلك فهي تتميز بالقوة والمرونة، وكباقي لغات .NET فيمكن استخدامها لإنشاء تطبيقات سوى كان النظام Mac أم Windows أم Unix ام Linux، و وأنشاء تطبيقات الويب و أجهزة الترجمة و غيرها. وتعتمد البرمجة بالسي شارب على مفهوم البرمجة باستخدام الكائنات بصورة كاملة
لقد اتت لغة السي شارب من عائلت السي وسي بلس بلس ولكن ببعض الاختلافات وهي:
1- لقد تخلصت السي شارب من التعقيدات والمشاكل الخاصه باللغات مثل الجافا والسي بلس بلس فقد قامت بألغا المكرو والقوالب والتوارث المتعدد(تسمى لدى المبرمجين بلعنات المتعدده) وطبقات الأساس الظاهريه فهذه هي المناطق التي تظهر فيها الألتباسات لدى المبرمجين وكذلك ظهور المشاكل المعقده .
تعد لغة السي شارب لغه بسيطه جداُ لأنها تعتمد على السي والسي بلس بلس مع ترك التعقيدات وتتشابه مع هذه اللغات كثيراُ وأدخلت بعض التحسينات المهمه على هذه اللغه ومبدأ التحسينات قام على فكرتين
ا- التخلص من الأشياء الزايده الغير مهمه التي تسبب المشاكل في البرمجه وتزيدها تعقيداً مثل التوارث المتعدد (اللعنات المتعدده)
ب- أضافة تحسينات على تغيررات أضافيه في تركيب وبناء الجمل .
مثال في السي بلس بلس لها 3 معاملات للتعامل مع عناصر الكائنات والصفوف وهي(:: و . و<-) .(أما في السي شارب فقد تم أستبدال هذه المعاملات بالمعامل وحيد وهو (.) مماسهل عملية البرمجه بشكل كبير .
2- تحتوي السي شارب على أدوات حديثه لم تكن موجوده في أي لغه من قبل ألا وهي السمات
ماهي السمات ؟
لقد قام مصممي السي شارب بتظمين طريقه لم توجد في أي لغه أخرى ألا وهي السمات
السمات هي عباره عن صفوف لها خاصية ربط المعلومات على أي أوامر بالسي شارب ويمكن الحصول على هذه المعلومات أثناء التشغيل
وتتوارث السمات من صف يدعى Attribute هذا يجعلها لها خاصية ربط المعلومات كما ذكرت
وتوجد خصائص أخر للسي شارب مثل معالجتها للأستثناءت العالية الكفائه .
وهناك خصائص اخر مثال ألأحداث Event التي سهلت التعامل مع احداث form لكل من النظامين Linux , Mac
السي شارب لاتسمح بوقوع الاخطاء السخيفه .
مثل
هذا الكود مكتوب بلغة السي
double x =32.3
double y=54.5
int xy =y+x
( printf("xy=%d",xy // بالنسبه للغة السي شارب لطباعة المخرجات تكتب (Console.Writeline("xy={0}", xy بدون تحديد النوع المراد طباعته مجرد كتابة {0} لكل انواع البيانات وهذه ميز تتسم بها السي شارب عن لغة السي سهولة كتابة الشفرات البرمجيه .
النتيجه المتوقعه xy=86.8
ولكن للأسف سوف تظهر النتيجه خاطئه (أكتب هذا البرنامج عندك وسوف ترا النتيجه)
السي شارب لاتسمح بمثل هذه الأخطاء بل تجبرك للتأكد من عملك هذا
عن طريق أضافة هذا الكود
xy=(int)x+y
وليس هذا الأخطاء فقط وهناك خطاء يقع فيه المبرمجون كثيرن مثل هذا الخطاء هذا الكود مكتوب بلغة السي بلس بلس
int x =10
if(x)
}
{
السي شارب لاتسمح بوجود مثل هذه الأشياء التي تسبب بصعوبة اكتشاف المشكله أو الاخطاء الغبيه التي يصعب اكتشافها فتتأكد منك وتجبرك على كتابه التالي
( 0 =! if (x
}
{
مثل هذه الاشياء قد تسبب متاعب كبيره للمبرمجين كما قال أحدهم أنه كفيله بان يقوم المبرمج بالأنتحار
وهناك غيره من الأشياء قد تسبب بوقوع المشاكل وأحطاء وقت التنفيذ .
2- السي شارب لغة برمجيه بستخدام الكائينات
من الواضح تفوق البرمجه بستخدام الكائنات على البرمجه الهيكليه كثيرا بما تسببه البرمجه الهيكليه مثل برمجة السي C صعوبه في أكشاف الاخطاء وصعوبه في الصيانهً لأنها تكتب بوحده واحده كتله من التعليمات واحده ومن أهم مميزات التي تفوقت بها البرمجه بستخدام الكائنات مثل السي شارب هي:
ا-التوارث: تسمح البرمجه كائنية المنحنى بالتوارث بأن يتوارث صف من صف أخر يتوارث المميزات والاجرات التي لديه هذا يسهل من عملية البرمجه ويقلل الوقت التي تتم فيه تطوير البرمجيات
ب- الكبسله : هو أنشاء حزمه برمجية ما مثل انشاء حزمة الدائره والتي تريد كل ماتقوم به الدائره مثل حساب نصف القطر فمن خلال كبسلة مفهوم الدائره تجعل المستخدم يتعامل مع الدائره كوحده واحد وهي الدائره .
ج-تعدد الأوجه هو أمكانية أفتراض عدة مناهج للحالت المحتمله . يعني يمكنك أستدعاء كائن وأ حد الاجرأت بطرق عديده ومختلفه وسيتم الحصول على نفس النتيجه
مثل حساب مساحة الدائره وفي عدة حالات قد تتوفر عدد من المعطيات مختلفه تقوم لغة السي بوضع كل حاله لها أجراء وأسم محدد ام في السي شارب فانه تضع للحالات هذه مجرد أسم واحد للأجرات التي تتعامل مع هذه الحالات وتقوم مكتبة التشغيل المشتركه باختيار الانسب للحاله.كذلك مع أستدعاء الكائنات .
ح-أعادة الاستخدام عندما تقوم بأنشاء طبقه class فأن بأمكانك أعادة أستخدام هذه الطبقه في انشاء كائنات في ما بعد في اي برنامج تريد ولا تتعب راسك بتفاصيل عمل تلك الطبقات كل ماهو تريد يتم تنفيذه على أكمل وجه مثل الترانزستر للمهندس الكهربائي يكون جاهز له لكي يتعامل معه في تركيب الدارات الاكترونيه .
مثل هذه المميزات تجعل البرمجه بستخدام الكائنات اكثر كفائه من البرمج الهيكليه ((برمجه الأطنان كما قال احد مهندسي ميكروسوفت)وهو يقصد وضع طن من الشفره عند كل كتابة برنامج في البرمجه الهيكليه)
3-السي شارب لغه كل شئ تريد أنشاءه
الشي الذي يحدك في السي شرب هو فقط خيالك أن السي شارب لاتضع عليك حدود فيما تقوم بفعله فبامكانك مع لغة السي شارب كتابة معالج كلمات والرسوميات بما فيها الألعاب وجداول البيانات وحتى برامج الترجمه لللغات الاخرى إلى انظمة التشغيل (بالنسبه للنظام القادم لمايكروسوفت Vienna مكتوب بلغة السي شارب)
4- الكلمات الأساسيه قليله
تمتاز لغة السي شارب بعدد قليل من الكلمات هذا لايدل على انها ضعيفه بل هذه احد مزايا اللغه الاهتمام بالاهم والأقوى
6- السي شارب لغه نمطيه بحيث يمكنك عند انشاء الطبقات class كتابه أساليب الطبقه عند هذه النقطه بامكانك أعادة أستخدام تلك الاساليب وتسمى أساليب الطبقه من اعادة استخدامها في برامج اخرى وأنشاء برامج قويه في لحظات .
السي شارب لغة المستقبل
لماذ ا لأنها مدعومه من تقنية .Net الدوت نت. ولأنها اللغه الأقوى في عائلت لغات الدوت نت
ماهي الدوت نت ؟
ها هو برنامج ضخم ؟ أم لغة برمجة ؟ أم خدمة يتم الإشتراك بها؟
قامت مايكرو سوفت بطرح الدوت نت بهدف جعل أجهزة الكومبيوتر و برامجه الأخرى كالطابعات والماسحات الضوئية ومواقع الويب تعمل معاً وتوفر للمستخدم حلولاً أقوى لمشكلاته، بدلاً من أن تتصل هذه الأجهزة و البرامج بالإنترنت بشكل منفصل.
الدوت نت هو عبارة عن مجموعة من تقنيات برمجية تمثل البنية التحتية و التي تسمى بـ . NET FRAMEWORK و التي تجعل المعلومات, المستخدمين , التطبيقات , و مختلف الأجهزة و الأنظمة تتصل ببعضها البعض من خلال ما يسمى بخدمات الويب web services .
Web Services :
هي مجموعة برامج يتم وضعها على الجهاز الخادم server , هذه البرامج تم بناءها بواسطة لغة XML لتسمح لمختلف التطبيقات بتبادل المعلومات بغض النظر عن اللغة التي كُتبت بها هذه التطبيقات، أو أي نظام تشغيل تعمل عليه، أو نوعية الأجهزة التي توجد عليها هذه التطبيقات.
NET FRAMEWORK :
اطار العمل .net هو مكتبة ربط ديناميكية تحوي على البنية الأساسية أي تحوي على مفسر اللغة الوسيطة واجرائيات تنفيذ اللغة المشتركة وغيرها ...
يحتوي إطار العمل على مكتبة .NET وهذه المكتبة عبارة عن أكواد جاهزة مصنفة تصنيفات مختلفة فبعضها خاص ببرمجة الشبكات وبعضها خاص ببرمجة تطبيقات الويندوز، والبعض الآخر مختص ببرمجة مواقع الويب. (أذن ليست موجهه فقط للويندز اخي مشاري )
ويحتوي الـ .NET FRAMEWORK أيضاً على ما يسمى بـ Common Type System(CTS) وهي عبارة عن الأنواع المتاحة للغات الـ .NET لتمثيل البيانات في ذاكرة الكومبيوتر.
ويحتوي هذا الـ FRAMEWORK أيضاً على Common Language Runtime(CLR) وهو عبارة عن محرك يقوم بتنفيذ جميع البرامج المكتوبة بأحد لغات .NET
عملية جمع القمامه (بلوكات الذاكره الضائعه):
من أهم مميزات السي شارب التزويد بأليه جباره وأمنه لجمع القمامه في وقت التشغيل خلافاً لما تفعله لغة السي بلس بلس بوضع كاهل التخلص من الكائنات على عاتق المبرمج .
لغة السي شارب لاتطلب من المبرمج عملية أدارة الكائنات في الذكره من ناحية جمع البلوكات الغير مستخدمه . تقوم السي شارب بعملية تجميع القمامه
القمامه : (البلوكات الذاكره المحجوزه سابقاً والتي لم يعد يستخدمها البرنامج )
وهذه الميز هي التي تفوقت بها السي شارب على غيرها من اللغات مثل الجافا والسي والسي بلس بلس
(تمتلك الجافا أليه لجمع القمامه ولكنها أقل كفاءة من التي تستخدمها السي شارب)
وذلك لأن عملية جمع القمامه تجنب الشيفره الكثير من الاخطاء . فالضياعات الذاكريه والمناطق الذاكريه التي لامعنى لمحتوياتها كانت تمثل مشاكل عويصه وخطيره في نفس الوقت (قد تهدد
احدا البرامج أستقرار النظام لعدم وجود أليه فعاله لجمع البلوكات كبيره الحجم من الذاكره الظائعه مما قد يتسبب في انهيار البرنامج والنظام معاً )
وتضيف لغة السي شارب امكانية التحكم في عملية جمع القمامه أيضاً مما يضفي على مبرمجي السي شارب مزيد من التحكم بالكائنات.
--------------------------------------------------------------------------------------------------------------------------------------------------
كيفية انشاء برامج للسي شارب :
يتم أنشاء برامج السي شارب لتشغيله بواسطة مكتبة التشغيل المشتركه Comman Language Runtime
(هذا يدل على أن برامج السي شارب لايمكن ان تنفذ إلى بوجود هذه المكتبه CLR)
ماهي فائدة انشاء برامج السي شارب تعتمد على هذه المكتبه CLR وقت التشغيل RUNTIME?
********************* الفئده هي قابلية نقل البرنامج من بيئة إلى اخرى دون اعادة ترجمت الملفات المصدريه لسي شارب *****************************
في سي وسي بلس بلس أذا أردت كتابة برنامج يعمل على عدة منصات تشغيل تحتاج إلى ترجمة هذا البرنامج عدة مرات بحث تقوم بانشاء برنامج تنفيذي لكل بيئة تشغيل
(مثل أذا رادت كتابة ملف تنفيذي لليونكس و ويندوز فأنك سوف تجبر على ترجمة الملفات المصدريه مرتين مره لليونكس ومره للويندوز هذه في حالة اللغات مثل السي وسي بلس بلس). أم في سي شارب فأنك لاتحتاج إلى هذه الترجمه فكل ماتحتاجه هو مجرد ملف تنفيذي ترجم مره واحده فقط وهو يعمل على أي من النظاميين)(هناك حالات خاصه لاتنفذ فيها برامج السي شارب على عدة منصات مثل كتابة تطبيق للويندز يتم فيها أستدعاء لتوابع API خاصه بالويندوز هذه لايمكن تشغيلها على أي نظام أخر سوى انظمة الويندوز)
تترجم ملفات السي شارب المصدريه C# source code إلى تعليمات لغة وسطيه IL(ليست لغة الأله كما في لغات الأخراى) Intermediate Language بعد ذلك تقوم CLR بعمليات الترجمه النهائيه للبرنامج وتكوين ملف تنفيذي ذو الامتداد .exe (هذه ليس الملفات الوحيده التي يمكن بناءها هناك ملفات DLL مكتبات الربط الدينماكي وهي ملفات تستخدمها التطبيقات ويتم ربطها بالتطبيق أثناء التنفيذ فقط)
--------------------------------------------------------------------------------------------------------------------------------------------------
كيف أبرمج بالسي شارب داخل MAC OS X ?
عن طريق المشروع Mono.....
ولكن ما هو الـ Mono ؟
ال Mono هو مشروع وبيئة تطوير من أجل توفير بيئة NET. لكى تقوم بتشغيل تطبيقات أي كان نوعها من برامج معالجة الكلمات إلى مترجمات اللغات الاخرى وبرامج(NET client & server applications )على كل الأنظمة مثل ال Linux , Solaris, Mac OS X وأخيرا نظام الويندوز . ويجب أن نذكر أن هذا المشروع برعاية شركة نوفل . يطوّر حاليا من قبل Ximian و بدعم من Novell و هو من ابتكار Miguel de Icaza من GNOME .و هناك نسخة مصغرة compact من mono عاملة على أجهزة الخليوي
كلمة مونو هي إسبانية الأصل تعني monkey و هو الشعار الذي اختاره فريق مطوري مونو
آخر نسخة من هذا المشروع هي 1.2.5 و التي تأتي مع بيئة التطوير الواعدة جدا monodevelop في الإصدار الأخير 0.15 الفكرة الأساسية للبدء بالعمل في Mono كانت ترتكز بشكل أساسي على نفس مواصفات ميكروسوفت التقنية و التي هي :
تكامل لغات البرمجة فيما بينها .
واجهة برمجة التطبيقات ( API ) المكشوفة للغات برمجية متعددة .
البرمجة التي تعتمد على الواجهة الرسومية ذات الوصلة الموحدة .
المكون الأساسي لـ Mono هو وقت التشغيل للغات المشتركة ( CLR ) الذي يوفّر البيئة عندما تنفّذ .net شيفرة البايت و المعروفة بـ MSIL ( لغة يكروسوفت الوسيطة ) فإذا كانت بيئة الجافا مألوفة لديك عزيزي المبرمج فانك ستلاحظ أن CLR مشابهة لطبيعة بيئة وقت التشغيل في الجافا و التي تسمح بتنفيذ شيفرة البايت جافا في طريقة نظام التشغيل المستقل .
و بالإضافة لتنفيذ شيفرة البايت .net فان Mono تقدّم أيضا مكتبات الصف التأسيسية اللاّزمة لإنشاء تطبيقات .net بشكل مصفوفة موسّعة من الأمثلة المتوفرة لإطار العمل مثل تطبيقات الشبكة من خلال ASP .net و ADO .net و إطارات ويندوز و خدمات الشبكة و هذا الجزء الخاص من Mono يمكن أن يعتبر عملاً نحو التقدّم بالرغم من أنه لا يقدّم معظم الصفوف الشائعة المستخدمة في إنشاء مكونات .net فهذه النواقص هي عبارة عن بعض التطبيقات الخاصة ميكروسوفت .net و الموجهة لويندوز فقط .
تقدم Mono مصرفاً للغة البرمجة #C و دعم أقل لمصرف Visual Basic.Net و ذلك لإنشاء MSIL التي تسمح باستخدام إما #C أو Visual Basic لإنشاء تطبيقات .net في Linux و Mac . مما سبق ….…. ذكرت بأن Mono تدعم لغتين برمجيتين لكن خطة عمل Mono المستقبلية تضع بالحسبان توفير مصرفات أخرى مثل #J و التي بالقريب العاجل سيتم تنفيذها لإنشاء شيفرة البايت من صفوف جافا .
و من أجل استضافة تطبيقات net. المطوّرة في بيئة الشبكة ( ASP .net ) فان Mono تقدم بديلين هما :
مخدّم الشبكة المستقل و المسمى XSP .
وحدة Apache الملقبة بـ mod_mono ( مونو العصرية )
لا البديلين السابقين يسمحان بتنفيذ تركيبات شبيهة بـ ASP .net لإنشاء مخدّم معلومات الانترنت على بيئة التشغيل لينكس
وكما ذكرنا سابقا فإن الmono مشروع مجانى ومفتوح المصدر وله مجتمع كبير و يتوقع أن يكون له مستقبل عظيم فى المستقبل وهو بشارة خير لجميع المطورين والمبرمجين سواء كانوا من المطورين على بيئة Mac أو بيئة Linux أو أى بيئة أخرى .على فكره بعض أبرز البرامج مثل Beagle و Banshee و Tomboy التي تستخدمونها في لينكس تم تطويرها باستخدام#C و Mono
ومن المميزات العامة لهذا المشروع أنه :
1- يعمل على جميع الأنظمة وعلى كافة المنصات .
2 -خاضع للمواصفات القياسية ECMA/ISO
3- يستطيع تشغيل تطبيقات .NET والجافا ال Python والعديد من اللغات الأخرى
4 - مفتوح المصدر ومجانى .
5 - له مجتمع كبير وينمو بسرعة .
وسأحاول فيما يلى توضيح النقاط السابقة فيما يلى : الميزة ا?ولى وهى ميزة تعدد الأنظمة التى يعمل عليها المونو ومن هذه الأنظمة : — نظام اللينوكس : وهو النظام الأم والنظام الذى تم تطوير المونو عليه كما أن معظم مطورى المونو من مستخدمى نظام اللينوكس ولذلك فهو ال Platform الرئيسى .
– نظام ال Mac OS X : يعمل المونو على بيئة ال Mac OS X 10?4 ,Mac OS X 10?5
– نظام ال Solaris : يعمل المونو على بيئة السولاريس سواء على أجهزة ال SPARC أو X86
– أنظمة ال BSD بأنواعها ( FreeBSD – OpenBSD – NetBSD ) .
– نظام ميكروسوفت ويندوز .
الموقع الرسمي للمشروع : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]
وللمزيد من المعلومات : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

لمراسلتي : [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]

منقول
الرجوع الى أعلى الصفحة اذهب الى الأسفل
 
بداية ولادة c# وظهور NET
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
اتحاد شباب الكانمبو :: ركن الهواة والبحوث العلمية :: قسم الحاسوب و البرامج العامة-
انتقل الى: