Langsung ke konten utama

Kestrel Web Server di ASP.NET Core

Artikel ini bakal ngejelasin soal Kestrel Web Server di ASP.NET Core, pake contoh juga biar gampang dimengerti. Sebelumnya kita udah bahas hosting model InProcess di ASP.NET Core, nih.

Kestrel Web Server Itu Apaan?
Jadi gini, ASP.NET Core itu framework lintas platform, artinya lo bisa bikin dan jalanin aplikasi di Windows, Linux, atau macOS. Nah, Microsoft bikin Kestrel jadi web server default buat hosting aplikasi ASP.NET Core di semua platform itu. Kestrel ini ringan, cepet, dan efisien. Cocok banget buat pengembangan atau bahkan langsung di produksi.

Nama Proses di Kestrel Web Server
Di ASP.NET Core, kode aplikasi lo bakal jalan di worker process Kestrel. Nama prosesnya tergantung gimana lo deploy aplikasinya:

  1. Self-Contained Deployment

    • Kalau lo publish aplikasi model ini, runtime .NET-nya sekalian disertakan. Jadi nggak perlu runtime .NET diinstal di host.
    • File eksekusinya spesifik banget ke aplikasinya (misal: FirstCoreWebApplication.exe di Windows).
    • Nama prosesnya sama kayak nama file eksekusinya, tanpa ekstensi (contoh: FirstCoreWebApplication).
    • Kelebihannya, aplikasi ini bisa jalan di mana aja. Tapi ukurannya lebih gede karena nge-bundling runtime .NET.
  2. Framework-Dependent Deployment

    • Kalau yang ini, aplikasi lo cuma bisa jalan di host yang udah ada runtime .NET-nya.
    • Prosesnya dijalanin pake dotnet.exe (Windows) atau dotnet (Linux/macOS).
    • Kelebihannya, paket aplikasinya lebih kecil. Tapi host-nya kudu udah punya runtime .NET.

Cara Menjalankan Aplikasi Pake Kestrel Web Server
Sebelum pake Kestrel, lo buka dulu file launchSettings.json di folder Properties. File ini ngatur gimana aplikasi lo bakal jalan, termasuk URL dan port-nya. Contohnya gini:

{
  "profiles": {
    "http": {
      "commandName": "Project",
      "applicationUrl": "http://localhost:5051"
    },
    "https": {
      "commandName": "Project",
      "applicationUrl": "https://localhost:7084"
    }
  }
}

Profil Buat Jalanin Aplikasi dengan Kestrel

  1. IIS Express

    • Ini versi ringan IIS buat pengembangan.
    • Aplikasi jalan di proses iisexpress.exe.
    • Cocok buat lo yang mau tes aplikasi di lingkungan kayak IIS produksi.
  2. HTTP/HTTPS

    • Profil ini langsung jalanin aplikasi pake Kestrel Web Server.
    • Aplikasi bakal dijalanin di proses Kestrel.
    • Cocok buat pengembangan lintas platform atau kalau lo nggak pake IIS.
  3. WSL (Windows Subsystem for Linux)

    • Kalau lo pake WSL, aplikasi lo bakal jalan di lingkungan Linux.
    • Ini cocok banget buat lo yang mau deploy aplikasi ke server Linux.

Contoh: Tampil Nama Proses di Browser
Biar lo bisa liat nama proses yang jalanin kode aplikasi, tambahin kode ini di kelas Program:

namespace FirstCoreWebApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);
            var app = builder.Build();
            app.MapGet("/", () => "Worker Process Name : " + System.Diagnostics.Process.GetCurrentProcess().ProcessName);
            app.Run();
        }
    }
}

Jalanin Aplikasi Pake Kestrel

  1. Pilih profil HTTP atau HTTPS. Nanti pas aplikasi lo dijalanin, bakal ada terminal yang kebuka, nunjukin URL dan port-nya (sesuai sama yang di launchSettings.json).
  2. Buka browser, akses aplikasi lo, terus buka developer tools (pencet F12). Di situ lo bakal liat server yang dipake adalah Kestrel.

Catatan

  • Kestrel itu udah ada secara default di ASP.NET Core, jadi lo nggak perlu instal lagi.
  • Kalau Kestrel dipake tanpa reverse proxy (kayak IIS atau Nginx), istilah InProcess sama OutOfProcess nggak berlaku.


Komentar

Postingan populer dari blog ini

Membuat Aplikasi Web ASP.NET Core di Visual Studio 2022

Artikel ini membahas langkah-langkah membuat aplikasi ASP.NET Core menggunakan Visual Studio 2022 dan framework .NET 8. 1. Membuka Visual Studio 2022 Buka Visual Studio 2022 dan klik "Create a new project" di layar awal. 2. Memilih Template Proyek Di jendela "Create a new project" , pilih template ASP.NET Core Empty . Template ini memberikan struktur dasar tanpa konfigurasi awal seperti controller, view, atau API. Setelah itu, klik Next . 3. Konfigurasi Proyek Baru Isi informasi proyek seperti berikut: Project Name : Masukkan nama proyek, misalnya FirstCoreWebApplication . Location : Tentukan lokasi folder untuk menyimpan proyek, misalnya D:\Projects . Solution Name : Biasanya sama dengan nama proyek, tetapi bisa diubah jika diperlukan. Centang "Place solution and project in the same directory" jika solusi dan proyek ingin disimpan dalam satu folder. Klik Create untuk melanjutkan. 4. Pengaturan Tambahan Pada jendela "Additional Information...

Remix IDE: Solusi Praktis untuk Menulis dan Deploy Kontrak Pintar

Remix IDE  adalah lingkungan pengembangan terintegrasi berbasis web yang dirancang untuk menulis, mengompilasi, dan menyebarkan smart contract menggunakan bahasa pemrograman  Solidity  di blockchain Ethereum. Alat ini banyak digunakan oleh pengembang blockchain karena kemudahannya dalam menyediakan fitur lengkap untuk pengembangan, pengujian, dan debugging kontrak pintar. Fitur Utama Remix IDE Berbasis Web dan Gratis Tidak perlu diunduh atau diinstal. Anda dapat mengakses Remix langsung melalui browser di  remix.ethereum.org . Karena berbasis web, Remix dapat digunakan di berbagai perangkat selama ada akses internet. Editor Kode Mendukung penulisan kode Solidity dengan penyorotan sintaks, autocompletion, dan validasi kesalahan. Fitur penyorotan kesalahan (error highlighting) memudahkan pengembang untuk menemukan bug pada kode. Compiler Solidity Remix menyediakan compiler bawaan untuk mengonversi kode Solidity menjadi bytecode yang dapat dijalankan di Ethereum Virtual...

Perlu dicatat Built-in Global Variable pada Solidity

Solidity, sebagai bahasa pemrograman untuk membuat smart contract di Ethereum dan blockchain lainnya, menyediakan beberapa variabel global bawaan . Variabel ini memungkinkan akses mudah ke informasi tentang blockchain, transaksi, dan konteks eksekusi. Dengan menggunakan variabel ini, pengembang dapat berinteraksi dengan lingkungan blockchain tanpa perlu menulis banyak kode tambahan. Berikut penjelasan kategori dan variabel global yang umum digunakan: 1. Informasi Blockchain Variabel-variabel ini menyediakan informasi terkait blockchain, seperti blok saat ini dan propertinya. block.number Mengembalikan nomor blok saat ini. Contoh: uint nomorBlokSaatIni = block.number; block.timestamp Waktu pembuatan blok saat ini dalam format detik sejak Unix epoch. Biasanya digunakan untuk mendapatkan waktu saat ini. Contoh: require(block.timestamp >= waktuMulai, "Terlalu awal untuk eksekusi!"); block.difficulty Tingkat kesulitan penambangan pada blok saat ini. Contoh: uin...