تاريخ لغة سي شارب C#
لغة سي شارب #C هي من لغات البرمجة القوية و هي إحدى بيئات الدوت نت التي أنتجتها و طورتها شركة ميكروسوفت. و ذلك من أجل الخروج من ورطة الجافا و القضية الشهيرة التي رفعتها عليها شركة SUN.
كان يوجد مجموعة من الناس يعملون في مجال البرمجيات و أمور أخرى مشابهة و بطريقة ما إخترعوا حاسباً بحجم غرفة كبيرة. كان هذا الحاسوب قد أثار ضجة كبيرة في ذلك الوقت بسبب توفيره الوقت الكبير المطلوب أثناء الكتابة على الورق أو من أجل العمليات الحسابية الأربعة.
كان هذا الحاسوب يتعامل مع برامج مكونة من عدد كبير من الأصفار و الواحدات ثم تم إختراع ما يسمى بلغة التجميع Assembly. لكن العمل معه كان صعباً للغاية و يتطلب حفظ الكثير من الأسطر البرمجية للقيام بأمور عادية و صغيرة.
في هذه الأثناء كانت هناك شركة تسمى IBM تصمم حواسب آلية عليها نظام تشغيل لكنه كان بسيطاً و لا يؤدي الكثير من الوظائف و هذا الأمر الذي أدى إلى الحاجة إلى تطويره أكثر.
و مع موازاة هذه الأحداث تم تطوير نظام تشغيل DOS و هو إختصار لثلاث كلمات Disk Operating System قرص نظام التشغيل.
و بسبب صعوبة التعامل مع لغة التجميع تم إنشاء مفهوم جديد و هو الإجراءات Procedures و هي عبارة عن مكتبات. تضم إجراءات و دوال تٌمثّل الأسطر البرمجية الكثيرة التي قلنا إنها للقيام بأعمال عادية وصغيرة و هذا كان بداية ظهور لغات عٌرفت بالجيل الثالث للغات البرمجة مثل لغة سي و الفورترن.
هذا الكتاب ليس مرجعاً في #C و لا دلیل إستخدام و لا يُمثّل إلا نفسه و يمكن إعتباره ملخص صغير للأكواد الأكثر تكراراً. و الأفكار و الشروحات الأكثر تواجداًٌ بين سطور أي برنامج #C.
يُعتبر C# (C Sharp) لغة برمجة قوية وشائعة الاستخدام في تطوير تطبيقات سطح المكتب وتطبيقات الويب وتطبيقات الجوال باستخدام إطار العمل Xamarin. إذا كنت ترغب في تعلم C# من البداية، يمكنني أن أقدم لك مقترحًا لخطة تعلم تساعدك على بدء رحلتك في هذه اللغة.
هنا هي خطوات تعلم C# من البداية:
- تثبيت بيئة التطوير المتكاملة (IDE): قم بتثبيت IDE مثل Microsoft Visual Studio أو Visual Studio Code. تلك الأدوات تقدم بيئة تطوير متكاملة وسهلة الاستخدام للعمل مع C#.
- تعلم أساسيات البرمجة: إذا كنت لا تمتلك خبرة سابقة في البرمجة، من الأفضل أن تبدأ بفهم أساسيات البرمجة المفاهيمية. تعرّف على المتغيرات والتحكم في التدفق والهياكل البيانية والدوال والكائنات. يمكنك أن تجد موارد مجانية عبر الإنترنت مثل الفيديوهات والمدونات والكتب لمساعدتك في فهم هذه المفاهيم.
- تعرّف على بنية اللغة وميزاتها: قم بدراسة بنية اللغة وميزاتها الأساسية. تعرّف على كيفية إنشاء المتغيرات والثوابت والتعامل مع النصوص والأعداد. تعلّم عن التعابير الشرطية والحلقات والدوال والكائنات والتراث والاستثناءات والتعامل مع الملفات.
- قم بمشاريع تطبيقية صغيرة: بمجرد فهمك للأساسيات، قم بإنشاء مشاريع تطبيقية صغيرة لتطبيق ما تعلمته. قم بإنشاء برامج بسيطة تطبق المفاهيم التي تعلمتها وتمارس مهاراتك.
- تعلم عن إطار العمل .NET: C# هي جزء من منصة تطوير البرمجيات .NET. قم بتعلم المزيد عن إطار العمل .NET والتقنيات المرتبطة به، مثل ASP.NET لتطبيقات الويب و Xamarin لتطبيقات الجوال.
- استكشاف الموارد التعليمية: هناك العديد من الموارد التعليمية المتاحة لتعلم C#. يمكنك الاستفادة من الدروس المجانية على الإنترنت، والكتب، والمقالات، والمشاريع التطبيقية. يمكن أيضًا الانضمام إلى المجتمعات المبرمجين لطرح الأسسؤال والحصول على المساعدة والمشورة من الآخرين.
- توسيع المهارات العملية: بعد أن تكون قد اكتسبت فهمًا جيدًا للغة وبنيتها، حاول توسيع مهاراتك العملية من خلال العمل على مشاريع أكبر وأكثر تعقيدًا. قم بتطوير تطبيقات واقعية وتحاول مواجهة التحديات وحل المشاكل المعقدة.
- الممارسة والاستمرارية: مفتاح تعلم أي لغة برمجة هو الممارسة المنتظمة. حاول حل التحديات البرمجية والمشاريع الصغيرة بانتظام لتحسين مهاراتك. قم بقراءة الشفرة المصدرية لمشاريع مفتوحة المصدر وتعلم منها.
- مواصلة التعلم: لغة C# وإطار العمل .NET يتطوران باستمرار. حاول متابعة أحدث التطورات والتحديثات في المجال من خلال قراءة المدونات ومشاهدة الفيديوهات وحضور الدورات التدريبية. تواصل مع المجتمع المبرمجين للبقاء على اطلاع بأحدث الاتجاهات والممارسات.
هذه هي خطة تعلم مبسطة للبدء في تعلم C# من البداية. تذكر أن التعلم يتطلب الصبر والممارسة المستمرة. حاول تطبيق ما تعلمته في مشاريع عملية وحاول توسيع مهاراتك بشكل مستمر. مع الوقت والتدريب، ستتقن C# وتتمكن من تطوير تطبيقات قوية ومتقدمة. حظًا موفقًا في رحلتك في تعلم C#! إذا كان لديك أي أسئلة أخرى، فلا تتردد في طرحها.
ما هي أفضل الكتب التي يمكنني قراءتها لتعلم C#؟
هناك العديد من الكتب الممتازة التي يمكنك قراءتها لتعلم C#. فيما يلي بعض الكتب الموصى بها للمبتدئين والمتوسطين:
- "C# 9 and .NET 5 – Modern Cross-Platform Development" بواسطة Mark J. Price: تعتبر هذه الكتاب موجهة للمبتدئين الذين يرغبون في تعلم C# وإطار العمل .NET. يغطي الكتاب المفاهيم الأساسية والتقنيات المتقدمة ويقدم أمثلة تطبيقية.
- "C# 9.0 in a Nutshell: The Definitive Reference" بواسطة Joseph Albahari و Ben Albahari: يعد هذا الكتاب مرجعًا شاملاً للغة C# وإطار العمل .NET. يشرح الكتاب تفاصيل اللغة وميزاتها بشكل مفصل ويقدم أمثلة عملية.
- "Head First C#" بواسطة Andrew Stellman و Jennifer Greene: هذا الكتاب يستخدم أسلوبًا تفاعليًا وممتعًا لتعليم C#. يغطي الكتاب المفاهيم الأساسية ويقدم تمارين وأنشطة لتعزيز التعلم.
- "Programming C# 8.0" بواسطة Ian Griffiths: يعتبر هذا الكتاب دليلًا شاملاً لتعلم C#. يغطي الكتاب الأساسيات والتقنيات المتقدمة ويوفر أمثلة تطبيقية تساعد في تطبيق المفاهيم المتعلمة.
- "C# Yellow Book" بواسطة Rob Miles: يعتبر هذا الكتاب مثاليًا للمبتدئين في C#. يشرح الكتاب المفاهيم الأساسية بطريقة سهلة ومبسطة ويقدم أمثلة تطبيقية.
- "C# in Depth" بواسطة Jon Skeet: يعتبر هذا الكتاب مناسبًا للمطورين الذين يرغبون في تعمق معرفتهم بلغة C#. يغطي الكتاب ميزات متقدمة وتقنيات متقدمة ويقدم أمثلة عملية شاملة.
هذه بعض الكتب الموصى بها لتعلم C#. يمكنك اختيار الكتاب الذي يتناسب مع مستوى خبرتك وأسلوب التعلم الذي يناسبك. تذكر أن القراءة ليست الوحيدة الطريقة لتعلم C#، بل يجب أن تمارس البرمجة وتطبق ما تعلمته في مشاريع عملية لتعزيز فهمك ومهاراتك.
مميزات لغة C#
C# (C Sharp) هي لغة برمجة قوية وشائعة الاستخدام التي تتميز بعدة ميزات. إليك بعض المميزات الرئيسية للغة C#:
لغة قائمة على الكائنات: C# تعتمد على نمط البرمجة الكائنية، مما يعني أنها تدعم التعامل مع الكائنات والتركيز على التفاعل بين الكائنات المختلفة. هذا يسهل فهم وتنظيم البرامج ويساعد على إعادة استخدام الكود.
إطار العمل .NET: C# هي لغة برمجة تعمل على إطار العمل .NET، وهو بيئة تطوير شاملة توفر مكتبات وأدوات لتطوير تطبيقات قوية ومتعددة المنصات. تتضمن هذه المكتبات العديد من الميزات والوظائف المفيدة التي تسهل عملية تطوير التطبيقات.
متعدد المنصات: يمكن استخدام C# لتطوير تطبيقات تعمل على مختلف المنصات، بما في ذلك أنظمة التشغيل Windows وLinux وmacOS. يتيح إطار العمل .NET Core إمكانية تطوير تطبيقات قابلة للتنفيذ عبر المنصات المختلفة.
أمان النوع القوي: C# يعتمد على نظام تحقق الأمان النوع القوي، مما يعني أنه يفحص التوافق بين أنواع البيانات في وقت الترجمة. هذا يساعد في اكتشاف الأخطاء المحتملة في وقت مبكر وتقديم رمز أكثر استقرارًا وأمانًا.
أدوات التطوير: تتوفر العديد من الأدوات القوية لتطوير تطبيقات C#. يشمل ذلك بيئات التطوير المتكاملة (مثل Visual Studio) ومحررات النصوص المتقدمة (مثل Visual Studio Code) ومجموعة واسعة من الأدوات والمكتبات المجتمعية المفتوحة المصدر.
دعم للبرمجة المتزامنة والأحداث: يوفر C# دعمًا قويًا للبرمجة المتزامنة والأحداث. يمكن استخدام الكلمة المفتاحية "async/await" للتعامل مع العمليات المتزامنة بشكل فعال، مما يسمح بتطوير تطبيقات قادرة على التعامل مع الحدث والاستجابة بشكل فعال.
تعتبر هذه بعض المميزات الرئيسية للغة C#. تعزز هذه الميزات من إمكانيات تطوير التطبيقات بشكل كبير وتجعل C# لغة شائعة ومفضلة للعمطورين في مجالات مختلفة.
مجالات استخدام لغة #C
قد يسأل سائل ماهي المجالات التي يمكن استخدام #C خلالها ؟, في الواقع جميع لغات البرمجة يمكنها القيام بجميع الأمور التي تحتاجها. في حياتك وذلك يعتمد على خبرتك ومهارتك في لغة البرمجة التي تستخدمها وانتباهك للمسألة أو القضية التي تواجهها.
يتوقف الأمر على قدرة اللغة أساسا على الخوض في المجال الذي تحتاج تحليله وبرمجته، بالتأكيد لا يمكنك استخدام موجه الأوامر لبرمجة قواعد البيانات على سبيل المثال، لذلك يجب الأخذ بعين الاعتبار قابلية لغتك البرمجية على تحليل ومناقشة الموضوع الذي تتعامل معه.
يمكن من خلال #C تطوير البرامج والتطبيقات التي تعمل على أنظمة تشغيل ويندوز، وهي تدعم البرمجة كائنية التوجه OOP، وتعتمد على مكتبات إطار الدوت نت، وهي ميزة تسهل كتابة البرامج المعقدة دون الاعتماد على مصادر خارجية.
الجدير بالذكر أن جميع اللغات التي تعمل ضمن بيئة الدوت نت بإمكانها الوصول لذات النتيجة، واختيار لغة البرمجة لهذا الغرض مبني على ميولك ورغبتك وراحتك تجاه هذه اللغة، بحيث أن المهارة تكمن في إمكانيتك للوصول لهذه النتيجة على أكثر من لغة تعمل وفق بيئة الدوت نت..
يمكن تلخيص مجالات استخدام #C كما يلي:
- صناعة وبرمجة تطبيقات نظام ويندوز.
- برمجة تطبيقات الانترنت، وذلك عبر منصة ASP.NET.
- برمجة الـ Graphics والوسائط المتعددة.
- برمجة الألعاب وذلك باستخدام بيئات مشغلات الألعاب.
- برمجة تطبيقات تتعامل مع قواعد البيانات باستخدام مكتبة ADO.NET.
- برمجة تطبيقات إدارة المحتوى.
- برمجة تطبيقات الأندرويد وذلك باستخدام برنامج Xamarin.
الكلاس Console في C#
عند تعاملك مع المشاريع من النوع ConsoleApplication فالفئة Console هي أكثر كائن ستتعامل معه، رأينا منذ سطور كيفية استخدام طرق الكلاسات، وذلك عبر استخدام نقاط تفصل بين الفئات. والطرق الفرعية فيها، وذلك حتى الوصول للطريقة أو الخاصية المطلوبة.
إن الفكرة من وجود الفئات هو تسهيل البرمجة إلى حد كبير، بحيث تُعطى أنت الأكواد الجاهزة على البارد المستريح، وتقوم ببرامج على أكمل وجه بنفس الفكرة التي أعطت ميكروسوفت مكتبات API الخاصة بها لزبائنها، حيث إن هذه الأكواد الجاهزة لا تراها وإنما مكتوبة ضمن ملفات معينة.
رموز طباعة خاصة تنسيق الطباعة
تُستخدم هذه الأحرف داخل العبارات النصية وتسمى عادة مفاتيح الهروب كترجمة حرفية لها، أي أنها تحاط بإشارتي تنصيص، ويمكن أن تضمن داخل عبارة نصية موجودة مسبقا، ويتعرف عليها المترجم بوجود المحرف | قبلها.
المتغيرات في سي شارب C#
عند تعاملك مع بيانات تأخذ مجالًا من القيم يجب أن تتعامل مع متغيرات، هذه المتغيرات تمثل بيانات ومعلومات تطبيقك، حيث إن الأخير يستجيب وينفذ أوامر برمجية محددة بناءاً على هذه المتغيرات.
تلعب المتغيرات دورا حيويا في تطبيقاتك، فهي تخزن المعلومات، وتعمل خلال كامل فترة تنفيذ تطبيقك، وعند إيقاف التطبيق أو الخروج من الفئة أو الطريقة أو الحلقة. التي تتبع لها فإنها تفنى! إن وجود المتغيرات وتنوعها وإحاطتها ببرامجك تعطيه قوة وسيطرة ودقة في العمل.
يزداد الذكاء الصناعي لبرنامجك مع ازدياد متغيراتك والعلاقات فيما بينها وبنى التحكم في هذا البرنامج (والتي ستناقش في فصول لاحقة).
وبالمناسبة أيضا فالمتغيرات تمثل ذاكرة برنامجك، والأكواد التي تسير هذه المتغيرات هي عقل برنامجك، لذلك فقو علاقتك بها :) من أبسط الأمثلة وأكثرها شيوعا هو التبديل بين قيم المتغيرات، لديك متغيران x ول، ولكل قيمة، ولغاية ما أردت أن يأخذ المتغير x قيمة ، وبالعكس.. الكود التالي يوضح ذلك:
int x, y;
x = 5; y = 6;
int temp; // متغير مؤقت
temp = x; // temp = 5
x = y; //x = 6 (not 5)
y = temp; //y = 5 (not 6)
Console.ReadKey();
أنواع المتغيرات في سي شارب C#
اتفقنا في مقدمة هذا الفصل على أنه لتخزين بيانات برنامجك سواءا تلك التي يدخلها المستخدم أو التي يحصيها البرنامج من تلقاء نفسه يجب أن تخزن في مايسمى بالمتغيرات.
وبشكل منطقي فالمتغيرات يجب أن تتبع للبيانات التي ستخرن داخلها والبيانات من الممكن أن تكون نصية مثلا – مجموعة من المحارف والرموز – أو رقمية صحيحة أو رقمية عشرية.
كما توجد بيانات تمثل التاريخ والوقت، وأخرى منطقية تحمل قيمتين 1 أو 0، كما يمكنك تكوين نوع بيانات خاص بك وهذا ما سنراه في الفصل الخامس إن شاء الله.
التصريح عن المتغيرات في سي شارب C#
للتصريح عن المتغيرات اكتب نوع المتغير يليه اسمه. هناك قواعد عديدة تحدد اسم المتغير أهمها ألا يكون كلمة محجوزة' وألا يبدأ برقم، وألا يحتوي. على فراغات أو بعض الرموز مثل نقطة أو فاصلة منقوطة، وألا يحتوي إلا على أحرف لاتينية، كما أن #C حساسة لحالة الأحرف.
هذا بالإضافة إلى قواعد أخرى كثيرة، والجدير بالذكر هنا أن . لغات البرمجة لها ذات المبدأ بالنسبة لأسماء المتغيرات، مع فوارق بسيطة.
في الحقيقة الكثير من البني والقواعد والمبادئ مشتركة في جميع لغات البرمجة مع فوارق بسيطة، إلا أن الجوهر ذاته.