26 Ocak 2026 Pazartesi

Web Programlama - 3. Sınıf - 5. Ünite Özet

Web Programlama 2 - Ünite 5: Durum Yönetimi ve Veri Aktarımı
Ders Notları

Durum Yönetimi ve Veri Aktarımı

Web Programlama 2 - Ünite 5: Web'in Hafızası ve İletişim

Temel Handikap: "Unutkan" Web

HTTP protokolü "Stateless" (Durumsuz) bir yapıdadır. Sunucu, bir isteğe yanıt verdikten sonra o kullanıcıyı unutur. Modern uygulamalarda (Sepet, Üyelik) kullanıcının hatırlanması için Durum Yönetimi şarttır.

Problem: Her istek, sanki sunucuyla ilk kez tanışıyormuş gibi bağımsızdır.
1

Durum Yönetimi (Hatırlama Teknikleri)

A. İstemci Taraflı (Tarayıcı)

Veri kullanıcının bilgisayarında saklanır. Güvenlik riski taşır, manipüle edilebilir.

  • 1. Query String
    site.com/Urun?id=5&renk=mavi
    Adres çubuğunda taşınır. Güvensizdir.
  • 2. Hidden Fields
    <input type="hidden" ... >
    Form içinde gizlidir ama kaynak kodda görünür.
  • 3. Cookies (Çerezler) Tarayıcıda saklanan metin dosyalarıdır. "Beni Hatırla" ve tema tercihleri için kullanılır.
    Response.Cookies.Append("Tema", "Koyu");

B. Sunucu Taraflı (Server)

Veri sunucuda saklanır, kullanıcıda sadece bir anahtar (ID) bulunur. Daha güvenlidir.

Session (Oturum)

Kullanıcı siteye girdiğinde sunucu ona benzersiz bir Session ID verir. Asıl veri (Ad, Yetki) sunucu belleğinde bu ID ile tutulur.

Ayar: Startup.cs içinde AddSession() ve UseSession() gereklidir.
// Veri Yazma
HttpContext.Session.SetString("Kullanici", "Ali");

// Veri Okuma
var k = HttpContext.Session.GetString("Kullanici");
2

Senaryo: Güvenli Giriş (Login)

1

Giriş Yap

Kullanıcı adı/şifre doğruysa sunucu hafızasına not düşülür.

Session.SetString("User", "Ahmet")
2

Sayfa İsteği

Kullanıcı "Gizli Sayfa"ya gitmek ister.

3

Kontrol (Gatekeeper)

Sunucu Session'a bakar.

if (Session["User"] == null)
-> Redirect(Login)
3

Veri Aktarımı (Controller -> View)

İş mantığının sonucu olan verileri ekrana taşımak için 4 temel yöntem vardır.

A. Zayıf Türlü (Pratik ama Riskli)

ViewBag Dinamik

İstediğin ismi verip değer atayabilirsin. Hata varsa çalışma zamanında patlar.

// Controller
ViewBag.Mesaj = "Merhaba";
// View
@ViewBag.Mesaj
ViewData Dictionary

Anahtar-Değer mantığı. Okurken tip dönüşümü (casting) gerekir.

ViewData["Ad"] = "Ayşe";
@((string)ViewData["Ad"])
TempData Redirect Dostu

RedirectToAction sonrası hayatta kalır. Tek kullanımlıktır.

B. Güçlü Türlü (Profesyonel Yöntem)

View Model

Veri, belirsiz çantalarla değil, belirli bir Sınıf (Class) yapısıyla taşınır. Hata yaparsan derleyici uyarır (Compile-time check).

1. Controller
var ogr = new Ogrenci();
ogr.Ad = "Veli";
return View(ogr); // Tepsiyi ver
2. View (En Tepe)
@model Ogrenci

<!-- IntelliSense Çalışır! -->
@Model.Ad

Web Programlama 2 © 2024

Ünite 5: Durum Yönetimi ve Veri Aktarımı - Akademik Ders Notları

Hiç yorum yok:

Yorum Gönder

Web Programlama - 3. Sınıf - 8. Ünite Özet

Web Programlama 2 - Ünite 8: LINQ Teknolojisi Ders No...