‏نمایش پست‌ها با برچسب NuGet. نمایش همه پست‌ها
‏نمایش پست‌ها با برچسب NuGet. نمایش همه پست‌ها

۱۳۹۰/۰۱/۲۳

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


قسمت قبل از ديد يك مصرف كننده بود؛ اين قسمت جهت توسعه‌ دهنده‌ها تهيه شده است. كساني كه قصد دارند تا بسته‌هاي NuGet ايي از كارشان تهيه كنند. مراحل اينكار به شرح زير است:

الف) براي اين منظور نياز است تا برنامه‌ي‌ خط فرمان NuGet.exe معرفي شده در قسمت قبل را ابتدا دريافت كنيد : (+)

ب) براي بسته نرم افزاري خود يك پوشه جديد درست كنيد. سپس فرمان nuget.exe spec را در اين پوشه صادر نمائيد. بلافاصله فايلي به نام Package.nuspec تشكيل خواهد شد:
D:\Prog\1389\CodePlex\slpdatepicker\SlPDatePickerNuGet>NuGet.exe spec
Created 'Package.nuspec' successfully.

فايل Package.nuspec، يك فايل XML ساده است. آن‌را با يك اديتور متني باز كرده و تغييرات لازم را اعمال نمائيد. براي مثال من جهت پروژه Silverlight 4 Persian DatePicker ، محتويات آن‌را به صورت زير تغيير داده‌ام:

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Silverlight.4.Persian.DatePicker</id>
<version>1.0</version>
<authors>Vahid Nasiri</authors>
<owners>Vahid Nasiri</owners>
<licenseUrl>http://slpdatepicker.codeplex.com/license</licenseUrl>
<projectUrl>http://slpdatepicker.codeplex.com/</projectUrl>
<iconUrl>https://slpdatepicker.svn.codeplex.com/svn/SilverlightPersianDatePicker/Views/Images/date.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Silverlight 4 Persian DatePicker Control</description>
<tags>Silverlight WPF Persian DatePicker</tags>
</metadata>
<files>
<file src="..\SilverlightPersianDatePicker\Bin\Release\*.dll" target="lib" />
<file src="..\SilverlightPersianDatePicker\Bin\Release\*.pdb" target="lib" />
<file src="..\SilverlightPersianDatePicker\Bin\Release\*.xml" target="lib" />
</files>
</package>

همانطور كه ملاحظه مي‌كنيد يك سري اطلاعات عمومي از پروژه مورد نظر درخواست شده است؛ براي مثال آدرس آيكن آن چيست يا كجا مي‌توان آن‌را يافت؟ مجوز استفاده از آن چيست و مواردي از اين دست. به كمك تگ files هم فايل‌هاي كتابخانه در اينجا لحاظ شده‌اند. فايل آيكن معرفي شده بايد در اندازه‌ي 32*32 و با فرمت png باشد. بايد دقت داشت كه در سايت nuget.org ، بسته شما بر اساس id ذكر شده معرفي خواهد شد و آدرسي بر اين اساس تشكيل مي‌گردد. بنابراين از فاصله يا موارد مشكل ساز در اين بين استفاده نكنيد.

در مورد نحوه‌ي ايجاد قدم به قدم يك پروژه جديد در سايت كدپلكس مي‌توان به اين مطلب مراجعه نمود: (+)

ج) اكنون نوبت به تهيه بسته نهايي مي‌رسد. براي اين منظور دستور زير را در خط فرمان صادر كنيد:
NuGet.exe pack Package.nuspec
پس از چند لحظه فايل Silverlight.4.Persian.DatePicker.1.0.nupkg جهت ارائه عمومي توليد خواهد شد.

د) قبل از اينكه اين فايل نهايي را در سايت nuget.org آپلود كنيم، مي‌توان مشخصات آن‌را به صورت محلي نيز يكبار مرور كرد. براي اين منظور در VS.NET به منوي Tools گزينه‌ي Options مراجعه كرده و در قسمت package manager ، آدرس پوشه بسته مورد نظر را وارد كنيد. براي مثال:



اكنون اگر كنسول پاورشل توضيح داده شده در قسمت قبل را باز نمائيد، منبع جديد اضافه شده مشخص است يا مي‌توان توسط دستور ذيل از آن كوئري گرفت:
get-package -remote -filter silverlight



و يا اگر همانند توضيحات قبل به صفحه‌ي ديالوگ add library package reference‌ مراجعه كنيم، مشخصات كامل بسته به همراه منبع محلي بايد قابل مشاهده باشند:



ه) پس از بررسي محلي بسته مورد نظر، اكنون نوبت به ارائه عمومي آن مي‌باشد. براي اين منظور ابتدا بايد در سايت nuget.org ثبت نام كرد : (+). اگر آدرس ايميل شما را نپذيرفت، از مرورگر IE استفاده كنيد!
پس از ثبت نام تنها كافي است به قسمت contribute سايت مراجعه كرده و فايل بسته نهايي را در آنجا آپلود كرد. به اين صورت بسته نهايي در سايت پديدار خواهد شد :‌(+)
همچنين بلافاصله در قسمت گالري آنلاين صفحه add library package reference نيز قابل دسترسي خواهد بود.


در آينده جهت توزيع به روز رساني‌هاي جديد، همين مراحل بايد تكرار شوند. البته در نظر داشته باشيد كه version ذكر شده در فايل Package.nuspec را بايد حتما تغيير داد تا بسته‌ها از يكديگر متمايز شوند. امكان اتوماسيون اين توزيع نيز وجود دارد. همان فايل nuget.exe ، امكان ارسال بسته نهايي را به سايت nuget.org نيز دارد:
nuget push name.nupkg key
در اينجا key مخصوص به خود را مي‌توان در صفحه‌ي http://nuget.org/Contribute/MyAccount مشاهده و استفاده نمود.

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

۱۳۹۰/۰۱/۲۱

آشنايي با 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."





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