معلومات مهمه واسرار عن لغة السى شارب #C للمبتدئين

بسم الله الرحمن الرحيم
معلومات مهمه واسرار عن لغة السى شارب #C للمبتدئين
زوار wasfh / تقنيه وانترنت سلام الله عليكم ورحمته وبركاته ، سنوضح لكم من خلال تلك المقاله بشكلاً موجز ، معلومات تعتبر مهمه جداً عن لغة البرمجه سى شارب #C وبعض أهم اسرارها ، التى ربما لا يعرفها البعض ، وتلك المعلومات ضروريه خصوصاً للمبتدئين بتلك اللغه البرمجيه المميزه والمهمه.

معلومات مهمه عن لغة السى شارب #C للمبتدئين

السى شارب C# لغه من لغات المستوى العالى السهلة الفهم على البشر والبعيده عن لغة الآله ، مثل لغاتVB.net والجافا والبايثون ، ولغة السى شارب #C لغه كائنية التوجه OOP ، وتعمل تحت إطار الدوت نت NET. ، حيث بيئة الدوت نت تنتج أكواد من نوع msil وهى اختصار لـ Microsoft Intermediate language ، وهى تشبه لغة الأسمبلى ولكن وحدة التحكم المركزى cpu المعالج لا تفهمها ، ولكن الدوت نت هو الذى يفهمها أو مترجم msil المعروف بـCLR  اختصار Common language Runtime الذى هو مبرمج اساساً بلغة ++C ، ويحتوى على optimization تحسين لأكواد الدوت نت وتلك ميزه مهمه جداً سنتعرف على فائدتها لاحقاً ، وكذلك يحتوى على الـ pointers المؤشرات ، مثل الموجوده فى لغة C و ++C ، ويحتوى كذلك على جامع النفايات المعروفه بـ GC اختصار garbage collector الذى يقوم بحذف الفئات المستنسخه  والاشياء التى أنتهت مهمتها ولم يعد البرنامج فى حاجه لها خلال التشغيل وتحميله فى الرام ، لذلك الدوت نت يجعل العمل أكثر سهوله بدون الخوف من مشكلة memory overflow انفجار الذاكره ، وبالنسبه لأمكانيات لغة السى شارب #C البرمجيه ، يمكننا برمجة برامج رسوميه لسطح المكتب بواسطة بيئة تطوير Visual Studio من خلال مشروعات الـ Winforms أختصار
Windows Forms Application ، والتى تم بنائها على نقل الـ Wrapper الخاص بـ win32 لبيئة الدوت نت ، ويوجد كذلك مشاريع من نوع WPF اختصار Windows Presentation foundation حيث تتم فيها الرسوم من خلال dirctX ، لذلك نجد تلك التقنيه معتمده على مدى قوة وكفاءة كارت الشاشه ، وهى تقنيه قويه فى التصميم وأضافة المؤثرات ، ولكنا تلك التقنيه تكون بطيئه على الاجهزه الضعيفه والقديمه ، وايضا تستخدم تلك التقنيه أكواد تصميم شبيهه بـxml وتسمى داخل الـwpf بـ Xaml ، وهاتان التقنيتان داعمتان لمكتبات الرسوم العملاقه من DEV EXpress ، وبالإمكان ايضا عمل مكتبات الربط الديناميكيه dll. بالدوت نت ، واستخدامها فى برامج بلغة الدوت نت أو لغات آخرى مثل ++C وبايثون ، لأن لغة الدوت نت عباره عن اكواد معدله بمعنى انها لاتترجم مباشرة الى لغة الآله ، بل يجب تحويلها لـ msil بواسطة CLR ، وبالنسبه لبرمجة تطبيقات الهواتف الذكيه الدوت نت اسرع من لغة جافا بكثير وليس بطيئا كما يظن البعض ، ويفضل استخدام لغة السى شارب #C فى برمجة تطبيقات هواتف الأندرويد بدلاً من لغة جافا لأن السى شارب #C اسرع وادائها افضل من لغة الجافا على الهواتف الذكيه ، وقد أكدت الأحصائيات البرمجيه لـ Benchmarks عند ظهور مشروع Xamarin الخاص بالسى شارب #C للهواتف الذكيه انه اسرع من تطبيقات جافا للأندرويد بكثير ، ومن مميزاته ايضا أمكانية إدراج مكتبات محليه native مكتوبه بلغة آخرى ++C مثلاً ، واستخدم مكوناتها فى بيئة الدوت نت ذات الاكواد المعدله .

كيفية فهم الأجهزه لغة السى شارب #C وباقى لغات الدوت نت

صوره توضيحيه لكيفية فهم الاجهزه للغة السى شارب#C  واللغات البرمجيه التى تعمل تحت الدوت نت وتعاملها معها

كما ذكرنا سابقاً أى لغه تعمل على أطار الدوت نت ، يتم ترجمتها لـ msil code ، ويتم أدخال الـmsil code لـCLR الذى يقوم بالتعقيب والكشف عن الـdatatypes والتحويلات ، ثم يقوم بأرساله الى الـ Jit وهو مترجم Run time عندما يكون البرنامج فى حالة التشغيل ، حيث يقوم الـ Jit بعملية التحويل النهائى حيث يأخذ الـ msil من الـ CLR ويحوله الى لغة الآله  التى يفهمها المعالج Cpu ، وأهم ميزه على الأطلاق فى بيئة الدوت نت والغير موجوده فى أى لغه برمجيه آخرى من اللغات التى تعتمد على النظام الوهمى مثل الجافا والبايثون  ، عملية تحسين الكود optimization والتى ذكرناها سابقاً ، حيث بسبب ذلك نجد انها قد تكون احيانا بسرعة لغه محليه native مثل لغة ++C فى خوارزمياتها وحساباتها ،  لذلك يمكننا استخدام لغة السى شارب فى صناعة برامج متوسطة وسريعه لا تعتمد على معالج Cpu عالى الاداء ، وللعلم فكرة الـ msil code تشبه الـ byte code الخاص بلغة جافا ولكن الاختلاف بينهما كبير جداً .   

الفيجوال بيسك والسى شارب #C

من المعروف أن الفيجوال بيسك تعمل تحت أطار الدوت نت ، لذلك لا يوجد فرق بين الأكواد المستخرجه من لغة #C وفيجوال بيسك ، لأنهما أكواد معدله تولد msil ، لذلك يمكن بكل سهوله التحويل من السى شارب #C لفيجوال بيسك والعكس ، بواسطة أدوات بسيطه مثل Net Reflector أو IL Spy أو Dotpeek ، وينصح بعدم استخدام أو الاعتماد فى البرمجه على لغة الفيجوال بيسك بسبب عدم وجود سوق برمجى لها وعدم التطوير ، فهى غالباً تكون كمجرد بدايه للمبتدئين بالدخول لمجال تعلم البرمجه لسهولتها ووضوحها للمبتدئين بالبرمجه .

عيب الـ msil code

أبرز عيوب الـ msil code هى انه يمكن أسترجاع الأكواد من ملفات dll. و exe. ، لذلك يمكن بكل سهوله كسر البرامج والتعديل عليها أو على جزء منها ، لأن الـ msil code مختلفه جداً وسهل الفهم عكس لغة الأسمبلى الصعبه نوعاً ما والقريبه من لغة الآله وتحتاج لمهندس برمجه عكسيه محترف ليتمكن من كسر البرنامج والتعديل عليه حسب رغبته ، بينما الـ msil code الذى ينتجه الدوت نت ، يمكن  استخراج الأكواد منه من خلال استخدام برامج مثل 
Telerik JustDecompile أو Dotpeek وde4dot وغيرها من البرامج ، وأفضل حل لتلك المشكله هو القيام بتشفير msil code الناتج من الملفات التنفيذيه الخاصه بالدوت نت ، وتسمى تلك العمليه
بـ obfuscation ، ويعتبر برنامج 
Net Reactor من أشهر وافضل البرامج المعروفه التى تقوم بتلك المهمه ، حيث يقوم بتشفير الفئات ويستبدل النصوص string برموز مشفره يصعب كسرها ، وبالأسفل صوره لأصدار قديم لواجهة برنامج التشفيرNet Reactor ،

 وللعلم أخوانى الكرام تلك الطريقه أو غيرها من الطرق لحماية البرمجيات من التعديل عليها وكسرها المبرمجه بلغة السى شارب او غيرها من لغات البرمجه لا تعتبر حل لتلك المشكله ، أنما مجرد زيادة لصعوبة كسرها فبدلاً من أن يتم كسرها بكل سهوله من جانب شخص هاوى أو مبتدىء ، فستحتاج لمهندس برمجه عكسيه خبير وبصعوبه، فحماية البرمجيات من انتهاك حقوقها وكسرها بنسبة 100% شىء غير موجود حتى كتابة هذا المقال للأسف ، والامثله كثيره حيث اكبر واشهر البرامج يتم كسرها ونشرها مثل برامج مجموعة ادوبى وغيرها الكثير ، تلك هى الحقيقه للأسف .
  
مصدر مميز لتعلم البرمجه بلغة السى شارب #C باللغه العربيه وبالمجان وبجوده عاليه ويستحق أن يكون مدفوع اعتبره افضل كورس موجود على يوتيوب المحتوى العربى على الاطلاق ،على قناة حسونه اكاديمى للأستاذ/أحمد محمود
 

تعليقات