ASP.NET Core - Giriş

Merhabalar, ben @pottie4r. Yaklaşık 5 yıldır ASP.NET Core ile web programlama yapıyorum. Bilgi ve deneyimlerimi biraz olsun size aktarmak istiyorum. Bu seri daha çok yazılım bilgisi olan kişilere hitap etmektedir. Eğer anlayamadığınız bir durum olursa yardım isteyebilirsiniz. Maalesef fazla vaktim olmuyor, dolayısıyla sonraki rehber ne zaman gelir bilemiyorum.

1 - ASP.NET Core Nedir? Neden ASP.NET Core?​

ASP.NET Core, Microsoft'un 2016 yılında başlattığı .NET Core projesinin web yansımasıdır. Daha öncesinde .NET Framework tarafından güçlendirilen ASP.NET bulunuyordu. Fakat ASP.NET'in IIS'e bağımlı olması, sadece Windows ile çalışması gibi dezavantajları vardı. Dolayısıyla Microsoft, piyasayı domine etme isteğine ulaşamıyordu. ASP.NET Core bu bağlamda Microsoft'u ön plana çıkarmaya başladı diyebiliriz. Bu tür konuları internette bolca bulabileceğiniz için fazla uzun tutmayacağım.

2 - ASP.NET Core Projelerine Genel Bakış​

Bir ASP.NET Core projesi yarattığınızda eskisi (.NET Framework) gibi bir sürü klasör/dosya çıkmaz. Sadece şu 3 dosya boş bir ASP.NET Core uygulamasında mevcuttur:
  • appsettings.json
    Bu dosya ile web uygulamamızın ayarlarını saklayabiliriz.
  • appsettings.Development.json
    Bu dosya ile web uygulamamızın ayarlarını geliştirme ortamı için saklayabiliriz.
  • Program.cs
    Her .NET Core uygulamasında olduğu gibi giriş noktamız burada bulunur. Burada uygulamamızı yapılandıracağız.

3 - ASP.NET Core Uygulamasında Bir HTTP İsteğinin Yaşam Döngüsü (Life Cycle)​

1743717069481.webp
  1. ASP.NET Core uygulamalarında, özel olarak yapılandırılmadığınız sürece Kestrel adı verilen yeni ve gömülü bir web server kullanılır.
  2. Bu web server gelen isteği çeşitli ara-yazılımlar (middleware) üzerinden geçirerek en son ulaşacağı ana parçacığa ulaştırır.
  3. Ardından her istek için tekrar geri gelerek isteği bırakır.

Bu ara-yazılımlar hem fonksiyonel olarak önemli hem de işimizi oldukça kolaylaştıracak biçimde olabilir.
HTTP isteğinin uğradığı bazı önemli ara-yazılımlara göz atalım.

• Routing Middleware​

Gelen isteğin URL'ine bakarak ilgili Controller, Razor Sayfası, Action'a ulaştırılmasını sağlayan ara-yazılım. Tabii ki bu yönlendirme ara-yazılımına bilgiyi bizim vermemiz gerekir ancak .NET Core geliştiricileri bu konuda da bizi oldukça rahatlatıyor. Çünkü ASP.NET Core'un içinde Controller'lar ve Razor Sayfaları için gömülü gelen bazı yönlendirme kuralları var. Yani özel bir kural tanımlamadan yalnızca,
C#:
app.MapControllers();
diyerek Service Provider tarafından yüklenen Controller'ları mapleyebiliyorsunuz. Bunun için de ya "~/Controller sınıfının adı/Action'ın adı" şeklinde baz alıyor ya da kendiniz annotation ile ayarlıyorsunuz. Örneğin:
C#:
[Route("/ev")]
public class HomeController : ControllerBase
{
    [HttpGet("index")]
    public IActionResult Test(){
        return Ok();
    }
}
bu controller'a "~/ev/index" URL'i üzerinden erişilebilir. Eğer annotation ile özel rota belirtmeseydik ASP.NET Core otomatik olarak "~/home/test" şeklinde mapleyecekti.

• Authorization Middleware​

Authorization, yetkilendirme işlemidir. İleride daha detaylı olarak anlatacağım.

• Authentication Middleware​

Authentication, kimlik doğrulama işlemidir. İleride daha detaylı olarak anlatacağım.
Şimdilik authorization ile authentication farkını bilelim.
 

Dosya Ekleri

  • 1743716961016.webp
    1743716961016.webp
    13,2 KB · Görüntüleme: 26
  • 1743716990071.webp
    1743716990071.webp
    13,2 KB · Görüntüleme: 22

Yeni konular

Geri
Yukarı Alt