الفرق بين أدوات التحكم في الحزم Nuget و Bower و NPM في الدوت نيت

مقدمة

قبل زمن أدوات التحكم في الحزم Package Manager Tools كنا نعاني في تحميل وتضمين المكتبات اللازمة، والحرص على اختيار الإصدارات المناسبة، وكما هو معلوم فإن التعامل اليدوي مع الأدوات البرمجية قد يسبب مشاكل سواء في زمن التطوير أو عند الانتهاء والشروع في التحزيم.

أداة Nuget Package Manager

قامت ميكروسوفت بإدراج أداة Nuget Package Manager عام 2010 في الفيجوال ستوديو لتسهيل عملية التحكم في المكتبات والحزم البرمجية بواجهة مبسطة نراها في الصورة التالية:


اعتدنا بصفتنا مبرمحين تابعين لنطاق العمل دوت نيت على أداة Nuget Package Manager من أجل التحكم في الحزم والمكتبات التي نريد إدراجها في مشاريعنا، لكن مؤخرا ظهرت بعض الأدوات الأخرى التي تستعمل تقريبا لنفس الغرض مع اختلاف طفيف في دواعي الاستعمال، حيث صرنا نجد أداة Bower وأداة NPM، فما هما هذان الأداتان وفيما تستخدمان؟

بالنسبة للأداة المخضرمة Nuget Package Manager فهي صارت موجهة خصيصا للتعامل مع الحزم والمكتبات الخاصة بالدوت نيت .NET Assemblies مع العلم أنه يمكننا استعمالها أيضا في التعامل مع المكتبات المتعلقة ب Front-end، لكن لا ينصح بذلك في ظل توفر أدوات مخصصة لذلك، إذن باختصار فأداة Nuget Package Manager صار استعمالها خاصا بمكتبات الدوت نيت.

أداة Bower

أما أداة Bower فهي مخصصة للتعامل مع المكونات المتعلقة ب Front-end، مثل ملفات جافاسكريبت و CSS، وتتميز أداة Bower بكونها تسهم في تقليل زمن تحميل الصفحات عبر اعتمادها على آلية Flat dependency graph والتي تعني أن أداة Bower تقوم بترشيد تحميل مكونات Front-end، على سبيل المثال لو مشروعك يحتوي على مجموعة من الحزم التي تحتاج إلى jQuery فإن Bower سيقوم بتحميل مكتبة jQuery مرة واحدة على الرغم من تعدد الارتباطات dependencies مما يساعد على تسريع تحميل الصفحات.


للاطلاع أكثر على أداة Bower يمكن العودة إلى الموقع الرسمي للأداة:
https://bower.io/

أداة NPM

الأداة الأخرى التي صار بإمكاننا استعمالها في الدوت نيت لإدارة المكتبات والحزم هي أداة NPM والتي صممت في الأصل لأجل مكتبة NodeJS ومنه أخذت تسميتها ب NPM اختصارا ل Node Package Manager، وهي تختلف عن أداة Bower في طريقة تعاملها مع المكتبات حيث معروف أن NPM تدعم خاصية Nested Dependencies، مما يعني بشكل مبسط أنها تسمح بتضمين أكثر من إصدار لنفس المكتبة في المشروع.
يمكنك الاطلاع أكثر على أداة NPM وتحميلها من الموقع التالي:
https://www.nuget.org/

خاتمة

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


تعليقات

إرسال تعليق