Digimensia.com – Halo semuanya! Selamat datang di Ruang Developer Blog. Setelah Mantap membahas tentang AI pada postingan sebelumnya, kali ini kita coba Buat pindah ke topik yang berbeda. Kita akan membahas bagaimana Langkah 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 Buat membangun aplikasi berbasis web. Apakah Anda pernah menggunakan framework ini? Apabila ya, mungkin Anda pernah mengalami kesulitan Buat menjalankan sebuah perintah melalui terminal Buat 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 Kagak Mempunyai fitur Buat menjalankan perintah spesifik yang kita buat Tertentu Buat aplikasi kita. Buat mengatasi hal itu, saya mencoba Buat Membikin NugGet Package yang akan memungkinkan Anda Buat 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: Demi tulisan ini dibuat, versi terbaru yang tersedia adalah 1.0.1
Buat Command Class
Pada project Anda, cobalah Buat 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 Eksis proses yang Panjang (query ke database)
await Task.Delay(1000);
Console.WriteLine("Hello, world! (Async)");
}
public void Execute(string[] args)
{
Console.WriteLine("Hello, world! (Sync)");
}
}
Pada Contoh di atas, kita Membikin sebuah class berama SayHello yang berisi atribut Name
dan Description
serta method ExecuteAsync
dan Execute
.
- Atribut
Name
digunakan Buat mengidentifikasi command yang akan kita jalankan di terminal. - Atribut
Description
menjelaskan apa fungsi dari command tersebut. (Demi tulisan ini dibuat, atribute ini Kagak dijelaskan pada dokumentasi project ini karena kelalaian :D, akan diperbaiki pada rilis berikutnya). - Method
ExecuteAsync
digunakan Buat menjalankan perintah perintah yang bersifat asynchronous. - Method
Execute
digunakan Buat menjalankan perintah yang bersifat synchronous.
Penggunaan ExecuteAsync
dan Execute
adalah opsional. Anda Kagak perlu menggunakan keduanya. Apabila Anda menggunakan method ExecuteAsync
, Anda Dapat 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.AddCommand<SayHello>();
});
Modifikasi Langkah Aplikasi Dijalankan
Secara default, pada file Program.cs
aplikasi kita biasanya dijalankan dengan method .Run()
. Agar Dapat 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 Dapat menjalankan command class yang kita buat dengan perintah seperti berikut:
dotnet run command --command hello
Option --command
digunakan Buat 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 Dapat lihat dokumentasi Formal Buat package RuangDeveloper.AspNetCore.Command melalui link berikut:
https://www.nuget.org/packages/RuangDeveloper.AspNetCore.Command/