Konu Başlıkları Gizle
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.
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.
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:
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.
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:
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.
Şimdilik authorization ile authentication farkını bilelim.
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)
|
|
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();
C#:
[Route("/ev")]
public class HomeController : ControllerBase
{
[HttpGet("index")]
public IActionResult Test(){
return Ok();
}
}
• 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.