Asp .Net Core ile Medium Tarzı Blog Sitesi Yapımı-Projenin Başlatılması
Normalde web projelerimde python/django ikilisini tercih ediyorum ancak belli sebeplerden ötürü .net framework yapısını öğrenmem ve bu teknolojileri kullanarak proje geliştirmem gerekti. Hemen dökümanlar ve tutorial kurslar aradım ancak açık konuşmak gerekirse düzgün dökümanlar bulamadım. Genelde özgür yazılım teknolojileri kullanan ve dökümanlarını takip eden biri olarak microsoftun dökümanlarını pek beğenmedim. Bu konuda yazı yazanlar ise genelde sıfırdan başlayıp belli bir seviyeye doğru anlatım yapmamışlar, belli konularda veya çokca zorlanılan konularda yazılar yazmışlar. Bu sebepten bir blog serisi yazmak istedim.
Öncelikle bu seri boyunca asp ile yeni tanışan(tanışması devam eden) birinin yazılarını okuyacaksınız bu yüzden yazıları okurken sorgulayıcı olmanız size yarar sağlayacaktır.
Sıfırdan başlayıp medium tarzı çok kullanıcılı bir blog sitesi yazacağım. Projeyi geliştirirken öğrendikçe .net core yapısını seveceğinizi düşünüyorum. Ben Visual Studio ile geliştirme yapacağım ve nasıl kurulduğunu vs anlatmayacağım siz dilerseniz linux veya macOS platformları üzerinde VS Code veya herhangi bir başka editör ile yazabilirsiniz.
https://www.microsoft.com/net/download
Öncelikle Visual Studio üzerinden MediumClone adında boş(empty) bir Asp.Net Core Web Application projesi başlatıyorum.

Bizi yukarıdaki gibi bir bomboş bir çözüm gezgini karşılayacak. Burada NuGet, paket yöneticisi oluyor. NuGet yardımıyla yüklediğimiz paketler NuGet altına yerleşerek projemize dahil oluyor. NuGetten paket yüklemek için proje adına sağ tıklayıp Manage Nuget Packages seçeneğini seçiyoruz. wwwroot klasörü altına js, css dosyalarımız veya kullanıcıdan alacağımız resim, fotoğraf gibi dosyaları koyabiliriz. 2 adet ise cs dosyamız var bunlardan Program.cs bizim main fonksiyonumu içeren sınıfı barındırıyor. Startup.cs ise projemizin ayarlarını yaptığımız sınıfı içeriyor.
Yukarıdaki gibi gelen sınıfın içeriği aşağıdaki gibi düzenliyoruz.
Burada app.Run fonksiyonun bir önemi olmadığı için sildim, diğer adımların ne olduğu ise zaten yazıyor. Şimdi proje ana dizini içinde Models, Views ve Controllers adında 3 klasör oluşturalım.
Controllers dizinine sağ tıklayıp Add Controller diyelim ve Empty Controller seçelim. İsim olarak ise HomeController yazalım.
Visual Studio benim için bir controller sınıfı oluşturdu ve içersine Index adında IActionResult tipini geri döndüren bir fonksiyon ekledi. Bu fonksiyon Views/Home/ dizini aldında Index.cshtml adındaki dosyayı render edip tarayıcımızda gösterebiliyor. Dosylarımızı aşağıdaki şekilde düzenleyelim.
Index.cshtml dosyasını otomatik oluşturmak için Index Fonksiyonuna sağ tıklayıp Add View seçeneğini seçebilirsiniz.
Projeyi çalıştırdığınızda ekranda Merhaba Dünya yazısını göreceksiniz. Hemen controller sınıfımıza bir fonksiyon daha ekleyelim ve sonucu görelim.
Projemizi çalıştıırdığımızda bizi Merhaba Dünya yazan ekran karşılayacak. Eğer adres çubuğuna /Home/Index yazarsanız yine Merhaba Dünya yazan aynı ekrana gidersiniz. /Home/Deneme yazarsanız ise içerisinde Deneme yazan ekrana ulaşırsınız. Tüm bu işlemi yapan şey startup.cs dosyasında tanımladığımız app.UseMvcWithDefaultRoute(); satırıdır.
Bu satır sayesinde projemizdeki Controller Sınıflarının isimleri linkin ilk parçasını sınıf içindeki fonksiyonlar ise linkin ikinci parçasını tutar böylece istenen action link girilerek doğru şekilde çağırılır.
Biz hiç bişey yazmadığımız halde Home/Index linkine gittiğini de gözden kaçırmamak gerek. Tüm bu ayarlar değiştirilebilir ve ilerleyen yazılarda bunlarla nasıl oynayabileceğimizi göreceğiz.
Deneme fonksiyonu ve Deneme.cshtml dosyalarını silebilirsiniz bir sonraki ders bu dosyaları kullanmayacağım sadece link yönlendirme yapısını göstermek için kullandım.