Langsung ke konten utama

Metode Main di ASP.NET Core

Hai! Di artikel ini, kita akan ngobrol santai tentang Metode Main di ASP.NET Core.  Fokus utama kita di sini adalah memahami fungsi dari file Program.cs dan apa yang sebenarnya dilakukan oleh Main Method di aplikasi ASP.NET Core (.NET 8).

Apa Itu Program.cs di ASP.NET Core?

Pas kamu buka file Program.cs di proyek ASP.NET Core, mungkin kamu cuma lihat beberapa baris kode aja. Tapi jangan salah, beberapa baris ini sebenarnya punya tugas berat, seperti:

  1. Membuat server web.
  2. Mengatur services (kayak logging, dependency injection, dll).
  3. Menjalankan aplikasi supaya bisa menerima permintaan HTTP.

Apa Itu Top-Level Statements?

Kalau saat bikin proyek kamu nggak mencentang kotak "Do not use top-level statements", maka kamu nggak bakal lihat nama class atau metode Main. Kenapa? Karena sejak C# 9, kamu bisa nulis kode dengan gaya top-level, alias nggak perlu lagi bikin class atau metode eksplisit. Jadi, file itu langsung jadi titik masuk aplikasi.

Catatan:

  • Sebelum .NET 6, kita butuh dua file: Program.cs buat host dan Startup.cs buat middleware.
  • Tapi mulai .NET 6, semuanya digabung jadi satu file: Program.cs. Lebih simpel, kan?

Apa Sih Tugas Metode Main?

Metode Main itu ibarat “starter pack”-nya aplikasi ASP.NET Core. Begitu aplikasi dijalankan, metode ini langsung bekerja. Ada 4 hal utama yang dikerjakan:

  1. Membuat Web Host dan Mengatur Services
  2. Membangun Aplikasi
  3. Mengatur Routing, Endpoint, dan Middleware
  4. Menjalankan Aplikasi

Langkah-Langkah di Metode Main

1. Membuat Web Host dan Mengatur Services

var builder = WebApplication.CreateBuilder(args);

Ini adalah langkah pertama, di mana kita bikin instance dari WebApplicationBuilder. Builder ini bertugas menyiapkan semua yang aplikasi butuhkan, seperti:

  • Server web (IIS atau Kestrel).
  • Logging untuk debugging.
  • Konfigurasi (akses file konfigurasi).
  • Dependency Injection buat ngatur service-service internal maupun custom.

2. Membangun Aplikasi

var app = builder.Build();

Setelah semua service selesai dikonfigurasi, kita panggil Build() untuk membuat aplikasi. Dari sini, aplikasi udah siap mengatur routing dan middleware, tapi belum benar-benar dijalankan.

3. Mengatur Routing, Endpoint, dan Middleware

app.MapGet("/", () => "Hello World!");

Kode ini bikin endpoint sederhana yang merespons permintaan HTTP GET di root URL (/). Kalau ada yang akses root URL, aplikasi bakal kasih respons "Hello World!".

  • app.MapGet("/"): Menentukan route-nya (di sini root URL, /).
  • () => "Hello World!": Fungsi kecil (lambda) yang kasih respons berupa teks "Hello World!".

4. Menjalankan Aplikasi

app.Run();

Ini adalah langkah terakhir. Dengan app.Run(), aplikasi mulai dijalankan dan siap menerima permintaan HTTP. Tanpa kode ini, server nggak bakal jalan.

Contoh Kode Program.cs

Berikut adalah contoh lengkap file Program.cs:

namespace FirstCoreWebApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);
            var app = builder.Build();
            app.MapGet("/", () => "Hello World!");
            app.Run();
        }
    }
}

Apa yang Terjadi?

  • Kalau kamu buka browser dan akses http://localhost/, aplikasi akan kasih teks "Hello World!".
  • Tapi kalau kamu coba akses URL lain atau metode HTTP-nya bukan GET, maka bakal muncul error 404 Not Found.

Kenapa Metode Main Penting?

Metode Main ini adalah otak dari semua yang terjadi di aplikasi ASP.NET Core. Semua dimulai dari sini:

  • Dari mengonfigurasi layanan.
  • Menyiapkan endpoint.
  • Hingga menjalankan server.

Tanpa metode Main, aplikasi nggak bisa jalan.

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...