تعلم كيفية البرمجة ب #C


الدرس: مقدمة في #C


الصفحة السابقة
في هذا الفصل الأول ، سوف نكتشف ماهية C# وتاريخه وعلاقته بإطار عمل .NET . الى جانب ذلك ، اذا كنت لا تعرف ما هو الإطار؟ لا يهم ، سيتم شرح كل هذا! 
سنرى في هذا الفصل ماهية تطبيقات الكمبيوتر وكيف تتيح لنا لغات البرمجة المتقدمة مثل C# تحقيق هذه التطبيقات.
وهذه ليست سوى البداية ... لذا افتح عينيك على مصراعيها ، وارتدى نظارتك واستكشف هذا العالم الرائع!

مقدمة



لمن يُوجّهُ هذا البرنامج التعليمي؟
الى المبتدئين! لا حاجة لتكون مبرمجا من قبل لمتابعة هذا البرنامج التعليمي! لذلك سأبذل قصارى جهدي لتوضيح توضيحاتي قدر الإمكان ، وأعدكم بذلك.
هدفي هو حقًا جعل هذا البرنامج التعليمي متاحًا للمبتدئين.
بالطبع ، قد يكون هناك بعض منكم قاموا بالفعل بـ C و C ++ و Java ... من الواضح ، إذا كنت قد قمت بالفعل ببرمجة الكمبيوتر ، فسيكون ذلك أسهل بالنسبة لك (خاصةً بالنسبة للجزء الأول) الذي يعرض أساسيات اللغة). كن حذرًا ، لا داعي للذهاب بسرعة كبيرة: لغة C# تشبه اللغات الأخرى ولكن لها خصائصها!

روح البرنامج التعليمي
سنكتشف العديد من الأشياء معًا أثناء تعلم التطوير في C# . سيكون هناك بالطبع إجراءات عملية لتمرينك ، حتى تتمكن من إدراك ما تستطيع القيام به بعد قراءة عدة فصول نظرية أخرى.
ومع ذلك ، أريدك أن تكون نشطًا! لا تقرأ تفسيراتي بشكل سلبي ، حتى عندما تكون الفصول نظرية إلى حد ما! اختبار الاكواد والمعالجات كما يجب ان يكون. جرب الأفكار الصغيرة التي يجب عليك تحسينها أو تكييفها قليلاً. فكر خارج مربع البرنامج التعليمي: هذا سيجعلك تتدرب ويسمح لك باكتشاف ما إذا كنت قد فهمت الفصل أم لا.
لا تقلق ، إذا واجهتك أي شيء لم يشرح في هذه الدورة ، فإن المجتمع الذي يتقاطع مع المنتديات سيكون قادرًا على تقديم المساعدة الثمينة لك.

وقت التعلم
يستغرق عدة أسابيع لقراءة هذا البرنامج التعليمي وفهمه واستيعابه. بمجرد استيعاب جميع المفاهيم المقدمة ، سوف يستغرق الأمر عدة أشهر للوصول إلى مستوى ثابت في C# . قبل كل شيء ، "من سارَ على الدربِ وصل" .
بالإضافة إلى ذلك ، شكرًا لإبلاغك بالوقت الذي استغرقته لقراءة هذه الدورة التدريبية حتى أتمكن من الإشارة إلى القراء الآخرين بمتوسط ​​وقت القراءة.
هذا كل شيئ ؟
لا اطمئن ، هذا البرنامج التعليمي لم ينته بعد ، لذلك لا ترى كل الأجزاء. سوف تكتشف في هذا البرنامج التعليمي بداية أساسيات التطوير في C# . شيئًا فشيئًا سأكمل البرنامج التعليمي لإضافة بقية أساسيات اللغة. بعد ذلك ، سأقدم البرمجة الموجهة للكائنات وكيفية القيام بذلك باستخدام C# . أخيرًا ، للمضي قدمًا ، سندرس الوصول إلى البيانات والمفاجآت الأخرى.
بداية هذه الدورة ستكون نظرية إلى حد ما. لمعرفة كيفية كتابة الكود ، عليك أن تبدأ بتعلم أساسيات اللغة ، إنها أمر لا بد منه.
شيئًا فشيئًا سأقدم الممارسة لتوضيح بعض النقاط المهمة ؛ هذا سيسمح لك أن تفهم كيف تعمل بشكل أفضل وقبل كل شيء لحفظ الدورة.

الذهاب أبعد من ذلك!
لا تتردد في مشاهدة البرامج التعليمية الأخرى حول هذا الموضوع. من الجيد دائمًا تنويع مصادرك للحصول على مناهج مختلفة للموضوع.
بشكل عام ، أوصي بأن لا تتردد في اختبار الأكواد التي سأقدمها لك. قبل كل شيء ، إذا كان لديك أفكار لتحسينها قليلاً ، فجرّبها! لن ينجح كل مرة ، ولكنه سيجعلك تتقدم أكثر مما تعتقد! لذلك لا تعتمد فقط على تطبيقاتي فقط للممارسة ، سيكون غير كاف.
اعلم أيضًا أنني منفتح على أي تعليقات أو انتقادات أو أسئلة ... بخصوص هذا البرنامج التعليمي. لا تتردد في نشر التعليقات ، خاصة إذا كانت رسالتك مفيدة لأشخاص آخرين. ومع ذلك ، من فضلك لا ترسل لي رسائل خاصة ، إلا في حالات القوة القاهرة ، لأنه لن يكون لدي وقت للرد عليك بشكل فردي ، وإذا كان طلب المساعدة ، هناك منتديات لذلك وسوف نقوم بالرد عليك أسرع مني.

ما هو #C ؟


C# هي لغة برمجة تم إنشاؤها بواسطة Microsoft في عام 2002.
لغة البرمجة هي مجموعة من الإرشادات ، أي عبارة عن مجموعة من الكلمات المستخدمة لإنشاء تطبيقات الكمبيوتر.
يمكن أن تكون تطبيقات الكمبيوتر هذه من أنواع كثيرة ، مثل تطبيق Windows ، مثل برنامج معالجة النصوص أو آلة حاسبة أو حتى لعبة ورق.  من الممكن أيضًا تطوير تطبيقات الويب ، مثل موقع التجارة الإلكترونية ، والإنترانت ، وما إلى ذلك. سنتمكن من الوصول إلى هذه التطبيقات من خلال متصفح إنترنت. مع الاستمرار في استخدام متصفح الإنترنت ، سنكون قادرين على تطوير التطبيقات التي تشبه تطبيق Windows ولكن تعمل في المستعرض.

يمكن كتابة العديد من أنواع التطبيقات الأخرى باستخدام C# ، دعنا نذكر أيضًا تطوير تطبيقات الهاتف المحمول تحت هاتف Windows أو تطبيقات الأجهزة اللوحية أو الألعاب أو حتى تطوير خدمات الويب ...
سنرى المزيد من التفاصيل في نهاية البرنامج التعليمي حول كيفية عمل مثل هذه التطبيقات. تتطلب كل منطقة من هذه المناطق تغطية برنامج تعليمي بالكامل ، لذلك سنبدأ مع هذه المناطق دون الذهاب إلى أبعد مما ينبغي.
C# هي لغة تشبه بناء الجملة C ++ أو Java والتي تعد لغات برمجة شائعة جدًا .  C# هي لغة مايكروسوفت الرائدة. إنه جزء من كل أكبر. إنها في الواقع لبنة لما يسمى " .NET Framework " .
دعنا نتوقف قليلاً عن ماهية إطار عمل .NET ، سنكتشف ما هو أكثر قليلاً في البرنامج التعليمي.

كيف يتم إنشاء تطبيقات الكمبيوتر؟


تطبيق الكمبيوتر: ما هو؟
كما تعلمون ، يقوم الكمبيوتر بتشغيل تطبيقات الكمبيوتر لأداء المهام. هذه هي البرامج مثل:
  • معالجة الكلمات
  • متصفح الانترنت
  • لعبة فيديو
  • ...
يمكن لجهاز الكمبيوتر الخاص بك فقط تشغيل تطبيقات الكمبيوتر هذه إذا كانت مكتوبة باللغة الوحيدة التي يفهمها ، ثنائية. من الناحية الفنية ، يتم تمثيل الثنائي بتسلسل 0 و 1.
c sharp .net framework
بالطبع ليس من المعقول عمل طلب كبير بالثنائي ، وهذا هو السبب في وجود لغات البرمجة التي تبسط كتابة تطبيق الكمبيوتر.

كيف نصنع برامج "ببساطة"؟
سأشرح بسرعة مبدأ تشغيل اللغات "التقليدية" مثل C و C ++ ، ثم سوف أعرض عليك طريقة عمل C# . نظرًا لأن C# أحدث ، فقد كان من الممكن تحسين أدائه مقارنةً بـ C و C ++ كما سنرى.
اللغات التقليدية: التجميع compilation
مع اللغات التقليدية مثل C و C ++ ، نكتب تعليمات مبسطة ، يمكن قراءتها من قِبل الإنسان مثل:

printf("Bonjour");
إنها ليست فرنسية حقًا ، لكنها ما زالت أبسط من الثنائية ونفهم بشكل عام في هذا المثال أننا سنعرض كلمة Bonjour.

بالطبع ، لا يفهم الكمبيوتر هذه التعليمات. يريد ثنائي حقيقي. 
للحصول على ثنائي من التعليمات البرمجية المكتوبة في C أو C ++ ، عليك القيام بما يسمى تجميع . المترجم (compiler)هو برنامج يقوم بترجمة الكود المصدري إلى ثنائي قابل للتنفيذ:
c sharp .net framework
هذه الطريقة فعالة وقد أثبتت نفسها. لا يزال الكثير من الناس يتعلمون في C و C ++ اليوم. ومع ذلك ، فإن هذه اللغات لديها أيضا عدد من أوجه القصور بسبب سنها. على سبيل المثال ، برنامج مترجم (ثنائي) يعمل فقط على النظام الأساسي الذي تم تجميعه من أجله. هذا يعني أنك إذا قمت بترجمة على Windows ، فستحصل على برنامج يعمل فقط على Windows (وعلى نوع معين من المعالج). من المستحيل تشغيله تحت Mac OS X أو Linux ببساطة ، إلا إذا قمت بإعادة ترجمته تحت أنظمة التشغيل هذه (وإجراء بعض التغييرات في العملية).
c sharp .net framework
تحتوي البرامج الثنائية على هذا العيب: فهي تعمل فقط من أجل نوع واحد من الأجهزة. للمطورين الذين يكتبون الكود ، من الممل جدًا إدارته.
اللغات الحديثة: الكود المدار
تعمل اللغات الحديثة ، مثل C# و Java ، على حل مشكلة التوافق هذه مع إضافة العديد من الوظائف الملموسة إلى اللغة ، مما يجعل من الممكن تنفيذ البرامج بكفاءة أكبر.

التحويل البرمجي في C# لا يعطي برنامج ثنائي ، على عكس C و C ++ . يتم تحويل كود C# بالفعل إلى لغة وسيطة (تسمى CIL أو MSIL ) والتي يمكن بعد ذلك توزيعها على الجميع. هذا الكود ، بالطبع ، ليس قابلاً للتنفيذ نفسه ، لأن الكمبيوتر يفهم الثنائي فقط.
ألق نظرة جيدة على هذا المخطط لفهم كيفية عمله:
c sharp .net framework
يتوافق الكود في اللغة الوسيطة (CIL) مع البرنامج الذي ستقوم بتوزيعه. تحت Windows ، يأخذ مظهر. exe مثل البرامج المعتادة ، لكنه لا يحتوي على ثنائي.
عند تنفيذ برنامج CIL ، تتم قراءته بواسطة برنامج آخر (جهاز تحليل البرنامج ، يُسمى CLR ) والذي يجمعه هذه المرة في برنامج ثنائي حقيقي. هذه المرة ، يمكن تشغيل البرنامج!

أنه يعقد الأمور بشكل جيد على أي حال! هل هي حقا مفيدة؟
هذا يوفر الكثير من المرونة للمطور. يمكن توزيع كود اللغة الوسيط (CIL) على الجميع. تحتاج فقط إلى تثبيت جهاز CLR على جهاز الكمبيوتر الخاص بك ، والذي يمكن بعد ذلك قراءة البرامج في C# وتجميعها "سريعًا" في ثنائي. الميزة: يتم تكييف البرنامج دائمًا مع الكمبيوتر الذي يعمل عليه.

يتحقق CLR أيضًا من أمان الكود ؛ وبالتالي في C كود مكتوب بفكر سيء (على سبيل المثال الاستخدام السيئ للمؤشرات) يمكن أن ينطوي على مشاكل لجهاز الكمبيوتر الخاص بك ، ما تجده أقل بكثير مع C# . بالإضافة إلى ذلك ، يحتوي CLR على مصحح JIT الذي يسمح لك بتشغيل Visual Studio في حالة حدوث خطأ في برنامج .NET لمعرفة سبب هذا الخطأ. نحن نتحدث عن الكود المدار.
يؤدي هذا التعقيد إلى إبطاء سرعة تنفيذ البرنامج قليلاً (مقارنة بـ C أو C ++ ) ، لكن الفرق الآن ضئيل للغاية مقارنة بالمكاسب التي يحققها.

لذلك ، من الناحية النظرية ، من الممكن استخدام أي تطبيق يتم تجميعه بلغة وسيطة طالما كان هناك تطبيق CLR متاح.
في الواقع ، يوجد فقط في نظام Windows أن هناك تطبيق كامل لـ CLR . ومع ذلك ، هناك تطبيق جزئي لنظام Linux : Mono  . هذا يعني أنه إذا كان البرنامج يستخدم ميزات لا تغطيها Mono ، فلن يعمل.
في الختام ، في الممارسة العملية ، .NET هو قابل للاستغلال الكامل تحت Windows ، و لا في أي مكان آخر.

القابلة للتنفيذ أو المجمعة (Executables or assemblies)؟
قلت أعلاه أني C# كود يتم تجميعه بلغة وسيطة ويتم العثور عليه في شكل ملف exe. مثل البرامج المعتادة.
بالفعل ! (أنا لا أكذب أبدا ) .

ومع ذلك ، فهي غير مكتملة بعض الشيء.
من الممكن إنشاء برامج (.exe) يمكن تنفيذها مباشرة بواسطة CLR ، لكن من الممكن أيضًا إنشاء مكتبات في شكل ملف بالملحق ".dll" .
يُطلق على هذين الشكلين من البرامج التجميعات ، ولكن الكلمة الإنجليزية assembly" "  عمومًا تستخدم دائمًا.
  • .Exe الملفات هي تجميعات العملية
  • ملفات .Dll هي مجموعات من المكتبات
بشكل ملموس ، هذا يعني أنه سيتم استخدام ملف. Exe لتشغيل تطبيق وأنه يمكن مشاركة dll بين العديد من تطبيقات exe من أجل إعادة استخدام الكود المكتوب بالفعل.

سنرى في الدرس التالي كيف يكون ذلك ممكنًا.
لاحظ أنه يتم إجراء اختصار غالبًا باستخدام مصطلح assembly . نميل إلى رؤية أن كلمة التجميع تستخدم فقط للإشارة إلى المكتبات ذات الامتداد .dll .

ما هو .NET Framework؟


بدأت أتحدث إليكم عن C# الذي كان لبنة في إطار عمل .NET . لقد حان الوقت لمعرفة المزيد عن هذا الإطار الشهير.
لنبدأ في البداية: كيف يتم نطقها؟
اقتباس: شكسبير

دوت نات
اقتباس: سيد كابيلو
نقطة نات

أنا أوافقك أن يكون الاسم غريب
خاصةً أن الاسم قد يكون مضللاً. مع وجود شبكة الإنترنت في كل مكان ، أو اختصارها (net) أو حتى أسماء النطاقات (.net) ، قد يعتقد المرء أن .NET Framework هو شيء مخصص للإنترنت.
لذلك سنوضح قليلاً ما هو .NET Framework لتجنب الغموض.
أول شيء يجب معرفته ، ما هو الإطار؟
للتبسيط ، يمكننا أن نقول أن الإطار هو نوع من مربع الوظائف الكبيرة التي سوف تتيح لنا تحقيق تطبيقات الكمبيوتر من جميع الأنواع.
في الواقع ، فإن الجمع بين هذا الإطار ولغة البرمجة C# هي التي ستمكننا من تحقيق هذه التطبيقات الحاسوبية.

إطار عمل .NET هو إطار تم إنشاؤه بواسطة Microsoft في عام 2002 ، في نفس الوقت مع C# ، وهو مخصص بشكل أساسي لإنشاء تطبيقات تعمل في بيئات Microsoft . يمكننا على سبيل المثال إنشاء برامج تعمل تحت Windows ، أو مواقع ويب أو تطبيقات تعمل على الهواتف المحمولة ، إلخ.
دعنا نقول أن إنشاء تطبيق كمبيوتر يشبه إلى حد ما الموقع (لا أقول ذلك لأنه متأخر دائمًا ، حتى لو كان صحيحًا ). من الممكن بناء أشياء مختلفة ، مثل المنزل والمسبح والشرفة وما إلى ذلك. لصنع هذه الإنشاءات ، سنحتاج إلى مواد ، مثل الطوب والخردة المعدنية ، إلخ. بعض المواد شائعة في جميع الإنشاءات (الحديد ، البراغي ، ...) والبعض الآخر خاص بمناطق معينة (لبناء حمام سباحة ، سأحتاج إلى بطانة على سبيل المثال).
يمكننا أن نرى .NET Framework على أنها هذه المواد ، إنها مجموعة من المكونات التي سيتعين علينا تجميعها لتحقيق تطبيقنا. بعضها مخصص لإنشاء تطبيقات الويب ، والبعض الآخر لإنشاء تطبيقات Windows ، إلخ.

لتنفيذ موقع ، سنحتاج إلى أدوات للتعامل مع المواد. من سيفكر في تثبيت المسمار بأصابعه أو وضع كتل خرسانية دون لصقها ؟ هو نفسه بالنسبة لتطبيق الكمبيوتر ، لتجميع تطبيقنا ، سوف نستخدم لغة البرمجة: C# .
في وقت كتابة هذا ، كانت C# في الإصدار 5 وإطار عمل .NET في الإصدار 4.5. هذه إصدارات مستقرة ويستخدمها كثير من الناس. جلبت كل نسخة وسيطة حصتها من التطورات. يتطور إطار عمل .NET و C# باستمرار ، مما يدل على الديناميكية التي تقدمها Microsoft .
هذا كل ما يمكن معرفته في الوقت الحالي ، وسنعود إلى .NET Framework بتفاصيل أكثر قليلاً في الفصول التالية. في الوقت الحالي ، من المهم أن تتذكر أنه بفضل لغة البرمجة C# وبفضل مكونات .NET Framework ، سنتمكن من تطوير تطبيقات الكمبيوتر.

في الخلاصة


  • C# هي لغة برمجة باستخدام .NET Framework . إنها لغة Microsoft الرائدة.
  • إطار عمل .NET عبارة عن مجموعة ضخمة من الوظائف لإنشاء التطبيقات.
  • C# يجعل من الممكن تطوير تطبيقات من جميع الأنواع ، قابلة للتنفيذ من قبل CLR والذي يترجم MSIL إلى ثنائي.
  • هناك نوعان من التجميعات التي يمكن إنشاؤها: تجميعات العمليات القابلة للتنفيذ CLR وتجميعات المكتبات.