ASP.NET Core ilk proje oluşturmak için önce kurulu.NET SDK’yı kontrol et, ardından amacına uygun Web API veya MVC şablonuyla projeyi oluştur..NET sürümünü seçerken yalnızca bilgisayarında kurulu olmasına değil, hedef sürümün resmî destek durumuna ve projenin TargetFramework değerine bak. Projeyi komut satırından başlatmak için Visual Studio zorunlu değildir.
Proje oluşturmadan önce SDK ve ihtiyaçlar nasıl kontrol edilir?
Terminalde dotnet --info çalıştır. Çıktıda kullanılan SDK’ya, kurulu çalışma ortamlarına ve işletim sistemi bilgisine bakabilirsin. Ardından dotnet new list ile kullanabileceğin proje şablonlarını gör:
dotnet --info
dotnet new list
SDK, proje oluşturma ve derleme araçlarını sağlar. Runtime, uygulamayı çalıştırmak içindir. Proje dosyasındaki TargetFramework ise uygulamanın hangi.NET hedefi için derleneceğini belirtir. Bunlar birbiriyle ilişkili olsa da aynı bilgi değildir: SDK’nın kurulu olması, seçtiğin hedef sürümün destek yaşam döngüsünü tek başına açıklamaz.
Proje oluşturmadan önce şu kontrol sırasını izle:
- SDK’yı kontrol et:
dotnet --infoçıktısında geliştirme araçlarının kullanılabildiğini doğrula. - Amacını belirle: HTTP üzerinden veri sunan bir API mi, sunucuda oluşturulan web sayfaları mı geliştireceğine karar ver.
- Hedef sürümün desteğini araştır: Resmî.NET destek tablosundaki destek durumunu ve bitiş tarihini incele; belirli bir sürümü her proje için kalıcı tercih sayma.
- Şablonu doğrula:
dotnet new listçıktısında seçtiğin şablonun kısa adını bul.
Destek süresi ile kurulum durumu ayrı kontrollerdir: Bir sürüm bilgisayarında bulunabilir, fakat proje için uygunluğunu değerlendirirken resmî destek yaşam döngüsüne ayrıca bakmalısın.
Web API ve MVC şablonlarından hangisiyle başlanır?

Bir web arayüzüne veya başka bir istemciye HTTP üzerinden veri sunacaksan Web API uygun bir başlangıçtır. Sunucuda oluşturulan sayfalarla, controller ve view yapısını öğrenmek istiyorsan MVC şablonunu seçebilirsin. Bu rehberin uygulama örneği, veri döndüren bir endpoint göstermek için Web API şablonuyla ilerler.
İhtiyacına karşılık gelen komutu çalıştır; aşağıdaki komutlar iki ayrı proje oluşturur:
dotnet new webapi -o IlkApi
dotnet new mvc -o IlkMvc
webapi ve mvc şablonların kısa adlarıdır; -o ise projenin oluşturulacağı klasörü belirtir. Şablonun hazırladığı dosyaları veya örnek endpoint’leri sabit kabul etmek yerine, oluşturduğun projeyi incele.
Web API’nin veri döndürme amacını somutlaştırmak için IlkApi projesinin Program.cs içeriğini aşağıdaki küçük örnekle değiştirebilirsin:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/selam", () => new { mesaj = "Merhaba" });
app.Run();
Uygulama çalışırken terminalin gösterdiği yerel adrese /selam ekleyip tarayıcıda açtığında beklenen yanıt {"mesaj":"Merhaba"} biçimindedir. Burada MapGet bir HTTP GET isteğini karşılar; döndürülen nesne JSON olarak sunulur.
dotnet new, restore, build ve run hangi sırayla çalıştırılır?
Komut satırında temel sıra şöyledir: önce şablondan proje oluşturulur, proje klasörüne geçilir, bağımlılıklar geri yüklenir, proje derlenir ve uygulama çalıştırılır. Aşağıdaki örnekte net10.0 hedefiyle tek bir Web API projesi oluşturuluyor. Resmî.NET CLI belgeleri, şablon seçimi ve framework belirtmek için bu sözdizimini destekler.
dotnet new webapi -n IlkApi --framework net10.0
cd IlkApi
dotnet restore
dotnet build --no-restore
dotnet run --no-restore
dotnet new, kurulu.NET SDK içindeki şablon motorunu kullanarakIlkApiklasörünü, proje dosyasını ve başlangıç kaynaklarını oluşturur.--framework net10.0seçimi, oluşturulan projeye hedef framework bilgisini aktarır.cd IlkApi, terminali.csprojdosyasının bulunduğu klasöre taşır. Sonraki komutların doğru projeyi bulabilmesi için bu adım önemlidir.dotnet restore, proje dosyasındaki NuGet bağımlılıklarını çözer ve gerekli paketleri yerel önbellekte kullanılabilir hâle getirir.dotnet build --no-restore, kaynak kodunu ve proje bağımlılıklarını derler.--no-restoreseçeneği, bir önceki adımda açıkça yapılan geri yüklemenin tekrar edilmesini önler.dotnet run --no-restoreise projeyi çalıştırır ve ihtiyaç duyduğu derleme adımını yürütür.
dotnet restore komutunu ayrı yazmak zorunlu değildir. Gerekli olduğunda dotnet new, dotnet build ve dotnet run restore işlemini örtük olarak çalıştırabilir. Dört komutu ayrı kullanmak, bağımlılık, derleme ve çalıştırma aşamalarını birbirinden ayırarak hatanın hangi adımda oluştuğunu görmeyi kolaylaştırır. Uygulama başladıktan sonra sabit bir port varsayma; terminalde uygulamanın dinlediği adresi gösteren satırdaki URL'yi kullan.
TargetFramework değeri ve desteklenen.NET sürümü nasıl seçilir?

Projenin hangi.NET sürümünü hedeflediğini .csproj dosyasındaki TargetFramework satırı gösterir. Bu değer, projenin kullanabileceği API setini ve derleme hedefini belirtir; kurulu SDK sürümüyle aynı olmak zorunda değildir.
IlkApi/IlkApi.csproj dosyasında ilgili bölüm şu şekilde görünür:
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
Bu kararı değerlendirirken dört ayrı kontrol yap:
dotnet --list-sdks
dotnet --list-runtimes
dotnet --list-sdks, proje oluşturma ve derleme sırasında kullanılabilecek SDK'ları gösterir.dotnet --list-runtimes, uygulamanın çalışabileceği kurulu runtime'ları gösterir.TargetFramework, projenin hedefini belirtir.- Resmî.NET destek tablosu, hedef sürümün destek yaşam döngüsünü gösterir.
25 Eylül 2026 itibarıyla Microsoft,.NET 10'u LTS olarak Kasım 2028'e,.NET 9'u STS ve.NET 8'i LTS olarak Kasım 2026'ya kadar desteklenen sürümler arasında listeliyor. Bu nedenle örnekteki net10.0 güncel ve desteklenen bir örnektir, kalıcı olarak her proje için en iyi seçim anlamına gelmez.
- Proje, sunucu veya bağımlılık belirli bir framework istiyorsa önce bu gereksinimi esas al.
- Belirli bir zorunluluk yoksa destek süresi devam eden, kurulu SDK ve çalıştırma ortamıyla uyumlu bir TFM seç.
- Seçimden sonra
dotnet restore,dotnet buildvedotnet runkomutlarını çalıştırarak SDK, bağımlılık ve runtime uyumunu birlikte kontrol et.
İlk endpoint nasıl eklenir ve tarayıcıda ne görülür?
İlk endpoint denemesi için şablonun varsayılan koduna bağlı kalmak yerine Program.cs dosyasını sadeleştirebilirsin. ASP.NET Core web projesinde dosyanın tamamını aşağıdaki içerikle değiştir:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/merhaba", () => "ASP.NET Core çalışıyor");
app.Run();
Bu örnekte WebApplication.CreateBuilder uygulamayı hazırlar, MapGet gelen GET isteğini /merhaba yoluna bağlar, Run ise uygulamayı başlatır. Bu yapı, ASP.NET Core minimal API örneklerinde kullanılan temel uygulama düzenidir.
Dosyayı kaydettikten sonra terminalde çalışan eski işlemi Ctrl+C ile durdur ve proje klasöründe şu komutu çalıştır:
dotnet run
Terminalde Now listening on: satırını bul. Bu satırda gösterilen adresin sonuna /merhaba ekleyerek tarayıcıda aç. Port numarası projeye ve çalıştırma ayarlarına göre değişebilir; bu nedenle adresi terminalde görünen biçimiyle kullanmalısın.
Endpoint doğru çalışıyorsa tarayıcıda aşağıdaki yanıtı görürsün:
ASP.NET Core çalışıyor
Framework eşleşmesi ve çalıştırma sorunları nasıl teşhis edilir?
Çalıştırma sorununu ayırmak için dört çıktıyı aynı sırayla karşılaştır: kurulu SDK bilgisi, .csproj dosyasındaki TargetFramework değeri, restore ve build sonuçları, son olarak dotnet run tarafından gösterilen adres.
Dört adımlı başlangıç kontrol listesi
- SDK'yi kontrol et. Terminalde
dotnet --infokomutunu çalıştır. Çıktıda kurulu SDK bilgilerini incele. Komut hiç çalışmıyorsa veya SDK bilgisi görünmüyorsa sorun, SDK kurulumunda ya da işletim sistemininPATHayarında olabilir. - Hedef framework'ü kontrol et. Projenin
.csprojdosyasındaki<TargetFramework>değerini oku. Bu değer, uygulamanın hangi.NET hedefi için derleneceğini belirler. Kurulu SDK'nın bu hedefle uyumlu olduğundan ve hedefin resmî destek durumunun devam ettiğinden emin ol. - Bağımlılıkları ve derlemeyi ayır. Proje klasöründe önce
dotnet restore, ardındandotnet buildçalıştır. Restore çıktısında paket veya kaynak sorunlarını, build çıktısında ise kod, framework ya da referans sorunlarını ara. Build tamamlanmadandotnet runaşamasına geçme. - Çalışma adresini terminalden al.
dotnet runkomutunu çalıştır veNow listening on:satırındaki adresi kullan. Tarayıcıda eski bir portu denemek yerine bu adrese/merhabaekle. Uygulama beklediğin adreste açılmıyorsa terminaldeki adresi, kaydedilenProgram.csdosyasını ve çalıştırma ayarlarını yeniden karşılaştır.
Yeni bir projede ilk kontrol, kurulu SDK ile TargetFramework değerinin ve seçilen hedef framework'ün resmî destek durumunun birbiriyle uyumlu olmasıdır.
İlk endpoint'in yanıt vermesi, proje altyapısının çalıştığını gösterir; bundan sonra controller, veri erişimi ve diğer web bileşenlerini ayrı adımlarla ekleyebilirsin.