۱۳۹۰/۰۱/۲۱

آشنايي با NuGet - قسمت اول


NuGet چيست؟

روش متداول استفاده از كتابخانه‌هاي موجود دات نتي در Visual studio‌ عموما به اين صورت است: مراجعه به سايت مربوطه، دريافت بسته مورد نظر، باز كردن آن و سپس افزودن ارجاعي به اسمبلي‌هاي آن كتابخانه. در اين حالت زمانيكه نسخه‌ي جديدي از كتابخانه‌ي مورد استفاده ارائه ‌شود (و عموما تا مدت‌ها شايد از آن بي‌اطلاع باشيم) تمام اين مراحل بايد از ابتدا تكرار شوند و همينطور الي آخر.
براي رفع اين نقيصه، تيم ASP.NET، افزونه‌اي سورس باز و رايگان را به نام NuGet جهت VS.Net 2010 طراحي كرده‌اند كه كار مديريت بسته‌هاي كتابخانه‌هاي مورد استفاده را بسيار ساده كرده است. امكانات اين افزونه پس از نصب، در دو حالت استفاده از رابط گرافيكي كاربري آن و يا با استفاده از خط فرمان PowerShell ويندوز در دسترس خواهد بود. اين افزونه در زمان بارگذاري، با مراجعه به فيد سايت مركزي خود، ليست بسته‌هاي مهيا را در اختيار علاقمندان قرار مي‌دهد. درب اين سايت مركزي به روي تمام توسعه‌ دهنده‌ها جهت افزودن بسته‌هاي خود باز است.
و ... فراگيري كار با NuGet براي تمام برنامه نويسان دات نت لازم و ضروري است! از اين جهت كه پيغام "اين بسته تنها براي NuGet عرضه شده است" كم كم در حال متداول شدن مي‌باشد و ديگر سايت‌هاي مرتبط، لينك مستقيمي را جهت دريافت كتابخانه‌هاي خود ارائه نمي‌دهند. حتي خبر به روز شدن محصولات خود را هم شايد ديگر به صورت منظم ارائه ندهند؛ زيرا NuGet كار مديريت آن‌ها را به عهده خواهد داشت.


دريافت و نصب NuGet

NuGet را حداقل به سه طريق مي‌توان دريافت و نصب كرد:
الف) با مراجعه به سايت CodePlex : (+)
ب) دريافت آن از سايت گالري‌هاي آن : (+)


ج) با استفاده از امكانات VS.NET

هر سه روش فوق به دريافت و نصب فايل NuGet.Tools.vsix منتهي مي‌شوند. براي مثال در روش (ج) بايد به منوي Tools و گزينه‌ي Extension Manager مراجعه كنيد. سپس برگه‌ي Online Gallery را گشوده و اندكي صبر كنيد تا اطلاعات آن دريافت و نمايش داده شود. سپس NuGet را در Search box بالاي صفحه نوشته و NuGet Package manager ظاهر شده را انتخاب و نصب كنيد.



نحوه استفاده از NuGet

فرض كنيد يك پروژه جديد ASP.NET را ايجاد كرده‌ايد و نياز است تا كتابخانه‌ي ELMAH به آن اضافه شود. روش انجام اينكار را به كمك NuGet در ادامه بررسي خواهيم كرد (كمتر از يك دقيقه زمان خواهد برد):

الف) با كمك امكانات رابط گرافيكي كاربر آن
ساده‌ترين روش استفاده از NuGet ، كليك راست بر روي پوشه References در Solution explorer و سپس انتخاب گزينه‌ي Add Library Package Reference مي‌باشد:



در صفحه‌ي باز شده، برگه‌ي Online را باز كنيد و مدتي صبر نمائيد تا اطلاعات لازم دريافت گردد (در زمان نگارش اين مطلب، 1135 بسته در اين مخزن موجود است):



سپس در جعبه‌ي جستجوي سمت راست بالاي صفحه، نام كتابخانه‌ي مورد نظر را نوشته و اندكي صبر كنيد تا اطلاعات آن نمايش داده شود:



اكنون با كليك بر روي دكمه Install ، بسته مرتبط با اين كتابخانه دريافت شده و سپس به صورت خودكار ارجاعي به آن نيز افزوده خواهد شد. همچنين تنظيمات مرتبط با فايل Config برنامه هم اضافه مي‌شوند.

روش ديگر ظاهر كردن اين صفحه، مراجعه به منوي Tools و گزينه‌ي Library Package Manager مي‌باشد:



جهت دريافت به روز رساني‌هاي بسته‌هاي نصب شده تنها كافي است به برگه‌ي Updates اين صفحه مراجعه كرده و موارد ليست شده را نصب نمائيم:



نكته: NuGet در SharpDevelop 4.1 به بعد هم پشتيباني مي‌شود:




ب) با استفاده از امكانات خط فرمان PowerShell ويندوز
براي استفاده از امكانات پاورشل ويندوز نياز است تا پاورشل نگارش 2 بر روي سيستم شما نصب باشد (نياز به Windows XP with Service Pack 3 به بعد دارد). سپس به منوي Tools ، قسمت Library Package Manager ، گزينه‌ي Package Manager Console آن جهت فعال سازي كنسول پاور شل در VS.NET مراجعه نمائيد:


نكته: در تصوير فوق پس از نوشتن el ، دكمه tab فشرده شده است. در اين حالت منوي پكيج‌هاي مهياي شروع شده با el، از سايت مركزي NuGet ظاهر گرديده است.

فرامين مهمي كه در اينجا در دسترس هستند شامل: List-Package ، Uninstall-Package ، Update-Package و Get-Package مي‌باشند. براي مثال اگر قصد جستجو در بين بسته‌هاي موجود را داشته باشيد Get-Package بسيار مفيد است:



براي مثال جهت يافتن بسته‌هاي مرتبط با wpf و silverlight به صورت زير مي‌توان عمل كرد:
PM> get-package -remote -filter wpf
PM> get-package -remote -filter silverlight

نكته: روش ديگر جستجو در بين بسته‌هاي مهيا، مراجعه به سايت گالري آن است : (+) . در اينجا دستور پاورشل نصب هر بسته‌ي يافت شده نيز نمايش داده مي‌شود.


ج) استفاده از برنامه NuGet.exe
برنامه NuGet.exe از سايت CodePlex قابل دريافت است. اين روش هم جهت علاقمندان به خط فرمان تدارك ديده شده است!
پس از دريافت آن فرض كنيد مي‌خواهيم تمام بسته‌هاي شروع شده با nhi را ليست كنيم. براي اين منظور دستور خط فرمان ذيل را صادر كنيد:
D:\Test>nuget list nhi
سپس براي دريافت مثلا NHibernate تنها كافي است دستور زير اجرا شود:
D:\Test>nuget install NHibernate

به اين صورت كتابخانه NHibernate ‌به همراه تمام وابستگي‌هاي آن دريافت خواهد شد.

به روز رساني خودكار NuGet
براي به روز رساني برنامه nuget.exe دستور زير را مي‌توان صادر نمود:
D:\Test>NuGet.exe u
و يا جهت فعال سازي به روز رساني‌هاي خودكار افزونه‌ها در VS.NET به منوي زير مراجعه كنيد:
Tools | Options, then Environment | Extension Manager and click "Automatically check for updates to installed extensions."





ادامه دارد ...