sandidharma.ac.id – Halo semuanya! Selamat datang di Sandi Dharma Blog. Setelah Mantap membahas tentang AI pada postingan sebelumnya, kali ini kita coba Kepada pindah ke topik yang berbeda. Kita akan membahas bagaimana Metode menambahkan fitur command line pada project ASP.NET Core.
Basa-basi
Tahukah Anda? ASP.NET Core adalah salah satu framework Terkenal yang dikembangkan oleh Microsoft Kepada membangun aplikasi berbasis web. Apakah Anda pernah menggunakan framework ini? Kalau ya, mungkin Anda pernah mengalami kesulitan Kepada menjalankan sebuah perintah melalui terminal Kepada melakukan aksi tertentu di aplikasi Anda. Salah satu aksi yang biasanya Mau dilakukan adalah berinteraksi dengan database, seperti mengisi data (seeding), menghapus atau merubah suatu data tertentu. Masalahanya adalah ASP.NET Core Tak Mempunyai fitur Kepada menjalankan perintah spesifik yang kita buat Tertentu Kepada aplikasi kita. Kepada mengatasi hal itu, saya mencoba Kepada Membikin NugGet Package yang akan memungkinkan Anda Kepada Membikin perintah terminal spesifik sesuai kebutuhan aplikasi Anda. Yuk, lanjut….
Bagaimana Caranya?
Mudah sekali Ges! Yuk, ikuti langkah-langkah berikut!
Install
Pertama, kita perlu install packagenya terlebih dahulu dengan menjalankan perintah berikut:
dotnet add package RuangDeveloper.AspNetCore.Command --version 1.0.1
Note: Ketika tulisan ini dibuat, versi terbaru yang tersedia adalah 1.0.1
Buat Command Class
Pada project Anda, cobalah Kepada Membikin folder bernama “Commands” kemudian buat sebuah file di dalamnya berisi class yang mengimplementasikan interface ICommand
. Contohmya seperti berikut:
using System;
using System.Threading.Tasks;
using RuangDeveloper.AspNetCore.Command;
public class SayHello : ICommand
{
public string Name => "hello";
public string Description => "Say hello command";
public async Task ExecuteAsync(string[] args)
{
// Misalnya Terdapat proses yang Pelan (query ke database)
await Task.Delay(1000);
Console.WriteLine("Hello, world! (Async)");
}
public void Execute(string[] args)
{
Console.WriteLine("Hello, world! (Sync)");
}
}
Pada Teladan di atas, kita Membikin sebuah class berama SayHello yang berisi atribut Name
dan Description
serta method ExecuteAsync
dan Execute
.
- Atribut
Name
digunakan Kepada mengidentifikasi command yang akan kita jalankan di terminal. - Atribut
Description
menjelaskan apa fungsi dari command tersebut. (Ketika tulisan ini dibuat, atribute ini Tak dijelaskan pada dokumentasi project ini karena kelalaian :D, akan diperbaiki pada rilis berikutnya). - Method
ExecuteAsync
digunakan Kepada menjalankan perintah perintah yang bersifat asynchronous. - Method
Execute
digunakan Kepada menjalankan perintah yang bersifat synchronous.
Penggunaan ExecuteAsync
dan Execute
adalah opsional. Anda Tak perlu menggunakan keduanya. Kalau Anda menggunakan method ExecuteAsync
, Anda Pandai mengosongkan method Execute
, begitu pun sebaliknya.
Registrasikan Command Class
Setelah Membikin command, kita perlu meregistrasikan package dan command yang kita buat ke dalam service collection aplikasi kita. Silahkan buka file Program.cs
dan tambahkan kode berikut.
builder.Services.AddCommands(configure =>
{
configure.AddCommandSayHello>();
});
Modifikasi Metode Aplikasi Dijalankan
Secara default, pada file Program.cs
aplikasi kita biasanya dijalankan dengan method .Run()
. Agar Pandai menjalankan command yang kita buat, kita perlu menggantinya dengan method .RunWithCommands()
. Contohnya seperti berikut:
// Ganti app.Run(); menjadi
app.RunWithCommands(args);
Menjalankan Command Class
Kit Pandai menjalankan command class yang kita buat dengan perintah seperti berikut:
dotnet run command --command hello
Option --command
digunakan Kepada menentukan command apa yang akan kita jalankan, dalam hal ini adalah command class kita yang Mempunyai atribut Name
bernilai “hello”.
Berikut hasilnya:

Surat keterangan
Anda Pandai lihat dokumentasi Formal Kepada package RuangDeveloper.AspNetCore.Command melalui link berikut:
https://www.nuget.org/packages/RuangDeveloper.AspNetCore.Command/