ASP.NET Core, Microsoft’un geliştirmiş olduğu, modern web uygulamaları geliştirmek için kullanılan, açık kaynak kodlu bir web framework’üdür. .NET Core platformu üzerinde çalışır ve web tabanlı uygulamalar geliştirmeye imkan tanır. ASP.NET’in daha gelişmiş ve modern bir versiyonudur ve cross-platform (çoklu platform) desteği sunar; yani Windows, Linux ve macOS üzerinde çalışabilir. Genellikle C# diliyle kod yazılır.
ASP.NET ve ASP.NET CORE Arasındaki Farklar

| ASP.NET | Özellikler | ASP.NET CORE |
|---|---|---|
| Sadece Windows | Platform | Çoklu Platform Desteği |
| .NET Framework | Teknoloji | .Net Core / .NET 5+ |
| Eski Yapı | Modernlik | Yeni Nesil Yapı |
| Kısmen Açık Kaynak | İşletim Sistemi | Tamamen Açık Kaynak |
| Görece Düşük | Performans | Çok Daha Hızlı |
ASP.NET Core web uygulamarı projelerinde genellikle MVC mimarisi(MVC Pattern) kullanılır. Bu, kodu 3 ana katmana ayırarak daha düzenli ve bakımı kolay hale getirir:
- Model
- Veritabanı tablolarını temsil eder. Entity Framework gibi ORM araçları burada devreye girer. Veri katmanıda denilebilir.

- View
- Kullanıcıların ekranda gördüğü HTML arayüzünü oluşturur. ASP.NET Core’da Razor sayesinde HTML ile birlikte C# kodları da aynı dosya içinde yazılabilir. Controller tarafından gönderilen veriler View içinde işlenerek, kullanıcıya dinamik olarak gösterilir.
- Razor : Razor, ASP.NET Core‘un içinde kullanılan bir sözdizim (syntax) yapısıdır. Razor sayesinde .cshtml dosyası içinde hem HTML hem de C# kodları yazılabilir.

- Controller
- Controller, MVC yapısında Model ile View arasında bir kablo gibi düşünülebilir. Kullanıcının yaptığı isteği alır (örneğin bir butona tıklama), gerekirse Model katmanında veri işlemesi yapar, ve elde ettiği sonucu tekrar View’a göndererek kullanıcıya gösterilmesini sağlar.

Controller katmanı, Model katmanındaki verileri almak (örneğin veritabanından çekmek) veya View katmanından gelen verileri (kullanıcının formdan gönderdiği bilgiler gibi) alıp işleyerek veritabanına eklemek için gelen HTTP isteklerini (request) yönetir. Web dünyasında iki önemli request vardır.
- GET
- Controller, View katmanından gelen isteği alır, Model katmanındaki verileri işler ve sonucu tekrar View katmanına gönderir.

- POST
- Controller, View katmanından gelen isteği alır ve bu sefer veriyi Model katmanındaki veritabanına ekler.
Bu istekleri kullanarak da yeni API(Application Programming Interface)‘ler oluşturulabilir.
API(Application Programming Interface) : İnternet üzerinden çalışan ve başka programların, uygulamaların ya da cihazların veri alıp gönderebildiği özel servislerdir. HTTP istekleri ile çalışır.



