إضافة حزم إلى مشروع Microsoft .NET الخاص بك

مكتمل

يأتي Microsoft .NET مع العديد من المكتبات الأساسية التي تتعامل مع كل شيء من إدارة الملفات إلى HTTP إلى ضغط الملفات. كما أن هناك نظامًا بيئيًا ضخمًا من مكتبات خارجية. يُمكنك استخدام NuGet، وإدارة حزمة Microsoft .NET لتثبيت هذه المكتبات واستخدامها في تطبيقك.

كثيرًا ما تستخدم Microsoft .NET ونظامها البيئي كلمة تبعية. تبعية الحزمة هي مكتبة خارجية. إنه جزء من التعليمات البرمجية القابلة لإعادة الاستخدام التي تحقق شيئا ويمكنك إضافته إلى تطبيقك. المكتبة الخارجية هي شيء يعتمد عليه تطبيقك للعمل، ومن هنا جاءت كلمة تبعية.

يمكنك التفكير في مكتبة الجهات الخارجية على أنها حزمة مخزنة في مستودع. تتكون الحزمة من مكتبة أو عِدة مكتبات يُمكنك إضافتها إلى تطبيقك لتتمكن من الاستفادة من ميزاتها.

هنا، نركز على تبعيات الحزمة. ومع ذلك، يمكن أن يكون لمشروع .NET أنواع أخرى من التبعيات بالإضافة إلى تبعيات الحزمة. بما في ذلك، وأطر العمل، والمحللات، ومراجع المشروع، وتبعيات المشروع المشتركة.

تحديد ما إذا كنت بحاجة إلى حزمة

كيف يمكنك معرفة ما إذا كنت بحاجة إلى حزمة لمشروعك؟ إنه سؤال مُعقد يتضمن بعض العوامل:

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

تقييم الحزمة

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

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

يمكنك معرفة المزيد عن الحزمة قبل تثبيتها بالانتقال إلى https://www.nuget.org/packages/<package name>. ينقلك عنوان URL هذا إلى صفحة مفصلة للحزمة. اختر القائمة المنسدلة Dependencies لمعرفة أي الحزم التي تعتمد عليها للعمل.

قد لا يعرض عدد التبعيات المُدرجة الحقيقة كاملة. إذا قمت بتنزيل حزمة، فقد ينتهي بك المطاف بتبعية حزمة تحتوي على عشرات الحزم. ما سبب ذلك؟ كل حزمة لديها قائمة تبعيات. للتأكد من أنه يُمكنك استخدام حزمة، تُسجل كافة التبعيات في الفهرس وتُنزل حين تُشغل الأمر dotnet add package <package name>.

تثبيت الحزمة

هناك عدة طرق لتثبيت الحزم. هناك سطر أوامر مُدمج وواجهة مستخدم رسومية لمدير الحزمة في Visual Studio وVisual Studio لنظام تشغيل Mac. يمكنك إضافة مراجع الحزمة يدويًا إلى ملف المشروع، أو يمكنك تثبيتها من خلال أداة واجهة سطر الأوامر (CLI) مثل Paket أو .NET Core CLI.

بالنسبة لهذه الوحدة النمطية، نستخدم .NET Core CLI المضمن لتثبيت الحزم. يمكنك إضافة حزمة إلى مشروع Microsoft .NET الخاص بك عن طريق استدعاء أمر في الـ terminal. يبدو أمر التثبيت النموذجي كما يلي: dotnet add package <name of package>. عند تشغيل أمر add package، تتصل أداة سطر الأوامر بسجل عمومي، وتُحضر الحزمة، وتُخزنها في موقع مُجلد مُخزن مؤقتًا يُمكن لكافة المشاريع استخدامه.

بعد تثبيت مشروعك وإنشائه، تُضاف المراجع إلى مجلدات تتبع الأخطاء أو مُجلدات الإصدار. يبدو دليل المشروع الخاص بك كما يلي:

-| bin/
---| Debug/
------| net3.1
--------| <files included in the dependency>

العثور على حزمة

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

لقطة شاشة لـ NuGet.org تظهر قائمة الحزم الشائعة.

قد توجد الحزم في عِدة أماكن مختلفة. قد تكون بعض هذه المصادر متاحة للجمهور، وقد يكون بعضها مقيدًا ومتاحًا فقط لموظفي شركة معينة. فيما يلي بعض الأماكن التي قد تُوجَد فيها الحزم:

  • السجلات: قد يكون أحد الأمثلة سجلا عموميا، مثل سجل NuGet.org. يمكنك استضافة سجلاتك التي قد تكون خاصة أو عامة. تُتيح خدمات مثل GitHub وAzure DevOps السجلات الخاصة.
  • الملفات: يمكنك تثبيت حزمة من مجلد محلي. التثبيت من حزمة أمر شائع عند محاولة تطوير مكتبات .NET الخاصة بك وتريد اختبار الحزمة محليا. أو، لسبب ما لا تريد استخدام سجل.

مخطط يوضح العلاقة بين مُنشئي الحزمة ومُضيفي الحزمة ومُستهلكي الحزمة.

سجل NuGet وأداة dotnet

عند تشغيل dotnet add package <name of dependency>، ينتقل .NET إلى سجل عمومي يسمى سجل NuGet.org الموجود في https://nuget.org ويبحث عن التعليمات البرمجية لتنزيلها. يمكنك كذلك استعراض هذه الصفحة لأجل الحزم إذا قمت بزيارتها باستخدام المتصفح. كل حزمة لديها موقع ويب مُخصص يمكنك الذهاب إليه.

لقطة شاشة للصفحة المنتقل إليها لحزمة NuGet.

في هذه المواقع، يُمكنك معرفة المزيد حول مكان وجود التعليمات البرمجية المصدر. كما يمكنك العثور على معلومات مثل المقاييس الخاصة بالتنزيلات ومعلومات حول الصيانة.

لقطة شاشة للمعلومات والمقاييس لحزمة NuGet.

أوامر Microsoft .NET

حتى الآن، تعلمت كيف يمكنك تثبيت التبعيات باستخدام .NET Core CLI. ولكن بإمكان هذه الأداة فِعل الكثير.

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

لمساعدتك على تذكر ما تفعله الأوامر، فقد يُساعدك اعتبارها تنتمي إلى فئات:

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

إذا أردت قائمة مُفصلة من الأوامر، أدخل dotnet --help في الـ terminal.

كيفية تثبيت حزمة

dotnet add package <dependency name> استخدم الأمر لتثبيت تبعية عادية من المفترض استخدامها كجزء من التطبيق الخاص بك.

إشعار

يُمكنك تثبيت بعض الحزم عموميًا. لا يُقصد بأن يتم استيراد هذه الحزم إلى مشروعك. لهذا السبب، فإن العديد من الحزم العمومية هي أدوات أو قوالب CLI. يمكنك كذلك تثبيت هذه الأدوات العمومية من مستودع الحزمة. قم بتثبيت الأدوات باستخدام أمر dotnet tool install <name of package>. قم بتثبيت القوالب باستخدام أمر dotnet new -i <name of package>.

بعد التثبيت

يتم سرد الحزم المثبتة في dependencies قسم من الملف..csproj إذا أردت معرفة ما الحزم الموجودة في المجلد، يمكنك إدخال dotnet list package.

Project 'DotNetDependencies' has the following package references
   [net8.0]:
   Top-level Package      Requested   Resolved
   > Humanizer            2.7.9       2.7.9

يدرج هذا الأمر الحزم رفيعة المُستوى فقط وليس تبعيات تلك الحزم التي نُسميها الحزم الانتقالية. هذا الأمر جميل لإلقاء نظرة سريعة. إذا أردت عرضًا أكثر تعمقًا، يُمكنك إدراج كافة الحزم الانتقالية. عند القيام بذلك، list يبدو الأمر كما يلي:

dotnet list package --include-transitive

يسمح لك تضمين التبعيات برؤية التبعيات جنبا إلى جنب مع جميع الحزم التي قمت بتثبيتها. إذا قمت بتشغيل dotnet list package --include-transitive، فقد تحصل على هذا الإخراج:

Project 'DotNetDependencies' has the following package references
   [net8.0]:
   Top-level Package      Requested   Resolved
   > Humanizer            2.7.9       2.7.9

   Transitive Package               Resolved
   > Humanizer.Core                 2.7.9
   > Humanizer.Core.af              2.7.9
   > Humanizer.Core.ar              2.7.9
   > Humanizer.Core.bg              2.7.9
   > Humanizer.Core.bn-BD           2.7.9
   > Humanizer.Core.cs              2.7.9
   ...

استعادة التبعيات

عند إنشاء مشروع أو استنساخه، لا يتم تنزيل التبعيات المضمنة أو تثبيتها حتى تقوم بإنشاء مشروعك. يمكنك استعادة التبعيات والأدوات الخاصة بالمشروع المحددة في ملف المشروع يدويا عن طريق تشغيل dotnet restore الأمر . في معظم الحالات، لا تحتاج إلى استخدام الأمر بشكل صريح. يتم تشغيل استعادة NuGet بصورة ضمنية، إذا لزم الأمر، عند تشغيل أوامر مثل new، وbuild، وrun.

تنظيف التبعيات

من المُحتمل أن تُدرك عاجلاً أم آجلاً أنك لم تعد بحاجة إلى الحزمة. أو، قد تدرك أن الحزمة التي قمت بتثبيتها ليست الحزمة التي تحتاج إليها. ربما وجدت مهمة تنجز مهمة بشكل أفضل. مهما كان السبب، يجب إزالة التبعيات التي لا تستخدمها. إجراء ذلك يُبقي الأمور نظيفة. كما أن التبعيات تأخذ مساحة.

لإزالة حزمة من مشروعك، استخدم remove الأمر ، على النحو التالي: dotnet remove package <name of dependency>. يزيل هذا الأمر الحزمة من ملف المشروع .csproj .