Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
.NET 8'den .NET 11'e MVC ve Razor Pages'te Gelenler
.NET 8 ve 9'un desteği 10 Kasım 2026'da bittiği için MVC ve Razor Pages uygulamalarının hedefi .NET 10. Aynı projeyi net8.0 ve net10.0 ile çalıştırıp cookie auth'un API endpoint'lerinde 302 yerine 401 dönmesini, Minimal API form binding farkını, ASP0026 uyarısını ve RazorComponentResult'u gösteriyor, .NET 11'in MVC maddelerini ve bir yükseltme kontrol listesini veriyoruz.
htmx ile Razor Pages: SPA Yazmadan Etkileşimli Arayüz, Partial Yanıtlar ve Antiforgery
htmx ile Razor Pages handler'ları HX-Request header'ına göre tam sayfa ya da yalnız partial döner; canlı arama, sonsuz scroll ve satır içi düzenleme JSON ve SPA olmadan çalışır. Antiforgery token'ını hx-headers ile taşıyor, Vary ve history restore tuzaklarını, htmx 2'nin 4xx davranışını ve htmx 4 farklarını gerçek isteklerle gösteriyoruz.
MVC ve Razor Pages'te Localization: IStringLocalizer, IViewLocalizer, Request Culture ve Türkçe "i" Tuzağı
UseRequestLocalization her istek için kültürü query string, cookie, Accept-Language ya da URL'den seçer; .resx, IViewLocalizer ve DataAnnotations mesajları bu kültürle çevrilir. Bookstore kataloğunu TR/EN yapıyor; tr ile tr-TR farkını, query string'de 25,5'in 255 olmasını, "C" formatı ve Türkçe i tuzağını gerçek çıktılarla gösteriyoruz.
Razor Pages: PageModel, Handler Method'ları, Page Routing ve Ne Zaman MVC Yerine
Razor Pages'te @page ile dosya kendisi endpoint olur, PageModel'deki OnGetAsync ve OnPostDeleteAsync gibi handler'lar action'ların yerini alır. Bookstore yönetim CRUD'unu yeniden yazıyor; SupportsGet, TempData, AuthorizeFolder ve page filter'ları, eşleşmeyen handler'ın neden 500 verdiğini ve MVC ile dosya düzenini gerçek çıktılarla inceliyoruz.
Server-Side Rendering Ne Zaman? MVC, Razor Pages, Blazor SSR ve Angular SPA Arasında Seçim
Server-side rendering; SEO, hızlı ilk yükleme, form ağırlıklı iç uygulama ve küçük ekip için güçlü, yoğun etkileşim ve çok istemcili API için SPA daha uygun. Aynı listeyi MVC controller'ı ve Razor Page ile yazıp framework log'larında isteğin yaşam döngüsünü izliyor, 474 byte'lık Angular kabuğunu 2,5 KB'lık hazır HTML ile karşılaştırıyor ve Blazor SSR'ın yerini tartışıyoruz.