مقدمه

برنامه‌ی کنسول HelloWorld را که در درس قبل با استفاده از Visual Studio ساختیم، در این درس در محیط Visual Studio Code و با استفاده از .NET CLI می‌سازیم. قبل از اینکه به نحوه‌ی ساخت، کامپایل و اجرای پروژه‌های .NET در vscode بپردازیم، ابتدا نحوه‌ی نصب vscode روی پلتفرم‌های مختلف را می‌بینیم.

نصب Visual Studio Code

Visual Studio Code که به‌اختصار vscode گفته می‌شود، یک IDE مستقل از پلتفرم است که محبوبیتش منحصر به توسعه‌دهندگان .NET نیست و بسیاری از توسعه‌دهندگان دیگر نیز از این IDE استفاده می‌کنند. vscode بسیار خوش‌ساخت، کاربرپسند و هوشمند است و قابلیت‌های فراوانی دارد و به‌خصوص اینکه پلاگین‌های زیادی توسط خود مایکروسافت و سایرین برای این IDE نوشته شده و در دسترس ما قرار دارد. در این بخش، با نحوه‌ی نصب vscode روی ویندوز و لینوکس آشنا می‌شویم.

نصب VSCode روی ویندوز

نصب vscode روی ویندوز بسیار ساده است و به راه‌های مختلفی قابل انجام است. ساده‌ترین راه این است که به وبسایت این IDE بروید و فایل نصب vscode را دانلود کنید و آن را نصب کنید.

اما اگر با ابزار winget آشنا هستید، می‌توانید با استفاده از کامند زیر vscode را روی سیستم ویندوزی خود نصب کنید.

> winget install --id Microsoft.VisualStudioCode

با اجرای این کامند، آخرین نسخه از vscode روی سیستم ما نصب می‌شود.

در مورد winget

ابزار winget که یک کلاینت برای سرویس Windows Package Manager است، روی ویندوز 11 از قبل نصب است اما قبل از استفاده به آپدیت نیاز دارد. برای آپدیت winget می‌توانید از Microsoft Store استفاده کنید. برای این کار، ابتدا Microsoft Store را اجرا کنید و در نوار جستجو عبارت App Installer را جستجو کنید. winget در واقع بخشی از پکیج App Installer است. سپس، روی دکمه‌ی Update کلیک کنید.

نصب VSCode روی لینوکس

نصب vscode روی توزیع‌های لینوکسی هم کار ساده‌ای است و به چند روش امکان‌پذیر است. بهترین راه برای نصب vscode روی توزیع‌های لینوکسی، نصب با استفاده از پکیج snap است. اسنپ‌ها پکیج‌های universal هستند که به توزیع خاصی وابسته نیستند و نسبت به پکیج‌های اختصاصی توزیع‌ها، مزایای زیادی دارند. کامند زیر vscode را روی یک توزیع لینوکسی نصب می‌کند.

$ sudo snap install vscode --classic

اما اگر به هر دلیلی نخواهیم vscode را با استفاده از پکیج snap نصب کنیم، می‌توانیم ورژن مختص هر توزیع را دانلود کرده و آن را نصب کنیم. برای مثال، در مورد توزیع‌های مبتنی بر Debian مانند Ubuntu باید پکیج .deb را دانلود و نصب کنیم. این کار را می‌توانیم با استفاده از کامندهای زیر انجام دهیم.

$ wget https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 -O code.deb
$ sudo dpkg -i code.deb
          

کامند اول با استفاده از ابزاری با نام wget (که باید روی توزیع لینوکسی شما نصب باشد)، پکیج .deb مربوط به vscode را دانلود می‌کند و کامند دوم، آن را نصب می‌کند. دقت داشته باشید که در کامند دوم، code.deb به فایل دانلود شده اشاره می‌کند و بنابراین، اگر از یک دایرکتوری دیگر این کامند را اجرا کنیم، باید آدرس کامل فایل را وارد کنیم.

اگر در طول فرایند نصب با مشکلی در ارتباط با وابستگی‌های پکیج مواجه شدیم، می‌توانیم با کامند زیر این مشکل را رفع کنیم.

$ sudo apt --fix-broken install

نصب پلاگین C# Dev Kit

بعد از اینکه vscode را نصب کردید، آن را اجرا کنید و از پنل سمت چپ، روی آیکون Extensions کلیک کنید. سپس، در باکس جستجو عبارت C# Dev Kit را وارد کنید و این پلاگین را نصب کنید. بعداً پلاگین‌های دیگری را هم نصب خواهیم کرد اما برای شروع، نصب پلاگین C# Dev Kit کفایت می‌کند.

ایجاد اپلیکیشن

خوب، در این مرحله باید vscode روی سیستم شما نصب باشد و بنابراین، می‌توانیم کار ایجاد پروژه‌ی HelloWorld را شروع کنیم. با طی کردن گام‌های زیر، یک پروژه‌ی کنسول با نام HelloWorld ایجاد می‌شود.

ابتدا vscode را اجرا کنید و از منوی اصلی گزینه‌ی File > Open Folder را انتخاب کنید. در کادری که باز می‌شود، یک پوشه با نام HelloWorld ایجاد کرده و آن را انتخاب کنید و روی Select folder کلیک کنید. نامی که برای این پوشه تعیین می‌کنیم، به طور خودکار به پروژه و فضای نام (namespace) هم اختصاص داده می‌شود. اگر کادر Do you trust the authors of the files in this folder? نمایش داده شد، روی Yes کلیک کنید.

حالا از منوی اصلی گزینه‌ی View > Terminal را انتخاب کنید تا پنل ترمینال در vscode باز شود. دستور زیر را در ترمینال وارد و اجرا کنید.

$ dotnet new console --framework net8.0 --use-program-main

حالا فایل Program.cs را باز کنید تا کدهای تولید شده توسط تمپلت را ببینید.

Copy Icon Program.cs
namespace HelloWorld;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello, World!");
    }
}

درون متد Main() از کلاس Console و یک متد این کلاس با نام WriteLine() استفاده شده که یک رشته‌ی متنی را به عنوان آرگومان دریافت کرده و آن را در کنسول نمایش می‌دهد.

در کامندی که برای ساخت پروژه‌ی HelloWorld وارد کردیم، آپشنی با نام --use-program-main دیده می‌شود. کاربرد این آپشن این است که ویژگی Top-level statements را غیرفعال می‌کند که یک ویژگی نسبتاً جدید از C# است که باعث می‌شود کلاس Program و متد Main() ایجاد نشوند و در واقع، به طور ضمنی ایجاد شوند. اگر این ویژگی فعال باشد، کلاس Program و متد Main() نمایش داده نمی‌شوند و کدی که در ریشه‌ی فایل (یعنی بیرون از هر کلاس یا متد دیگر) می‌نویسیم، به طور ضمنی به متد Main() اختصاص داده می‌شود.

اجرای اپلیکیشن

برای اجرای اپ کافیست کامند dotnet run را در ترمینال اجرا کنید.

$ dotnet run

به این ترتیب، برنامه ابتدا کامپایل و سپس، اجرا می‌شود و نتیجه‌ی زیر را مشاهده خواهیم کرد.

dotnet run command

انتخاب یک Shell برای ترمینال VSCode

دیدیم که که .NET CLI ابزاری است که امکان ساخت و اجرای اپ‌های C# را با استفاده از خط فرمان فراهم می‌کند. در واقع، به کمک این ابزار ما حتی بدون یک IDE هم می‌توانیم اپ‌های خود را ایجاد کنیم (البته با کمی کار بیشتر). برای ساخت اپ‌های C# تنها چیزی که واقعاً نیاز داریم، همین ابزار .NET CLI و یک ویرایشگر متن (حتی به سادگی Notepad) است. اما طلبیعتاً استفاده از یک IDE قدرتمند مانند vscode که به یک پنجره‌ی ترمینال داخلی هم مجهز است، کار ما را خیلی راحت‌تر می‌کند.

هانطور که می‌دانید، در یک پنجره‌ی ترمینال، ابتکار عمل در دست موجودی است به نام Shell که کامندها را دریافت کرده و یا اجرا می‌کند یا اینکه برای اجرا به سیستم‌عامل می‌دهد. این که ترمینال vscode از کدام شِل استفاده می‌کند، به سیستم‌عاملی که استفاده می‌کنید، بستگی دارد.

  • در ویندوز، اگر PowerShell روی سیستم نصب باشد، به عنوان شِل پیش‌فرض ترمینال در vscode به کار گرفته می‌شود و در غیر این صورت، Windows PowerShell شِل پیش‌فرض خواهد بود. توجه داشته باشید که Windows PowerShell نام شِل کلاسیک مایکروسافت است که روی ویندوز نصب است اما PowerShell یک شِل مدرن و مستقل از پلتفرم است که به نصب دستی نیاز دارد. PowerShell بر خلاف Windows PowerShell می‌تواند روی سیستم‌های غیر ویندوزی هم نصب شود.
  • در لینوکس، شِل پیش‌فرض در ترمینال vscode به توزیع لینوکسی بستگی دارد اما در اکثر توزیع‌ها این شِل bash است.
  • در مکینتاش،شِل پیش‌فرض در ترمینال vscode به ورژن سیستم‌عامل بستگی دارد؛ برای ورژن‌های جدیدتر zsh و برای ورژن‌های قدیمی‌تر ‌bash.

اما شِل پیش‌فرض را می‌توان به راحتی تغییر داد. برای این کار، ابتدا کلیدهای CTRL-SHIFT-P را فشار دهید تا Command Palette باز شود و سپس، عبارت Terminal: Select Default Profile را در آن وارد کنید. در ادامه، می‌توانید شِل مورد نظرتان را از لیست موجود انتخاب کنید تا جایگزین شِل فعلی شود. اگر Git را نصب کرده باشید، شِل Git Bash نیز در این لیست دیده می‌شود و قابل انتخاب است. همچنین، اگر با استفاده از WSL از توزیعی مثل Ubuntu روی ویندوز استفاده می‌کنید، گزینه‌ی Ubuntu (WSL) نیز قابل انتخاب است که منجر به انتخاب شِل پیش‌فرض Ubuntu یعنی bash می‌شود.