Blazor = Browser + Razor
Microsoft’un geliştirdiği bu framework iki ana modda çalışır:
Blazor Server → Kod sunucuda çalışır, SignalR ile tarayıcıya UI güncellemeleri gönderilir.
Blazor WebAssembly (WASM) → C# kodu tarayıcıda (client-side) çalışır.
Sen C# geliştiricisi olduğun için, ASP.NET MVC veya WinForms’a benzer şekilde düşün:
Razor sayfalar = View + Controller karışımı bileşenlerdir.
Kod tarafı .razor.cs dosyasında olur.
var builder = WebApplication.CreateBuilder(args);
// Service kayıtları
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents(); // Server modebuilder.Services.AddSingleton();
var app = builder.Build();
app.MapRazorComponents()
.AddInteractiveServerRenderMode();app.Run();
Bu, MVC’deki Startup.cs gibidir.
Servisleri kaydedersin, uygulamayı başlatırsın.
Counter.razor
@page "/counter"
Sayacı Arttır
Güncel Sayı: @count
+1
@code {
int count = 0;void Arttir()
{
count++;
}
}
@code { } bloğu içinde C# kodu yazıyorsun.
@onclick → event binding (JavaScript gerekmez).
Her değişiklikte UI otomatik güncellenir.
İki yönlü binding WinForms’taki TextBox.Text = ... gibidir:
@page "/form"
Kullanıcı Bilgisi
Merhaba, @ad!
@code {
string ad = "";
}
Componentlerin bazı eventleri vardır:
@code {
protected override void OnInitialized()
{
// Component ilk açıldığında
}protected override async Task OnInitializedAsync()
{
// async başlatma işlemleri
}protected override void OnParametersSet()
{
// Parametre değiştiğinde
}
}
Bir WeatherForecastService servisinden veri çekme örneği:
WeatherForecastService.cs