COMPUTER ENGINEER

Örneklere git
Blog
Next.js / ASP.NET Core / SQL6 dk çalışma
01/ 41

Büyük resim

Web uygulaması, site ve API: farkı ne?

Aynı tarayıcıda açılan şeyler aynı şekilde çalışmaz. Önce kimin neyi ürettiğini ayır.

AnlaÖrneği inceleKendin uygula

Bir yazı değil. Baştan sona öğrenme rotası.

41 ders, 10 bölüm ve üç seviyede açıklamalı örnek. Sırayla ilerle veya soldaki menüden ihtiyacın olan konuya geç.

Kavramı anlayalım

Bir web sitesi çoğunlukla herkese aynı içeriği gösterir: bir yazı, bir proje sayfası, bir iletişim formu. Bir web uygulaması ise kullanıcıya göre değişen durum taşır: oturum açmış kullanıcı, sepetteki ürünler, yönetim panelindeki taslaklar. Aradaki çizgi bulanıktır; bu sitenin kendisi hem herkese açık bir portföy hem de yalnız sahibinin girebildiği bir yönetim uygulamasıdır.

API (Application Programming Interface) ise insanlara değil programlara konuşur. Ekrana HTML değil, genellikle JSON döner. Bu projede tarayıcı doğrudan veritabanına bağlanmaz; Next.js sunucusu sayfayı üretirken .NET API’ye sorar, API de veritabanına. Her katmanın tek bir sorumluluğu vardır: Next.js sunumu, API iş kurallarını ve güvenlik sınırını, SQL Server kalıcı veriyi yönetir.

Bu kurs boyunca tek bir isteği izleyeceğiz: tarayıcıda bir bağlantıya tıklandığı andan, SQL Server’ın satırı bulup ekrana yazının çizilmesine kadar. Her derste bu yolculuğun bir durağını büyüteceğiz.

NERESİNDE KULLANIRSIN?

Bir hatanın hangi katmanda olduğunu bilmeden onu düzeltemezsin.

SIK YAPILAN HATA

Tarayıcıda çalışan kodu güvenlik sınırı sanmak; kullanıcı istemciyi her zaman değiştirebilir.

CANLI ANİMASYON

Bir mektubun şehirdeki yolculuğu

İsteği bir mektup, sunucuyu bir şehir gibi düşün. Senaryo seç, oynat ve mektubun hangi kapıdan geçip nerede durdurulduğunu izle.

İSTEMCİKENARWEB SUNUCUSUAPI · ASP.NET COREVERİTarayıcıKullanıcının ekranıAğDNS · TCP · TLSTers vekilTLS sonlandırma, sıkıştırmaNext.js sunucusuSSR ve route handlerKestrelHTTP sunucusuHata yakalayıcıMiddlewareRoutingEndpoint seçimiHız sınırıMiddlewareKimlik doğrulamaKim olduğunYetkilendirmeNeye izin varModel bindingHTTP → C# + doğrulamaControllerEndpoint koduServisİş kuralları (DI)RedisDağıtık önbellekEF CoreLINQ → SQLSQL ServerSorgu planı, indeks
GİDİŞ →

Bir yazıya tıkladın. Tarayıcı ‘Bana bu yazıyı gönder’ diyen bir mektup yazıyor.

TarayıcıSenin ekranın. İsteği yazan ve sonunda cevabı sayfaya çeviren yer.
1 / 22
01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

Temsili örnek
Tarayıcı  →  GET /tr/blog/ilk-yazi   →  HTML (insan için)
Program   →  GET /api/posts/ilk-yazi →  JSON (program için)

Aynı yazı iki farklı biçimde istenebilir: sayfa olarak veya veri olarak.

Bu sayfa gerçek bir sunucuya veya veritabanına bağlanmaz. Kod örnekleri .NET 8, Next.js ve SQL Server için temsilîdir; süreler simülasyondaki örnek değerlerdir, ölçüm değildir. Örnekleri yalnız kendi geliştirme ortamında dene; gerçek bağlantı dizesi, token veya parola paylaşma.

02 / SIRA SENDE

Önce kendin dene.

Bir kullanıcı tarayıcı geliştirici araçlarından ‘Sil’ düğmesinin disabled özelliğini kaldırıp tıklıyor. Bu işlemi gerçekten ne engellemelidir?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
API tarafındaki yetkilendirme:
[Authorize(Roles = "Admin")] ve kaynağın sahibine ait olup olmadığının kontrolü.
Butonu gizlemek yalnız kullanıcı deneyimidir.

İstemci tarafı kontroller kolaylık sağlar ama güvenlik sağlamaz. Asıl karar, isteği işleyen sunucuda verilir.