C#: إعداد بيئة التطوير

إن إعداد بيئة التطوير يشبه تجهيز مرسم فني — فبمجرد توفر اللوحة (حزمة أدوات تطوير .NET) والفرش (VS Code)، يمكنك البدء في الإبداع (كتابة كود C#).

1. تثبيت حزمة أدوات تطوير البرامج (SDK) لـ .NET

تعد حزمة أدوات تطوير البرمجيات (.NET SDK) مجموعة الأدوات الأساسية لتطوير برامج لغة C#، حيث تحتوي على المُترجم وبيئة التشغيل وأدوات إدارة المشاريع. ويجب عليك تثبيتها أولاً قبل أن تتمكن من كتابة برامج لغة C# وترميزها وتشغيلها.

(1) التثبيت على نظام ويندوز

  1. قم بزيارة https://dotnet.microsoft.com/download/dotnet/8.0 لتنزيل برنامج تثبيت .NET 8 SDK
  2. قم بتشغيل برنامج التثبيت وأكمل عملية التثبيت باستخدام الخيارات الافتراضية
  3. افتح نافذة الأوامر وتحقق مما يلي:
BASH
dotnet --version
TEXT 📖 للعرض فقط
8.0.xxx

إذا ظهر رقم الإصدار، فهذا يعني أن عملية التثبيت قد نجحت.

(2) التثبيت على نظام macOS

التثبيت عبر Homebrew:

BASH
brew install dotnet-sdk

أو قم بتنزيل برنامج التثبيت الخاص بنظام macOS من الموقع الرسمي. وتحقق من ذلك بالطريقة نفسها:

BASH
dotnet --version

(3) التثبيت على نظام لينكس

أوبونتو/ديبيان:

BASH
sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0

CentOS/RHEL:

BASH
sudo dnf install -y dotnet-sdk-8.0

التحقق من التثبيت:

BASH
dotnet --version

💡 نصيحة: يستخدم هذا الكتاب .NET 8 (LTS — الدعم طويل الأمد). تأكد من تثبيت حزمة SDK، وليس مجرد بيئة التشغيل (Runtime) فقط. تتضمن حزمة SDK جميع الأدوات اللازمة للتطوير.

(4) المكونات الرئيسية المضمنة في حزمة تطوير التطبيقات (SDK)

المكون الدور
مُركِّب روزلين يُركِّب كود لغة C# إلى لغة وسيطة (IL)
dotnet CLI أداة سطر الأوامر لإنشاء المشاريع وتجميعها وتشغيلها
بيئة تشغيل .NET تنفذ البرامج المُجمَّعة
مدير حزم NuGet يدير تبعيات المكتبات الخارجية

2. تهيئة VS Code

VS Code هو محرر أكواد مجاني طورته شركة مايكروسوفت. وعند استخدامه مع ملحق C#، يوفر تجربة تطوير قوية بلغة C#.

(1) تثبيت VS Code

انتقل إلى https://code.visualstudio.com للتنزيل والتثبيت.

(2) تثبيت الملحقات المطلوبة

افتح VS Code، واضغط على Ctrl+Shift+X لفتح متجر الإضافات، ثم ابحث عن الإضافة التالية وقم بتثبيتها:

التمديد الغرض
مجموعة أدوات تطوير C# (مايكروسوفت) دعم شامل لتمييز بناء الجملة، وIntelliSense، وتصحيح الأخطاء، وإدارة المشاريع
C# (مايكروسوفت) خدمة لغة C# الأساسية (تُثبَّت عادةً تلقائيًّا مع Dev Kit)

(3) تهيئة مجموعة أدوات تطوير C#

بعد تثبيت C# Dev Kit، يقوم الملحق تلقائيًا باكتشاف حزمة SDK الخاصة بـ .NET المثبتة لديك. يمكنك التأكد من صحة الإعدادات من خلال:

  1. اضغط على Ctrl+Shift+P، ثم اكتب .NET: New Project — إذا ظهرت قائمة قوالب المشاريع، فهذا يعني أن الإعداد قد تم بنجاح
  2. يجب أن يعرض شريط الحالة السفلي رقم إصدار .NET SDK

⚠️ تحذير: عند فتح مجلد في VS Code، قم بإنشاء مجلد مخصص (على سبيل المثال، csharp-learn) وافتح المجلد بأكمله في VS Code بدلاً من فتح ملف واحد فقط. وهذا أمر ضروري لكي يعمل C# Dev Kit بشكل صحيح.


3. برنامجك الأول: Hello World

▶ مثال

استخدم واجهة سطر الأوامر لـ dotnet لإنشاء أول تطبيق وحدة تحكم لك:

BASH
dotnet new console -n MyFirstApp
TEXT 📖 للعرض فقط
The template "Console App" was created successfully.
Processing post-creation actions...
Restoring packages...
Determining projects to restore...
Restored MyFirstApp.csproj (in 1.2s).

انتقل إلى مجلد المشروع وقم بتشغيله:

BASH
cd MyFirstApp
dotnet run
TEXT 📖 للعرض فقط
Hello, World!

هذا هو برنامجك الأول بلغة C#! يقوم الأمر dotnet new console بإنشاء بنية المشروع والكود تلقائيًّا.

(1) هيكل المشروع

بعد الإنشاء، يحتوي مجلد المشروع على:

TEXT 📖 للعرض فقط
MyFirstApp/
├── MyFirstApp.csproj
├── Program.cs
└── obj/
    └── ...
الملف الغرض
Program.cs نقطة دخول البرنامج، تحتوي على الكود الرئيسي
MyFirstApp.csproj ملف تكوين المشروع، يحدد حزمة SDK وإطار العمل المستهدف، وما إلى ذلك
obj/ دليل إخراج البنية المتوسطة

4. الأوامر الشائعة في واجهة سطر الأوامر لـ .NET

تعد واجهة سطر الأوامر dotnet CLI الأداة الأساسية لسطر الأوامر في مجال تطوير .NET. وإتقان استخدامها أكثر كفاءة من الاعتماد على بيئة تطوير متكاملة (IDE).

(1) أوامر إدارة المشاريع

الأمر الغرض مثال
dotnet new console إنشاء مشروع وحدة التحكم dotnet new console -n MyApp
dotnet new classlib إنشاء مشروع مكتبة فئات dotnet new classlib -n MyLib
dotnet new list عرض جميع القوالب المتاحة dotnet new list

تحدد المعلمة -n اسم المشروع. وفي حالة عدم ذكرها، يتم استخدام اسم المجلد الحالي.

(2) الإنشاء والتشغيل والنشر

الأمر الغرض مثال
dotnet build ترجمة المشروع (دون تشغيله) dotnet build
dotnet run ترجمة المشروع وتشغيله dotnet run
dotnet publish نشر المشروع (للنشر) dotnet publish -c Release

▶ مثال

BASH
dotnet build
TEXT 📖 للعرض فقط
MSBuild version 17.8.xxxx
  Determining projects to restore...
  Restored MyFirstApp.csproj (in 102 ms).
  MyFirstApp -> G:\csharp-learn\MyFirstApp\bin\Debug\net8.0\MyFirstApp.dll

Build succeeded.
    0 Warning(s)
    0 Error(s)

🔥 نصيحة: dotnet run = dotnet build + التنفيذ التلقائي. استخدم dotnet run للاختبار السريع أثناء التطوير، وdotnet build للتحقق من وجود مشكلات في الترجمة في عمليات البناء الرسمية.


5. العبارات ذات المستوى الأعلى مقابل البرنامج التقليدي. الرئيسي

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

(1) العبارات ذات المستوى الأعلى (C# 9+، الإعداد الافتراضي)

يُنشئ dotnet new console ملفًا Program.cs يستخدم العبارات ذات المستوى الأعلى بشكل افتراضي:

CSHARP
System.Console.WriteLine("Hello, World!");

سطر واحد فقط — بدون مساحة أسماء، ولا فئة، ولا دالة Main. يقوم المُجمِّع تلقائيًّا بتضمينه في دالة Main مُولَّدة.

(2) البرنامج التقليدي. النمط الرئيسي

النهج المتبع قبل الإصدار C# 9، حيث يجب أن يكون كل الكود داخل دالة Main:

CSHARP
using System;

namespace MyFirstApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
}

(3) مقارنة الأسلوبين

مقال خاص تصريحات رفيعة المستوى البرنامج التقليدي.الصفحة الرئيسية
حجم الكود قليل جدًّا المزيد من النصوص النمطية
طريقة الإدخال تم إنشاؤها تلقائيًا بواسطة المُجمِّع تم تعريفها يدويًّا static void Main
إعلانات using يمكن حذفها (استخدم الأسماء الكاملة) عادةً ما تكون هناك حاجة إلى using System;
مساحة الاسم لا حاجة إلى إعلان يجب الإعلان
معلمات سطر الأوامر الوصول مباشرةً عبر المتغير args عبر المعلمة Main(string[] args)
حالات الاستخدام البرامج البسيطة، والتعلم، وكتابة البرامج النصية المشاريع الكبيرة التي تتطلب تحكمًا دقيقًا في الوصول
إصدار C# C# 9+ جميع الإصدارات

📌 النقطة الأساسية: تعتبر العبارات ذات المستوى الأعلى والأسلوب التقليدي متكافئين من الناحية الوظيفية. فالعبارات ذات المستوى الأعلى ما هي إلا «تجميل نحوي» — فالكود IL الذي يتم إنشاؤه هو نفسه في الأساس. ولا يمكن استخدام العبارات ذات المستوى الأعلى إلا في ملف واحد فقط ضمن المشروع.

(4) الوصول إلى معلمات سطر الأوامر باستخدام العبارات ذات المستوى الأعلى

CSHARP
if (args.Length > 0)
{
    System.Console.WriteLine($"Hello, {args[0]}!");
}
else
{
    System.Console.WriteLine("Hello, World!");
}
BASH
dotnet run -- Alice
TEXT 📖 للعرض فقط
Hello, Alice!

يتم تمرير المعلمات التي تلي -- إلى البرنامج. وفي العبارات ذات المستوى الأعلى، يقوم المُجمِّع بإدراج args تلقائيًّا.


6. الأخطاء الشائعة في المُجمِّع

بصفتك مبتدئًا، ستواجه بالتأكيد أخطاء في المُترجم. لا داعي للذعر — فتعلم كيفية قراءة رسائل الخطأ أهم من تجنبها.

(1) CS1002: يُتوقع وجود فاصلة منقوطة

CSHARP
System.Console.WriteLine("Hello, World!")
TEXT 📖 للعرض فقط
Program.cs(1,40): error CS1002: ; expected

تنسيق الخطأ هو اسم الملف (السطر، العمود): رمز الخطأ: الوصف. ينقص هذا السطر فاصلة منقوطة في نهايته — يجب أن تنتهي كل جملة في لغة C# بفاصلة منقوطة.

(2) CS0103: الاسم غير موجود في السياق الحالي

CSHARP
Console.WriteLine("Hello, World!");
TEXT 📖 للعرض فقط
Program.cs(1,1): error CS0103: The name 'Console' does not exist in the current context

لقد استخدمت Console دون using System; أو الاسم الكامل System.Console. هناك حلان: أضف using System; أو استخدم System.Console.

(3) CS0117: لا يحتوي على تعريف

CSHARP
System.Console.WritLine("Hello, World!");
TEXT 📖 للعرض فقط
Program.cs(1,17): error CS0117: 'Console' does not contain a definition for 'WritLine'

تم كتابة WriteLine بشكل خاطئ على أنها WritLine. يُعلمك المُترجم أن الفئة Console لا تحتوي على عضو باسم WritLine — يرجى التحقق من التهجئة.

(4) CS0120: مطلوب مرجع كائن لحقل غير ثابت

CSHARP
namespace MyApp
{
    class Program
    {
        string name = "C#";
        static void Main(string[] args)
        {
            System.Console.WriteLine(name);
        }
    }
}
TEXT 📖 للعرض فقط
Program.cs(8,37): error CS0120: An object reference is required for the non-static field, method, or property 'Program.name'

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

⚠️ نصيحة لقراءة رسائل الخطأ: قد يشير رقم السطر المذكور إلى الموضع الذي يلي الخطأ الفعلي. إذا ظهرت رسالة خطأ في سطر ما، فتحقق من هذا السطر والسطر الذي يسبقه للتأكد من صحة التهجئة وعلامات الفاصلة المنقوطة والأقواس. رموز CS هي رموز أخطاء رسمية من Microsoft — يمكنك البحث عن رقم CS عبر الإنترنت للحصول على تفسيرات مفصلة.


❓ أسئلة شائعة

س بعد تثبيت حزمة أدوات تطوير البرامج (SDK) لـ .NET، تظهر رسالة في سطر الأوامر تفيد بأن «dotnet غير معترف به كأمر». ماذا عليّ أن أفعل؟
ج هذا يعني أن دليل تثبيت .NET غير موجود في مسار PATH لنظامك. في نظام Windows، عادةً ما يؤدي إعادة تشغيل أداة تثبيت SDK إلى حل هذه المشكلة تلقائيًا. إذا لم يحدث ذلك، فقم بإضافة دليل dotnet يدويًّا (على سبيل المثال، C:\Program Files\dotnet) إلى مسار PATH في نظامك، ثم أعد تشغيل سطر الأوامر.
س ما الفرق بين C# Dev Kit وملحق C# القديم؟
ج C# Dev Kit هو ملحق جديد أطلقته مايكروسوفت في عام 2023. وهو يدمج إدارة المشاريع، ومستكشف الحلول (Solution Explorer)، ومستكشف الاختبارات (Test Explorer)، والمزيد — وتجربة استخدامه أقرب بكثير إلى Visual Studio. أما ملحق C# القديم فيوفر خدمات لغوية أساسية فقط. يُنصح باستخدام C# Dev Kit.
س هل هناك فرق في الأداء بين العبارات على المستوى الأعلى والأسلوب التقليدي؟
ج لا يوجد أي فرق على الإطلاق. العبارات ذات المستوى الأعلى هي مجرد «تجميل نحوي» — حيث يقوم المُجمِّع بتحويلها إلى طريقة Main قياسية. ويكون كود IL الناتج وأداء وقت التشغيل متطابقين تمامًا. اختر الأسلوب الذي يناسب قابلية قراءة الكود وحجم المشروع.
س ما الفرق بين dotnet run وdotnet build؟
ج يقوم dotnet build فقط بترجمة المشروع وإنشاء ملفات DLL دون تشغيله. أما dotnet run فيقوم بالترجمة (عند الحاجة) ثم يقوم بتشغيل البرنامج تلقائيًا. استخدم dotnet run لتسهيل عملية تصحيح الأخطاء أثناء التطوير، وdotnet build لعمليات بناء CI/CD أكثر تحكمًا.

📖 ملخص

📝 تمارين

  1. قم بتثبيت حزمة أدوات تطوير البرامج (SDK) لـ .NET 8 على جهاز الكمبيوتر الخاص بك وتأكد من أن dotnet --version يُعرض بشكل صحيح. قم بتدوين رقم الإصدار
  2. استخدم dotnet new console -n Homework02 لإنشاء مشروع. قم بتعديل ملف Program.cs بحيث يعرض اسمك وتحية (على سبيل المثال، "مرحبًا، أنا أليكس، وقد بدأت في تعلم لغة C#!")، ثم قم بتشغيله والتقط لقطة شاشة
  3. أعد كتابة نسخة العبارات ذات المستوى الأعلى من التمرين 2 وفقًا للأسلوب التقليدي Program.Main، وتأكد من أن كلا النسختين تنتجان نفس الناتج
  4. قم بإدخال 3 أخطاء في المُترجم عن قصد (فقدان فاصلة منقوطة، خطأ إملائي، حذف كلمة using)، وسجل أكواد CS وأوصاف الأخطاء، وتدرب على قراءة رسائل الخطأ
Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%