Di balik tombol Run di editor, perintah dotnet CLI yang bekerja. CLI ini berjalan identik di Windows, macOS, dan Linux, sehingga keahlian yang kita bangun di sini berlaku di semua platform. Menguasai dotnet CLI juga membuat kita tidak terikat pada satu editor tertentu.
Perintah Inti #
| Perintah | Fungsi |
|---|---|
dotnet new console -o NamaProject | Membuat project console baru di folder NamaProject |
dotnet build | Mengompilasi project dan menulis hasilnya ke bin/ |
dotnet run | Build dan menjalankan project dalam satu langkah |
dotnet run -- argumen | Menjalankan project sambil meneruskan argumen ke program |
dotnet publish | Menghasilkan folder distribusi yang siap disalin |
Cara Kerja di Balik Layar #
Driver dotnet membaca file .csproj untuk mengetahui target framework dan konfigurasi project. Perintah build kemudian didelegasikan ke MSBuild, mesin build .NET; MSBuild memanggil compiler Roslyn untuk mengubah file .cs menjadi assembly .dll berisi IL (Intermediate Language). Seluruh tahap ini berjalan sama persis ketika tombol Run di editor ditekan.
Membuat Project dengan dotnet new #
dotnet new console -o HaloCli
cd HaloCliOutput yang Dihasilkan:
The template "Console App" was created successfully.
Processing post-creation actions...
Restoring ~/HaloCli/HaloCli.csproj:
Determining projects to restore...
Restored ~/HaloCli/HaloCli.csproj (in 65 ms).
Restore succeeded.Opsi -o HaloCli menentukan folder tujuan; tanpa opsi tersebut, template dibuat langsung di folder kerja saat ini. Bagian Restoring ... Restore succeeded menunjukkan dotnet CLI langsung menjalankan restore dependensi setelah template dibuat.
Build dan Run #
dotnet buildOutput yang Dihasilkan:
Determining projects to restore...
All projects are up-to-date for restore.
HaloCli -> ~/HaloCli/bin/Debug/net9.0/HaloCli.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:00.71Baris HaloCli -> ~/HaloCli/bin/Debug/net9.0/HaloCli.dll menunjukkan lokasi assembly hasil kompilasi. Perintah dotnet run melakukan build yang sama lalu langsung mengeksekusi hasilnya:
dotnet runOutput yang Dihasilkan:
Hello, World!Meneruskan Argumen ke Program #
Program console membaca argumen lewat array args. Ubah Program.cs menjadi:
string nama = args.Length > 0 ? args[0] : "Budi";
Console.WriteLine($"Halo, {nama}! Selamat belajar C#.");Pemisah -- memisahkan argumen untuk dotnet CLI dari argumen untuk program kita:
dotnet run -- SitiOutput yang Dihasilkan:
Halo, Siti! Selamat belajar C#.Kita bedah baris program di atas:
args— array string berisi argumen yang diteruskan setelah--;args.Lengthmenghitung jumlah argumen.args.Length > 0 ? args[0] : "Budi"— operator ternary mengambil argumen pertama bila tersedia, atau memakai nilai bawaan"Budi".$"Halo, {nama}! ..."— string interpolation menyisipkan nilainamake dalam teks yang dicetak.
Publish untuk Distribusi #
dotnet publishPerintah ini menghasilkan folder berisi file yang siap disalin ke komputer lain. Lokasi output dan opsi runtime-nya dibahas lebih lanjut di bab Menjalankan Program.