مقدمه
رابط خط فرمان داتنت (.NET CLI) ابزاری قدرتمند برای توسعهدهندگان است که امکان مدیریت پروژهها، ساخت برنامهها و اجرای وظایف مختلف را از طریق دستورات ساده فراهم میکند. با معرفی نسخه 10 داتنت، مایکروسافت تغییراتی در ساختار دستورات این رابط اعمال کرده و رویکرد جدیدی به نام دستورات نون/ناون-فرست (Noun-first) را ارائه داده است. این رویکرد با هدف بهبود خوانایی، یکپارچگی و سازگاری با سایر ابزارهای رابط خط فرمان طراحی شده است. در این مقاله، به بررسی مفهوم دستورات نون-فرست، تفاوتهای آن با ساختار قبلی، کاربردها و مزایای آن برای توسعهدهندگان داتنت میپردازیم.
مفهوم دستورات نون/ناون-فرست و تغییرات ساختاری
دستورات نون-فرست به ساختاری اشاره دارند که در آن اسم یا شیء مورد نظر (Noun) در ابتدای دستور قرار میگیرد و سپس فعل یا عملی (Verb) که قرار است روی آن انجام شود، ذکر میشود. این رویکرد در مقابل ساختار قبلی داتنت، که به صورت ورب-فرست (Verb-first) بود، قرار میگیرد. در ساختار ورب-فرست، دستورات با فعل شروع میشدند، مانند dotnet add package. اما در نسخه 10 داتنت، مایکروسافت دستورات جدیدی را به صورت نون-فرست معرفی کرده است، مانند dotnet package add. این تغییر باعث میشود که دستورات از نظر ساختاری به ابزارهای رابط خط فرمان دیگر، مانند Docker یا Azure CLI، شباهت بیشتری پیدا کنند.
به عنوان مثال، در ساختار نون-فرست، دستور dotnet package add به وضوح نشان میدهد که عملیات روی یک بسته (Package) انجام میشود و سپس مشخص میکند که این عملیات افزودن (Add) است. این ترتیب منطقیتر به نظر میرسد، زیرا ابتدا شیء مورد نظر را مشخص میکند و سپس عملی که روی آن انجام میشود را بیان میکند. این ساختار به ویژه در اسکریپتنویسی و مستندسازی مفید است، زیرا خوانایی بیشتری دارد و درک آن برای توسعهدهندگان جدید آسانتر است.
دستورات نون-فرست معرفیشده در داتنت 10
در نسخه 10 داتنت، چندین دستور نون-فرست به عنوان جایگزین یا مکمل دستورات ورب-فرست قبلی معرفی شدهاند. این دستورات شامل موارد زیر هستند که هر یک با معادل قدیمی خود مقایسه شدهاند:
- دستور
dotnet package add: این دستور جایگزین dotnet add package شده و برای افزودن یک بسته نگت (NuGet Package) به پروژه استفاده میشود. به عنوان مثال، برای افزودن بسته Newtonsoft.Json به پروژه، میتوان از دستور زیر استفاده کرد:
dotnet package add Newtonsoft.Json
- این دستور بسته مورد نظر را به فایل پروژه اضافه کرده و وابستگیهای لازم را نصب میکند.
- دستور
dotnet package list: این دستور که جایگزین dotnet list package است، فهرستی از بستههای نگت استفادهشده در یک پروژه یا راهحل (Solution) را نمایش میدهد. برای نمونه:
dotnet package list --outdated
- این دستور بستههایی که نسخههای جدیدتری دارند را نشان میدهد و به توسعهدهندگان کمک میکند تا پروژه خود را بهروز نگه دارند.
- دستور
dotnet package remove: این دستور معادل dotnet remove package است و برای حذف یک بسته نگت از پروژه استفاده میشود. مثال:
dotnet package remove Newtonsoft.Json
- این دستور بسته را از فایل پروژه حذف کرده و وابستگیهای مربوطه را بهروزرسانی میکند.
- دستور
dotnet reference add: این دستور جایگزین dotnet add reference شده و برای افزودن ارجاع به یک پروژه دیگر در راهحل استفاده میشود. برای مثال:
dotnet reference add ../MyLibrary/MyLibrary.csproj
- این دستور پروژه فعلی را به پروژه دیگری متصل میکند.
- دستور
dotnet reference list: معادل dotnet list reference، این دستور فهرستی از ارجاعات پروژه را نمایش میدهد. مثال:
dotnet reference list
- این دستور به توسعهدهندگان کمک میکند تا وابستگیهای بین پروژهها را بررسی کنند.
- دستور
dotnet reference remove: این دستور که جایگزین dotnet remove reference است، برای حذف ارجاع به یک پروژه استفاده میشود. مثال:
dotnet reference remove ../MyLibrary/MyLibrary.csproj
- این دستور ارجاع مشخصشده را از فایل پروژه حذف میکند.
این دستورات جدید نه تنها خواناتر هستند، بلکه با استانداردهای مدرن رابطهای خط فرمان همخوانی بیشتری دارند. با این حال، مایکروسافت همچنان از دستورات ورب-فرست قدیمی پشتیبانی میکند تا از ایجاد تغییرات ناگهانی در پروژههای موجود جلوگیری شود.
مزایای استفاده از دستورات نون-فرست
استفاده از دستورات نون-فرست مزایای متعددی برای توسعهدهندگان داتنت به همراه دارد.
- اولین مزیت، بهبود خوانایی و وضوح دستورات است. با قرار گرفتن اسم در ابتدای دستور، توسعهدهندگان میتوانند به سرعت تشخیص دهند که دستور روی چه شیء یا منبعی اعمال میشود. این ویژگی به ویژه در پروژههای بزرگ که تعداد زیادی دستور اجرا میشود، مفید است.
- دومین مزیت، سازگاری با سایر ابزارهای رابط خط فرمان است. بسیاری از ابزارهای مدرن، مانند Docker (دستوراتی مانند
docker container run) یا Kubernetes (دستوراتی مانند kubectl pod describe)، از ساختار نون-فرست استفاده میکنند. این شباهت باعث میشود که توسعهدهندگانی که با این ابزارها کار میکنند، راحتتر با رابط خط فرمان داتنت ارتباط برقرار کنند. - سومین مزیت، سهولت در اسکریپتنویسی و اتوماسیون است. دستورات نون-فرست به دلیل ساختار منظمتر، در اسکریپتهای شل (Shell Scripts) یا پاورشل (PowerShell) خواناتر و قابلنگهداریتر هستند. برای مثال، در یک اسکریپت که چندین بسته نگت را به پروژه اضافه میکند، استفاده از
dotnet package add به جای dotnet add package میتواند کد را واضحتر کند.
نحوه استفاده و نکات عملی
برای استفاده از دستورات نون-فرست، ابتدا باید اطمینان حاصل کنید که نسخه 10 یا بالاتر داتنت اسدیکی (.NET SDK) روی سیستم شما نصب شده است. میتوانید با اجرای دستور زیر نسخه نصبشده را بررسی کنید:
dotnet --version
اگر نسخه نصبشده کمتر از 10 باشد، باید اسدیکی را از وبسایت رسمی مایکروسافت بهروزرسانی کنید.
پس از نصب نسخه مناسب، میتوانید از دستورات نون-فرست در پروژههای خود استفاده کنید. به عنوان مثال، فرض کنید پروژهای دارید که نیاز به استفاده از بسته EntityFrameworkCore دارد. میتوانید با اجرای دستور زیر آن را به پروژه اضافه کنید:
dotnet package add Microsoft.EntityFrameworkCore
سپس، برای بررسی بستههای نصبشده و اطمینان از بهروز بودن آنها، از دستور زیر استفاده کنید:
dotnet package list --outdated
این دستور به شما کمک میکند تا بستههایی که نیاز به بهروزرسانی دارند را شناسایی کنید.
یکی از نکات مهم در استفاده از دستورات نون-فرست، توجه به گزینههای اضافی (Options) است که میتوانند همراه با این دستورات استفاده شوند. برای مثال، دستور dotnet package list از گزینههایی مانند --include-transitive برای نمایش وابستگیهای غیرمستقیم یا --format json برای خروجی به فرمت جیسون پشتیبانی میکند. این گزینهها انعطافپذیری بیشتری به توسعهدهندگان میدهند.
ارتباط با سایر مفاهیم داتنت
دستورات نون-فرست نه تنها به بهبود رابط خط فرمان کمک میکنند، بلکه با سایر مفاهیم و ابزارهای داتنت نیز ارتباط نزدیکی دارند. برای مثال، این دستورات در فرآیندهای توسعه مداوم (CI/CD) نقش مهمی ایفا میکنند. در ابزارهایی مانند Azure DevOps یا GitHub Actions، اسmissedتفاده از دستورات نون-فرست در اسکریپتهای ساخت (Build Scripts) میتواند خوانایی و نگهداری کد را بهبود بخشد.
علاوه بر این، دستورات نون-فرست با مدیریت بستههای نگت و ارجاعات پروژه ارتباط تنگاتنگی دارند. توسعهدهندگانی که با بستههای نگت کار میکنند، میتوانند از این دستورات برای مدیریت بهتر وابستگیها و بهروزرسانی پروژهها استفاده کنند. این موضوع به ویژه در پروژههای بزرگ که تعداد زیادی بسته و ارجاع وجود دارد، اهمیت بیشتری پیدا میکند.
نتیجهگیری
دستورات نون-فرست در نسخه 10 داتنت گامی مهم در جهت بهبود رابط خط فرمان این پلتفرم هستند. با تغییر ساختار دستورات به شکلی که ابتدا شیء مورد نظر و سپس عمل مشخص میشود، مایکروسافت خوانایی، سازگاری و سهولت استفاده را برای توسعهدهندگان ارتقا داده است. این دستورات نه تنها برای توسعهدهندگانی که به تازگی با داتنت کار میکنند، بلکه برای حرفهایهایی که در پروژههای پیچیده و اسکریپتنویسی فعالیت دارند، ارزشمند هستند. با استفاده از دستوراتی مانند dotnet package add یا dotnet reference list، توسعهدهندگان میتوانند وظایف خود را با کارایی بیشتری انجام دهند و پروژههای خود را بهتر مدیریت کنند.