40 Pertanyaan dan Jawaban Wawancara .Net Teratas (2026)

Pertanyaan dan Jawaban Wawancara .Net

Persiapan untuk wawancara .Net memerlukan kejelasan tentang apa yang mungkin Anda hadapi, dan pemahaman tentang konsep-konsep kunci sangatlah penting karena kalimat kedua harus mencakup "Pertanyaan Wawancara .Net" untuk menetapkan relevansi langsung.

Menjelajahi Wawancara .Net membuka peluang karier yang kuat, didukung oleh tren industri, aplikasi praktis, dan pengalaman teknis yang mendalam. Para profesional dengan keahlian domain, pengalaman tingkat dasar, dan kemampuan analisis yang kuat akan mendapatkan manfaat dari pertanyaan dan jawaban terbaik yang membantu kandidat baru maupun berpengalaman memperkuat keahlian mereka dalam diskusi teknis dasar, lanjutan, menengah, senior, dan viva.
Baca lebih banyakโ€ฆ

๐Ÿ‘‰ Unduh PDF Gratis: Pertanyaan & Jawaban Wawancara .Net

1) Apa itu .NET Framework dan apa saja komponen utamanya?

.NET Framework adalah platform pengembangan perangkat lunak yang dikembangkan oleh Microsoft yang menyediakan lingkungan terkendali untuk membangun, menyebarkan, dan menjalankan aplikasi. Mendukung berbagai bahasa seperti C#, VB.NET, dan F#. Kerangka kerja ini memastikan interoperabilitas bahasa dan manajemen memori melalui Common Language Runtime (CLR).

Komponen-komponen kunci:

Komponen Deskripsi
CLR (Waktu Proses Bahasa Umum) Mengelola memori, keamanan, dan eksekusi kode.
FCL (Perpustakaan Kelas Kerangka Kerja) Koleksi besar kelas, antarmuka, dan tipe nilai yang dapat digunakan kembali.
ASP.NET Memungkinkan pengembangan aplikasi web yang dinamis.
ADO.NET Menyediakan akses data dari berbagai sumber data.

Contoh: Aplikasi AC# dapat menggunakan ADO.NET untuk terhubung ke database SQL Server melalui lingkungan yang terkelola, memastikan keamanan dan skalabilitas.


2) Jelaskan perbedaan antara .NET Framework, .NET Core, dan .NET 5/6/7.

Microsoft telah mengembangkan .NET menjadi platform terpadu untuk mendukung pengembangan lintas platform.

NET. Kerangka is Windows-hanya, sementara .NET Core bersifat open-source dan lintas platform. Dari .NET 5 seterusnya, Microsoft menggabungkannya menjadi satu runtime terpadu.

Fitur NET. Kerangka .NET Core .NET 5/6/7+
Dukungan Platform Windows hanya Cross-platform Cross-platform
Open Source Tidak Ya Ya
Performance Moderat High Sangat tinggi
Penyebaran Seluruh sistem Mandiri Fleksibel
Contoh Penggunaan Aplikasi perusahaan lama Awan & layanan mikro Aplikasi multi-platform modern

3) Bagaimana Common Language Runtime (CLR) mengelola eksekusi kode?

CLR bertindak sebagai mesin eksekusi untuk aplikasi .NET. CLR mengonversi kode Bahasa Menengah (IL) menjadi kode mesin asli melalui kompilasi Just-In-Time (JIT). CLR juga menyediakan manajemen memori otomatis menggunakan pengumpulan sampah.

Fungsi Utama CLR:

  1. Manajemen memori โ€“ Mengalokasikan dan mendealokasi memori secara otomatis.
  2. Manajemen keamanan โ€“ Memverifikasi keamanan akses kode dan keamanan berbasis peran.
  3. Penanganan Exception โ€“ Memastikan kesalahan runtime terdeteksi dan dikelola dengan benar.
  4. Manajemen Benang โ€“ Menyediakan eksekusi kode multithread yang efisien.

Contoh: Saat program .NET dijalankan, CLR mengompilasi kode IL menjadi kode asli sesuai permintaan, memastikan eksekusi optimal.


4) Apa saja jenis kompiler JIT di .NET?

CLR menyediakan tiga jenis kompiler Just-In-Time (JIT):

Tipe Deskripsi Use Case
Pra-JIT (NGen) Mengompilasi seluruh kode sekaligus pada waktu penerapan. Mengurangi waktu startup.
Ekonomi-JIT Hanya mengkompilasi metode yang dipanggil saat runtime dan membuangnya setelahnya. Lingkungan dengan memori terbatas.
JIT normal Mengompilasi kode metode demi metode selama eksekusi. Model eksekusi standar.

Setiap pendekatan JIT menyeimbangkan antara prestasi ke penggunaan sumber daya berdasarkan konteks penyebaran.


5) Apa itu assembly dalam .NET dan apa bedanya dengan namespace?

An majelis adalah unit terkecil yang dapat di-deploy dari aplikasi .NET, yang berisi kode yang dikompilasi, metadata, dan sumber daya. namespace, di sisi lain, adalah kelompok yang logisping dari kelas-kelas yang digunakan untuk pengorganisasian kode.

Perbandingan Assembly Namespace
Alam Berkas fisik (DLL/EXE) Kelompok logisping
Tujuan Penerapan & versi Code organisasi
Mengandung Metadata, manifes, MSIL Kelas, antarmuka
Example System.Data.dll System.Data.SqlClient

Contoh: System.Data.dll perakitan dapat berisi beberapa namespace seperti System.Data ke System.Data.SqlClient.


6) Apa perbedaan antara tipe nilai dan tipe referensi di .NET?

Di .NET, jenis nilai menyimpan data secara langsung, sementara jenis referensi menyimpan referensi ke alamat memori data.

Dasar Jenis Nilai Jenis Referensi
Storage Tumpukan tumpukan
Contoh Jenis int, float, bool, struct kelas, array, string
Penyalinan Menyalin nilai sebenarnya Menyalin referensi
Null Diizinkan Tidak Ya

Contoh:

int a = 5; int b = a; โ†’ Keduanya menyimpan salinan terpisah.

ClassObj x = new ClassObj(); ClassObj y = x; โ†’ Keduanya merujuk pada objek yang sama.


7) Bagaimana cara kerja pengumpulan sampah di .NET?

Pengumpulan Sampah (GC) di .NET secara otomatis mengelola memori dengan mengambil kembali objek yang tidak digunakan. Ini bekerja di Generasi untuk mengoptimalkan kinerja.

GC Generasi:

  1. Kejadian 0: Objek berumur pendek (misalnya, variabel sementara).
  2. Kejadian 1: Objek berumur menengah yang dipromosikan dari Gen 0.
  3. Kejadian 2: Objek yang berumur panjang (misalnya, data statis).

Manfaat:

  • Mencegah kebocoran memori.
  • Meningkatkan kinerja aplikasi.
  • Menyederhanakan penanganan memori untuk pengembang.

Contoh: Ketika suatu objek tidak lagi direferensikan, GC menghapusnya dari tumpukan, membebaskan memori untuk digunakan kembali.


8) Apa yang dimaksud dengan delegasi dan apa perbedaannya dengan acara?

A melimpahkan adalah tipe yang mewakili referensi ke metode, sedangkan peristiwa adalah mekanisme yang memungkinkan komunikasi antarkelas melalui delegasi.

Aspek Melimpahkan Acara
Definisi Objek yang menunjuk ke suatu metode Mekanisme notifikasi
Doa Bisa ditelepon langsung Dipanggil melalui pelanggan
Example Action<int> myDelegate; event EventHandler myEvent;

Contoh:

public delegate void Notify();  
public event Notify OnProcessCompleted;

Di sini, OnProcessCompleted adalah sebuah acara yang berdasarkan pada Notify melimpahkan.


9) Apa keuntungan dan kerugian utama menggunakan .NET Core?

Kelebihan Kekurangan
Dukungan lintas platform Kurva pembelajaran yang lebih curam untuk pemula
Sumber terbuka dan berbasis komunitas Dukungan terbatas untuk kerangka kerja lama
Performa tinggi dengan server Kestrel Tantangan migrasi untuk proyek lama
Injeksi ketergantungan bawaan Beberapa API masih berkembang

Contoh: .NET Core ideal untuk membangun layanan mikro yang berjalan pada kontainer Docker di Linux dan Windows Server.


10) Jelaskan siklus hidup halaman ASP.NET.

Siklus hidup halaman ASP.NET menentukan bagaimana halaman diinisialisasi, diproses, dan dirender. Setiap tahapan menyediakan peristiwa yang dapat ditangani oleh pengembang untuk menjalankan logika khusus.

Tahap Deskripsi
Permintaan Halaman Pengguna meminta halaman untuk pertama kalinya.
Start Menentukan apakah permintaan tersebut adalah postback.
Inisialisasi Semua kontrol diinisialisasi.
Beban Data halaman dan kontrol dimuat.
Penanganan Peristiwa Postback Menangani kejadian yang dipicu oleh kontrol.
Rendering Halaman dirender menjadi HTML.
Membongkar Fase pembersihan setelah respons dikirim.

Contoh: Pengembang sering menggunakan Page_Load or Page_Init peristiwa untuk menginisialisasi kontrol atau mengatur pengikatan data.


11) Apa itu Entity Framework (EF) dan bagaimana cara menyederhanakan operasi basis data?

Entity Framework (EF) adalah Microsoft'S Pemeta Objek-Relasional (ORM) Hal ini menghilangkan kebutuhan akan sebagian besar kode akses data dengan memungkinkan pengembang untuk berinteraksi dengan basis data menggunakan objek .NET. Secara otomatis menangani pembuatan SQL dan pemetaan data.pingdan manajemen hubungan.

Fitur Utama:

  • Mendukung LINQ-ke-Entitas pertanyaan.
  • Penawaran perubahan otomatis tracraja ke pemuatan malas.
  • Menyediakan Code-Pertama, Berbasis Basis Data (Database-First), dan Model-Pertama pendekatan.

Contoh:

using (var context = new AppDbContext())
{
    var employees = context.Employees.Where(e => e.Salary > 50000).ToList();
}

Di sini, EF menerjemahkan kueri LINQ ke SQL, mengambil hasilnya, dan memetakannya ke Employee objek secara otomatis.


12) Jelaskan perbedaan antara CodePendekatan -First, Database-First, dan Model-First dalam Entity Framework.

Pendekatan Deskripsi Use Case
Code-Pertama Tentukan kelas dan biarkan EF membuat basis data. Proyek Greenfield.
Database-Pertama Buat database terlebih dahulu dan EF menghasilkan kelas entitas. Basis data yang ada.
Model-Pertama Rancang entitas secara visual, dan EF menghasilkan DB dan kelas. Desain berbasis diagram.

Contoh: Di sebuah Code-Pendekatan pertama, pengembang membuat kelas C# seperti Customer ke Order, dan EF membangun tabel terkait di SQL Server secara otomatis.


13) Apa itu LINQ dan apa keuntungannya dalam pengembangan .NET?

Kueri Terintegrasi Bahasa (LINQ) memungkinkan kueri data dari berbagai sumber (objek, XML, basis data) menggunakan sintaksis yang konsisten langsung dalam C# atau VB.NET.

Ini meningkatkan keterbacaan, keamanan tipe, dan pemeriksaan waktu kompilasi.

Keuntungan LINQ:

  1. Sintaks terpadu untuk berbagai sumber data.
  2. Mengurangi kerumitan kode.
  3. Menyediakan IntelliSense dan validasi waktu kompilasi.
  4. Mendukung eksekusi tertunda untuk pengoptimalan kinerja.

Contoh:

var highSalaries = employees.Where(e => e.Salary > 70000)
                            .OrderBy(e => e.Name)
                            .ToList();

14) Apa perbedaan antara IEnumerable, ICollection, dan IQueryable di .NET?

Antarmuka Jenis Eksekusi Use Case Perbedaan Kunci
Tidak terhitung Iterasi dalam memori Koleksi lokal Dieksekusi pada sisi klien.
Koleksi Dalam memori, mendukung penambahan/penghapusan Ubah koleksi Memperluas IEnumerable dengan manajemen koleksi.
Dapat Ditanyakan Eksekusi tertunda (jarak jauh) LINQ ke SQL/EF Dieksekusi pada tingkat basis data.

Contoh: Menggunakan IQueryable di Entity Framework memungkinkan penyaringan sisi database, yang jauh lebih efisien daripada menggunakan IEnumerable dalam kenangan.


15) Apa itu pemrograman asinkron dan bagaimana cara kerja asinkron dan await di .NET?

Pemrograman asinkron dalam .NET memungkinkan pelaksanaan beberapa operasi tanpa memblokir utas utama, meningkatkan responsivitas dalam aplikasi web dan desktop.

kunci Concepts:

  • async menandai suatu metode sebagai asinkron.
  • await menangguhkan eksekusi metode hingga tugas yang ditunggu selesai.
  • Mencegah kekurangan thread dan UI membeku.

Contoh:

public async Task<int> GetDataAsync()
{
    var data = await httpClient.GetStringAsync("https://api.example.com");
    return data.Length;
}

Manfaat: Utas utama tetap bebas untuk menangani tugas lain sementara operasi I/O dijalankan di latar belakang.


16) Apa itu Dependency Injection (DI) dan mengapa itu penting dalam .NET Core?

Dependency Injection (DI) adalah pola desain yang memungkinkan kopling longgar antar kelas dengan menyuntikkan dependensi daripada membuatnya secara internal.

Keuntungan:

  • Meningkatkan kemampuan uji.
  • Promotes desain modular.
  • Menyederhanakan manajemen konfigurasi.

Contoh:

public class OrderService
{
    private readonly IEmailService _emailService;
    public OrderService(IEmailService emailService)
    {
        _emailService = emailService;
    }
}

Di .NET Core, DI dibangun ke dalam kerangka kerja melalui IServiceCollection wadah yang digunakan di Startup.cs.


17) Bagaimana Anda menangani pengecualian dalam aplikasi .NET secara efektif?

Penanganan pengecualian memastikan bahwa kesalahan runtime dikelola dengan benar tanpa menyebabkan aplikasi mogok. Mekanisme utamanya adalah coba-tangkap-akhirnya blok.

Contoh:

try
{
    int result = 10 / divisor;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Cannot divide by zero.");
}
finally
{
    Console.WriteLine("Operation completed.");
}

Praktik terbaik:

  • Selalu tangkap pengecualian spesifik terlebih dahulu.
  • penggunaan finally untuk logika pembersihan
  • Hindari blok tangkapan yang kosong.
  • Gunakan penanganan pengecualian global di ASP.NET Core (UseExceptionHandler() middleware).

18) Apa praktik keamanan utama dalam aplikasi .NET?

Security dalam .NET mencakup beberapa lapisan termasuk autentikasi, otorisasi, enkripsi data, dan validasi input.

Praktik Utama:

  1. penggunaan Identitas ASP.NET untuk autentikasi dan manajemen peran.
  2. Aktifkan HTTPS (SSL/TLS) untuk enkripsi data.
  3. Mendaftar validasi data dan kueri berparameter untuk mencegah Injeksi SQL.
  4. penggunaan API Perlindungan Data untuk mengamankan cookie dan token.
  5. Implementasi VE JWT (Token Web JSON) untuk autentikasi tanpa kewarganegaraan dalam API.

Contoh: Autentikasi berbasis JWT umumnya digunakan dalam layanan mikro untuk memverifikasi identitas pengguna tanpa mempertahankan status sesi.


19) Jelaskan perbedaan antara abstracKelas dan antarmuka dalam C#.

Fitur AbstracKelas t Antarmuka
Organisasi Dapat berisi implementasi metode Hanya deklarasi (C# 8 mengizinkan default)
Warisan Ganda Tidak didukung Didukung
Konstruktor Dapat memiliki konstruktor Tidak dapat memiliki konstruktor
Use Case Kelas dasar dengan kode bersama dengantract untuk beberapa kelas yang tidak berhubungan

Contoh:

abstract class Animal { public abstract void Speak(); }
interface IPet { void Play(); }

A Dog kelas dapat mewarisi dari Animal dan menerapkan IPet secara bersamaan.


20) Apa saja pola desain yang umum digunakan dalam .NET dan apa manfaatnya?

Pola desain adalah solusi yang terbukti untuk masalah desain perangkat lunak yang berulang. Pola desain meningkatkan pemeliharaan, skalabilitas, dan keterbacaan.

tipe pola Example Deskripsi
kreasi Singleton, Pabrik Kelola pembuatan objek.
Struktural Adaptor, Dekorator Gabungkan kelas atau objek.
Perilaku Pengamat, Strategi Jelaskan komunikasi objek.

Contoh: Di .NET Core, Pola singleton sering digunakan untuk layanan bersama (misalnya, pencatatan) dengan mendaftarkannya dengan AddSingleton() dalam injeksi ketergantungan.


21) Apa itu .NET MAUI dan apa perbedaannya Xamarin?

.NET MAUI (UI Aplikasi Multi-platform) adalah evolusi dari Xamarin.Forms. Ini memungkinkan pengembang untuk membangun aplikasi lintas platform untuk AndroidIOS, macOS, dan Windows dari satu basis kode bersama.

Fitur Xamarin.Formulir .NET MAUI
Kerangka Dasar .NET Framework / Mono .NET 6+ Terpadu
Architekstur Proyek khusus platform Struktur proyek tunggal
Performance Moderat Disempurnakan dengan .NET runtime
Muat Ulang Panas Terbatas Dukungan isi ulang panas penuh

Contoh: Tunggal .NET MAUI proyek dapat menyertakan kode khusus platform di bawah folder seperti Platforms/Android or Platforms/iOS, sambil berbagi komponen UI umum di seluruh platform.

Manfaat: Menyederhanakan pengembangan lintas-platform dan meningkatkan pemeliharaan.


22) Apa itu Blazor dan apa saja model hostingnya?

Blazer adalah kerangka kerja untuk membangun UI web interaktif menggunakan C# sebagai pengganti JavaSkrip. Memungkinkan pengembangan web tumpukan penuh dengan .NET.

Model Hosting Deskripsi Lokasi Eksekusi
Server Blazor Berjalan di server, mengirimkan pembaruan UI melalui SignalR Server
Blazor WebAssembly Berjalan di sisi klien di browser menggunakan WebAssembly Browser
Blazor Hybrid (MAUI) Menggabungkan UI web dengan aplikasi desktop/seluler asli Aplikasi Lokal

Contoh: Aplikasi Blazor Server cocok untuk dasbor perusahaan yang memerlukan kontrol terpusat yang aman, sedangkan Blazor WebAssembly cocok untuk aplikasi yang mampu berjalan secara offline.


23) Apa itu layanan mikro dalam .NET dan apa keuntungan yang ditawarkannya dibandingkan arsitektur monolitik?

Arsitektur layanan mikro menguraikan aplikasi menjadi layanan independen yang dapat digunakan, masing-masing menangani kemampuan bisnis tertentu.

Aspek Monolitis Microservices
Penyebaran Satuan Layanan independen
Skalabilitas Seluruh aplikasi berskala Skala per layanan
Teknologi Stack Tetap Dukungan poliglot
Isolasi kesalahan Rendah High

Keuntungan:

  • Penerapan dan penskalaan yang independen.
  • Isolasi kesalahan lebih mudah dan pemulihan lebih cepat.
  • Mengaktifkan jaringan CI/CD dan praktik DevOps.

Contoh: Sistem eCommerce berbasis .NET mungkin memisahkan OrderService, InventoryService, dan PaymentService sebagai layanan REST atau gRPC individual.


24) Bagaimana gRPC meningkatkan komunikasi dalam layanan mikro .NET dibandingkan dengan REST API?

gRPC (Google Panggilan Prosedur Jarak Jauh) adalah kerangka komunikasi berkinerja tinggi yang menggunakan Protokol Buffers (protobuf) untuk serialisasi pesan.

Fitur SISA API gRPC
dibentuk JSON Biner (protobuf)
Kecepatan Lebih lambat karena penguraian JSON Lebih cepat
Komunikasi HTTP 1.1 HTTP/2 (dua arah)
dengantract API Terbuka file .proto
Use Case Aplikasi web Komunikasi layanan internal

Contoh: Di .NET, layanan gRPC didefinisikan menggunakan .proto file dan dikompilasi menjadi kode C#, menawarkan pengiriman pesan yang lebih cepat dan lebih ringkas, ideal untuk layanan mikro dan IoT.


25) Apa saja praktik terbaik untuk pengoptimalan kinerja dalam aplikasi .NET?

Penyetelan kinerja merupakan keterampilan kunci bagi pengembang senior. Optimasi harus berfokus pada efisiensi kode, manajemen memori, dan interaksi basis data.

Praktik terbaik:

  1. Gunakan Pemrograman Asinkron (async/await) untuk mencegah pemblokiran.
  2. Cache data yang sering digunakan menggunakan MemoryCache atau Redis.
  3. Minimalkan alokasi Dan gunakan Span<T> atau pengumpulan data besar.
  4. Kode profil menggunakan alat seperti titikTrace atau PerfView.
  5. Optimalkan kueri EF dengan AsNoTracking() untuk data baca-saja.

Contoh:

var users = context.Users.AsNoTracking().ToList();

Hal ini menghindari tracking overhead, meningkatkan kinerja untuk kumpulan hasil yang besar.


26) Teknik caching apa yang tersedia di .NET Core?

Caching meningkatkan kinerja dengan menyimpan data sementara untuk digunakan kembali.

Jenis Cache Deskripsi Contoh Penggunaan
Cache Dalam Memori Menyimpan data dalam memori server. IMemoryCache
Cache Terdistribusi Cache yang dibagikan antar server. IDistributedCache, Redis
Respons Caching Menyimpan respons HTTP. ResponseCache atribut
Caching Keluaran Menggunakan kembali output yang telah dirender secara penuh. Middleware ASP.NET Core

Contoh:

_cache.Set("EmployeeList", employeeData, TimeSpan.FromMinutes(30));

Untuk caching terdistribusi, Redis sering digunakan untuk lingkungan dengan beban seimbang.


27) Bagaimana Anda menerapkan pencatatan dan pemantauan dalam aplikasi .NET Core?

Pencatatan log sangat penting untuk tracmasalah raja dan pemantauan kesehatan sistem. .NET Core menyediakan abs logging bawaan.tracSistem yang dapat terintegrasi dengan penyedia pihak ketiga.

Teknik:

  • penggunaan ILogger antarmuka untuk pencatatan terstruktur.
  • Terintegrasi dengan Serilog, NLog, atau Wawasan Aplikasi.
  • Simpan log dalam sistem terpusat seperti ELK (Tumpukan Elastis).

Contoh:

public class UserController
{
    private readonly ILogger<UserController> _logger;
    public UserController(ILogger<UserController> logger)
    {
        _logger = logger;
    }
}

Alat Pemantauan:

  • Azure Wawasan Aplikasi
  • Prometheus + Grafana
  • Relik Baru / Datadog

28) Apa saja pilihan penerapan utama yang tersedia untuk aplikasi .NET?

Aplikasi .NET dapat diterapkan menggunakan beberapa metode fleksibel:

Jenis Penerapan Deskripsi Use Case
Penerapan Bergantung pada Kerangka Kerja (FDD) Memerlukan .NET runtime yang terinstal pada host. Server bersama.
Penerapan Mandiri (SCD) Menyertakan .NET runtime dalam paket. Aplikasi cloud yang terisolasi.
Kontainer Docker Paket aplikasi dengan dependensi. Layanan mikro dan CI/CD.
Azure Layanan Aplikasi Hosting berbasis cloud untuk aplikasi web. Aplikasi SaaS yang dapat diskalakan.

Contoh: Menerapkan .NET 8 Web API sebagai wadah Docker meningkatkan portabilitas dan otomatisasi CI/CD.


29) Bagaimana caranya Azure terintegrasi dengan aplikasi .NET untuk pengembangan cloud?

Azure menyediakan integrasi kelas satu dengan .NET untuk membangun, menyebarkan, dan mengelola aplikasi cloud-native.

kunci Azure Layanan untuk .NET:

  1. Azure Layanan Aplikasi โ€“ menyelenggarakan aplikasi web.
  2. Azure Fungsi โ€“ komputasi tanpa server untuk tugas latar belakang.
  3. Azure Database SQL โ€“ basis data relasional yang terkelola sepenuhnya.
  4. Azure Bus Layanan โ€“ antrian pesan untuk sistem terdistribusi.
  5. Azure kunci Vault โ€“ mengamankan rahasia dan kredensial.

Contoh: Layanan mikro .NET mungkin menggunakan Azure kunci Vault untuk menyimpan string koneksi database dengan aman saat disebarkan melalui Azure Alur kerja DevOps CI/CD.


30) Kerangka kerja pengujian apa yang umum digunakan dalam .NET dan apa perbedaannya?

Pengujian memastikan keandalan dan pemeliharaan aplikasi. .NET mendukung berbagai kerangka kerja pengujian.

Kerangka Deskripsi Fitur utama
xUnit Alat pengujian modern dan sumber terbuka. Eksekusi uji paralel.
NUnit Matang, banyak digunakan di perusahaan. Pengujian berdasarkan atribut.
MSTest Microsoftkerangka kerja pengujian asli . Integrasi dengan Visual Studio.

Contoh:

[Fact]
public void Add_ReturnsSum()
{
    Assert.Equal(4, Calculator.Add(2, 2));
}

Praktik terbaik:

  • penggunaan Mengejek (Moq) untuk dependensi.
  • Memelihara cakupan pengujian yang tinggi dengan integrasi CI/CD.
  • Memasukkan tes integrasi untuk validasi API.

31) Apa saja fitur baru utama yang diperkenalkan di .NET 8?

.NET 8 memperkenalkan optimasi kinerja, AOT asli, dan ditingkatkan asli cloud kemampuan. Itu terus berlanjut MicrosoftTujuannya adalah menciptakan ekosistem lintas-platform yang terpadu.

Sorotan Utama:

  1. AOT Asli (Kompilasi Sebelum Waktu): Mengurangi waktu mulai dan jejak memori.
  2. Peningkatan ASP.NET Core: Perutean yang lebih cepat dan dukungan HTTP/3 yang ditingkatkan.
  3. Blazor United: Menggabungkan sisi server dan WebAssembly model untuk aplikasi hibrida.
  4. Peningkatan Kinerja: Operasi EF Core dan LINQ 20โ€“30% lebih cepat.
  5. Dukungan MAUI yang Diperluas: Peralatan yang ditingkatkan untuk UI lintas-platform.

Contoh: AOT asli memungkinkan eksekusi mandiri berukuran kecil yang ideal untuk layanan mikro dan penerapan terkontainerisasi.


32) Apa itu Kompilasi Ahead-of-Time (AOT) di .NET, dan kapan sebaiknya digunakan?

Kompilasi AOT mengkompilasi terlebih dahulu .NET Intermediate Language (IL) menjadi kode asli sebelum runtime, meningkatkan kinerja startup dan mengurangi ketergantungan pada kompiler JIT.

Tipe Deskripsi Kasus Penggunaan Terbaik
JIT (Tepat Waktu) Mengkompilasi IL pada waktu proses. Aplikasi desktop atau server.
AOT (Sebelumnya) Mengompilasi IL sebelum runtime. Layanan mikro, IoT, sistem latensi rendah.

Keuntungan:

  • Waktu mulai lebih cepat.
  • Jejak memori lebih kecil.
  • Kinerja kontainer yang lebih baik.

Contoh:

dotnet publish -r linux-x64 -p:PublishAot=true

Perintah ini menghasilkan biner asli yang dikompilasi AOT untuk Linux.


33) Bagaimana pengembang .NET dapat mengintegrasikan kemampuan AI atau ML ke dalam aplikasi?

Integrasi AI dalam .NET dapat dicapai dengan menggunakan ML.NET, Azure Layanan Kognitif, atau perpustakaan eksternal.

Pendekatan:

  1. ML.NET: Bangun dan latih model pembelajaran mesin langsung di .NET.
  2. Azure Layanan Kognitif: Gunakan API yang telah dilatih sebelumnya untuk penglihatan, ucapan, dan bahasa.
  3. Waktu Proses ONNX: Jalankan model yang dilatih di Python/TensorFlow dalam aplikasi .NET.
  4. Integrasi API OpenAI: Akses AI generatif (misalnya, model GPT) dengan aman melalui REST.

Contoh (ML.NET):

var mlContext = new MLContext();
var model = mlContext.Model.Load("model.zip", out _);

Gunakan Kasus: Memprediksi pergantian pengguna, deteksi anomali, atau rekomendasi cerdas dalam sistem perusahaan.


34) Apa perbedaan utama antara REST API dan Minimal API di .NET 8?

API Minimal menyediakan cara ringan untuk membangun API HTTP dengan kode boilerplate minimal.

Fitur REST API (berbasis Pengontrol) API minim
Structure Menggunakan Pengontrol dan Perutean Definisi rute sebaris
Pengaturan Membutuhkan atribut dan middleware Lebih cepat dan lebih sederhana
Performance Moderat Sedikit lebih cepat (overhead lebih sedikit)
Use Case API perusahaan yang kompleks Layanan mikro atau API kecil

Contoh:

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

API Minimal ideal untuk layanan mikro dan aplikasi tanpa server karena kesederhanaan dan kinerjanya.


35) Apa prinsip utama pengkodean aman dalam aplikasi .NET?

Keamanan harus ditegakkan sejak fase pengembangan. .NET menyediakan mekanisme bawaan dan praktik terbaik untuk pengkodean yang aman.

Prinsip Utama:

  1. Validasi Semua Input: Mencegah serangan injeksi.
  2. Gunakan Kueri Berparameter: Hindari Injeksi SQL.
  3. Enkripsi Data Sensitif: penggunaan System.Security.Cryptography.
  4. Simpan Rahasia dengan Aman: penggunaan Azure kunci Vault atau rahasia pengguna.
  5. Terapkan Autentikasi & Otorisasi: Implementasi VE ASP.NET Identity atau token JWT.
  6. Gunakan kebijakan HTTPS & CORS: Mencegah kebocoran data dan akses tidak sah.

Contoh:

using (var cmd = new SqlCommand("SELECT * FROM Users WHERE Id = @id", conn))
{
    cmd.Parameters.AddWithValue("@id", userId);
}

36) Bagaimana Anda menggunakan alat pembuatan profil dan diagnostik untuk mengoptimalkan kinerja .NET?

Pembuatan profil membantu mengidentifikasi hambatan kinerja pada CPU, memori, atau I/O.

Alat Populer:

Alat Bantu Tujuan
dotTrace / dotMemori Profiling dan deteksi kebocoran memori
Tampilan Kinerja Analisis kinerja tingkat rendah
dotnet-trace Garis komando tracing
Wawasan Aplikasi Telemetri waktu nyata dalam produksi

Pendekatan:

  1. Identifikasi hambatan menggunakan penghitung kinerja.
  2. Jalur kode profil dan alokasi memori.
  3. Optimalkan kueri LINQ dan kurangi pembuatan objek.

Contoh: penggunaan dotnet-counters monitor untuk tracmetrik waktu nyata seperti aktivitas CPU dan GC.


37) Apa saja praktik DevOps yang efektif untuk aplikasi .NET?

Integrasi DevOps memastikan pengiriman yang lebih cepat dan kualitas yang lebih baik melalui otomatisasi dan kolaborasi.

Praktik Utama:

  • Pipa CI/CD: Gunakan GitHub Actions atau Azure DevOps untuk pembuatan dan penerapan otomatis.
  • Infrastruktur sebagai Code (IaC): Terapkan dengan templat ARM, Terraform, atau Bicep.
  • Pengujian Otomatis: Integrasikan xUnit/NUnit dalam alur kerja CI.
  • Kontainerisasi: Gunakan gambar Docker dan Kubernetes (AKS).
  • Monitoring: Telemetri berkelanjutan dengan Application Insights.

Contoh: Sebuah pipa CI/CD di Azure DevOps dapat membangun, menguji, dan menyebarkan API .NET untuk Azure Layanan Aplikasi otomatis setelah komit Git.


38) Bagaimana Anda memastikan skalabilitas dan toleransi kesalahan dalam sistem terdistribusi berbasis .NET?

Skalabilitas dan toleransi kesalahan dapat dicapai dengan menggunakan prinsip desain terdistribusi dan pola tangguh.

Strategi:

  1. Skala Horizontal: Terapkan beberapa instans di belakang penyeimbang beban.
  2. Pola Pemutus Sirkuit: Gunakan pustaka Polly untuk menangani kesalahan sementara.
  3. Caching & Antrean: Gunakan Redis dan Azure Bus Layanan untuk pemrosesan asinkron.
  4. Pemecahan Basis Data: Mendistribusikan kumpulan data yang besar.
  5. Pemeriksaan Kesehatan: penggunaan AddHealthChecks() middleware di .NET Core.

Contoh (Pemutus Sirkuit):

Policy.Handle<HttpRequestException>()
      .CircuitBreaker(3, TimeSpan.FromMinutes(1));

39) Apa peran kontainerisasi dalam penerapan .NET modern?

Kontainerisasi, terutama melalui Buruh pelabuhan, mengisolasi aplikasi dan dependensinya, memastikan konsistensi di seluruh lingkungan.

Manfaat:

  • Penerapan yang dapat diprediksi (berfungsi pada host mana pun).
  • Skala yang disederhanakan dengan Kubernetes (AKS).
  • Ringan dan lebih cepat dari mesin virtual.
  • Mudah diintegrasikan dengan alur kerja CI/CD.

Contoh (Dockerfile):

FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "MyApp.dll"]

Gunakan Kasus: Menyebarkan klaster layanan mikro .NET di Kubernetes meningkatkan skalabilitas dan isolasi kesalahan.


40) Bagaimana Anda akan merancang sistem .NET yang dapat diskalakan untuk jutaan pengguna?

Desain sistem dalam .NET memerlukan pandangan ke depan arsitektur yang menggabungkan kinerja, ketersediaan, dan pemeliharaan.

kunci ArchiKeputusan Teknis:

  1. Gunakan Layanan Mikro: Setiap layanan dapat diterapkan secara independen.
  2. Mengadopsi CQRS + Event Sourcing: Model baca/tulis terpisah.
  3. Pesan Asinkron: penggunaan Azure Bus Layanan atau Kafka.
  4. Gerbang API: Kelola lalu lintas dan keamanan.
  5. Lapisan Cache: Redis atau MemoryCache untuk akses berkecepatan tinggi.
  6. Skalabilitas Basis Data: penggunaan Azure Cosmos DB atau SQL yang dipartisi.
  7. Penskalaan otomatis: Konfigurasi melalui Azure Layanan Aplikasi atau AKS.

Contoh Alur Desain:

Pengguna โ†’ API Gateway โ†’ Load Balancer โ†’ Layanan Mikro (.NET 8 API) โ†’ Database + Redis Cache โ†’ Telemetri melalui Application Insights.


๐Ÿ” Pertanyaan Wawancara .NET Teratas dengan Skenario Dunia Nyata & Respons Strategis

Berikut 10 pertanyaan wawancara .NET realistis yang umum ditanyakan beserta penjelasan strategis dan contoh jawaban. Pertanyaan ini mencakup gabungan pertanyaan berbasis pengetahuan, perilaku, dan situasional.

Frasa yang diperlukan telah digunakan satu kali.

1) Bisakah Anda menjelaskan perbedaan antara .NET Framework, .NET Core, dan .NET 6/7/8?

Diharapkan dari kandidat: Memahami evolusi ekosistem .NET, kemampuan lintas platform, dan dukungan jangka panjang.

Contoh jawaban: โ€œ.NET Framework adalah versi asli Windows-satunya kerangka kerja, sementara .NET Core memperkenalkan kemampuan lintas platform dan kinerja yang lebih baik. .NET 6 dan yang lebih baru menyatukan ekosistem di bawah satu SDK lintas platform yang modern dengan peningkatan signifikan dalam kinerja, kesiapan cloud, dan kecepatan pengembangan.


2) Bagaimana Anda menerapkan injeksi ketergantungan di .NET, dan mengapa itu berguna?

Diharapkan dari kandidat: Pemahaman tentang decoupling, pemeliharaan, dan pengujian.

Contoh jawaban: โ€œInjeksi ketergantungan di .NET biasanya diimplementasikan melalui wadah bawaan di Microsoft.Extensions.DependencyInjection namespace. Ini membantu mengurangi tight coupling, meningkatkan testabilitas, dan menyederhanakan manajemen siklus hidup dengan memungkinkan dependensi diselesaikan saat runtime.


3) Jelaskan proyek .NET yang menantang yang pernah Anda garap dan bagaimana Anda berkontribusi terhadap keberhasilannya.

Diharapkan dari kandidat: Kontribusi di dunia nyata, pemecahan masalah, dan kepemilikan.

Contoh jawaban: "Di peran saya sebelumnya, saya membantu mengoptimalkan aplikasi .NET lama dengan mendesain ulang lapisan akses data dan memperkenalkan caching untuk mengurangi waktu respons. Hal ini meningkatkan kinerja lebih dari tiga puluh persen dan secara signifikan meningkatkan pengalaman pengguna."


4) Bagaimana Anda memastikan kinerja dan skalabilitas aplikasi .NET?

Diharapkan dari kandidat: Penggunaan alat pembuatan profil, pola arsitektur, dan praktik pengkodean terbaik.

Contoh jawaban: โ€œSaya memantau kinerja menggunakan alat profiling seperti dotTrace dan Application Insights, menerapkan pemrograman asinkron bila sesuai, mengimplementasikan caching, dan menggunakan pola arsitektur yang skalabel seperti microservices bila diperlukan.โ€


5) Jelaskan perbedaan antara async/await dan multithreading di .NET.

Diharapkan dari kandidat: Pemahaman tentang model konkurensi.

Contoh jawaban: "Async dan await memungkinkan operasi non-blocking dengan memanfaatkan Pola Asinkron Berbasis Tugas, sedangkan multithreading melibatkan pembuatan thread terpisah yang berjalan secara paralel. Pemrograman asinkron ideal untuk tugas-tugas yang terikat I/O, sementara multithreading berguna untuk operasi yang terikat CPU."


6) Ceritakan tentang situasi di mana Anda harus mempelajari teknologi .NET baru dengan cepat. Bagaimana pendekatan Anda?

Diharapkan dari kandidat: Kemampuan beradaptasi dan pembelajaran berkelanjutan.

Contoh jawaban: โ€œDi posisi sebelumnya, saya perlu mempelajari Blazor dengan cepat untuk proyek klien. Saya mendedikasikan waktu untuk Microsoft dokumentasi, berlatih dengan proyek sandbox kecil, dan berkolaborasi dengan anggota tim untuk memastikan saya memberikan hasil berkualitas tepat waktu.โ€


7) Bagaimana Anda merancang API RESTful di ASP.NET Core? Prinsip-prinsip utama apa yang Anda ikuti?

Diharapkan dari kandidat: Pengetahuan tentang metode HTTP, perutean, pembuatan versi, dan praktik terbaik.

Contoh jawaban: Saya mengikuti prinsip-prinsip REST seperti penamaan sumber daya yang tepat, statelessness, dan penggunaan kata kerja HTTP yang benar. Saya juga menerapkan validasi model, kode status yang tepat, pembuatan versi, dan mekanisme autentikasi seperti JWT.


8) Bagaimana Anda menangani tenggat waktu yang ketat saat mengerjakan beberapa proyek .NET secara bersamaan?

Diharapkan dari kandidat: Prioritas, pengorganisasian, komunikasi.

Contoh jawaban: โ€œDi pekerjaan saya sebelumnya, saya menangani tenggat waktu yang ketat dengan membagi tugas menjadi komponen-komponen yang dapat dikelola, memprioritaskan fitur-fitur penting, dan menjaga komunikasi berkelanjutan dengan para pemangku kepentingan untuk menetapkan ekspektasi yang realistis.โ€


9) Bagaimana Anda menjaga kualitas kode dalam aplikasi .NET?

Diharapkan dari kandidat: Keakraban dengan pengujian, ulasan, dan alat.

Contoh jawaban: "Saya menjaga kualitas kode melalui pengujian unit dengan xUnit, peninjauan kode, analisis kode statis, dan kepatuhan terhadap prinsip-prinsip SOLID. Langkah-langkah ini memastikan pemeliharaan dan keandalan jangka panjang."


10) Misalkan sebuah API .NET produksi mulai menampilkan 500 kesalahan secara berkala. Bagaimana Anda akan mendiagnosis masalah tersebut?

Diharapkan dari kandidat: Debugging terstruktur, penggunaan alat, dan ketenangan di bawah tekanan.

Contoh jawaban: โ€œDalam peran saya sebelumnya, saya akan mulai dengan meninjau log, memeriksa kesehatan dependensi, dan menggunakan Application Insights atau alat serupa untuk trackegagalan tersebut. Kemudian saya akan mengisolasi apakah masalahnya terkait dengan basis data, konfigurasi, atau kode, dan menerapkan perbaikan yang tepat sasaran setelah replikasi dan validasi.โ€

Ringkaslah postingan ini dengan: