Cohorts
  • Discover
  • About Us
  • Blog
  • Patika.dev
  • Web3

.Net Core

Tarihçe, .Net Framework vs .Net Core vs .Net5

.NET 5 Kurulumu
Visual Studio Code kurulumu

Http Protokolü
Restful Servisler
Restful vs Soap
JSON (JavaScript Object Notation)

Örnek Web Api Yaratmak

Startup ve Program Sınıfları
Ortam dosyaları

Controller Sınıfı
Route Kavramı
Action Methodlar
Okunabilir API tasarımı

Swagger Nedir? Nasıl Kullanılır?
Postman Nedir? Nasıl Kullanılır?
Api Debug Nasıl Yapılır?

Get ve GetById endpoint'lerinin yazılması
Put ve Post endpoint'lerinin yazılması
Delete endpoint'inin yazılması

İlişkisel ve NoSql Veritabanları
Table,Primary Key, Foreign Key Kavramları
Tablo İlişkileri

Temel SQL
ORM Nedir? ORM Araçları Nelerdir? Entity Framework Core'a Giriş
Örnek Projeye EF Core Dahil Etmek
DB Context kullanarak CRUD işlemler
Auto Increment ID kolonunun eklenmesi
Linq ile Crud İşlemler

Entity Kavramı
ViewModel ve Dto Kavramı
Ödev - Model Kullanımı
Ödev Çözümü - Model Kullanımı
AutoMapper

Modellerin Doğrulanması ve FluentValidation Kütüphanesi
Model Validasyonu - Ödev
Model Validasyonu - Ödev Çözümü

Middleware Kavramı
Custom Exception Middleware Yaratılmak

Dependency Nedir ?
Dependency Injection (DI) Kavramı
DI Container Kavramı
.NET Core DI Container (Services)
Projeye DI Container Kullanarak Logger Servis Eklemek

Pratik - Projeye Genre Controller ve Servislerin Eklenmesi

Ödev - Projeye Author Controller ve Servislerin Eklenmesi

Test Kavramı ve Çeşitleri
TDD (Test Driven Development) Nedir ?
Örnek Test Yazımı
Pratik - Command ve Validator Sınıflarının Testlerinin Yazılması

Ödev - Projenin eksik testlerinin tamamlanması

Token Bazlı Kimlik Doğrulama ve Access Token Kullanımı
Refresh Token Kullanımı

Proje Ödevi - Movie Store Uygulaması

Proje Ödevi 2 - Serbest Proje Seçimi

Movie Store WebApi Yazılması


Bu proje kapsamında bir Movie Store uygulamasının servislerinin yazılması beklenmektedir.


Proje Yapısı


1.Bir filmin sahip olması gereken özellikleri şu şekildedir:

  • Film Adı
  • Film Yılı
  • Film Türü
  • Yönetmen
  • Oyuncular
  • Fiyat

Yönetmenler ve oyuncular ayrı tutulmalıdır. Bir oyuncu aynı zamanda yönetmen de olabilir, ama bunlar iki ayrı yapıdır.


2.Oyuncuların sahip olması gereken özellikler temelde şu şekildedir :

  • İsim
  • Soyisim
  • Oynadığı filmler

Bir filmde birden fazla oyuncu oynayabilir, bir oyuncunun da birden fazla filmi olabilir.


3.Yönetmenlerin sahip olması gereken özellikler temelde şu şekildedir:

  • İsim
  • Soyisim
  • Yönettiği filmler


4.Uygulama içerisinde bir de Customer rolü olmalıdır. Özellikleri ise temelde şu şekildedir:

  • İsim
  • Soyisim
  • Satın aldığı filmler
  • Favori türler

Müşterinin birden fazla favori film türü olabilir. Satın aldığı bir türü tekrar satın alabilir. Buraya bir kısıtlama koymaya gerek yok.


5.Customer için bir login endpoint'i yaratılmalıdır. Yetkisiz kullanıcı uygulama içerisinden satın alma işlemi yapamamalı.


6.Müşterilerin satın aldıkları filmler siparişlerim gibi bir yapı içerisinde tutulmalıdır. Temel özellikleri ise şu şekilde olmalıdır:


  • Satın alan müşteri
  • Satın alınan film
  • Fiyat
  • Satın alma tarihi



Uygulama Gereksinimleri


1.Film Ekleme/Silme/Güncelleme/Listeleme


2.Müşteri Ekleme/Silme


3.Oyuncu Ekleme/Silme/Güncelleme/Listeleme


4.Yönetmen Ekleme/Silme/Güncelleme/Listeleme/


5.Film Satın Alma


  • Müşteri istediği bir filmi uygulama üzerinden satın alabilir.


6.Müşteri bazlı satın alma verisinin listelenmesi. Satın alınan filmler daha sonra sistemden silinebilir. Bu sipariş datasını etkilememeli. Bu durumu sağlamak için film verileri hard olarajk silinmemelidir. Bir Aktif-Pasif özelliği ile yönetilebilir.


7.Film türleri uygulama çalıştırıldığından varsayılan olarak yaratılabilir. Servisler ile yönetilmesine gerek yoktur.



Teknik Gereksinimler


1.Entity objeleri input/output olarak kullanılmamalı.


2.Gereken yerlerde model ve Dto'lar kullanılmalıdır. Automapper kütüphanesi yardımıyla objeler birbirine dönüştürülebilmelidir.


3.Controller içerisinde servis işleri yapılmamalıdır.


4.Her servisin bir validation sınıfı olmalıdır. Uygulama sıkı kurallar ile korunmalı, olası tüm validasyonlar yazılmalıdır.


5.Exception ve loglama altyapısı middleware kullanılarak yazılmalıdır.


  • Uygulama yapılan her request ve response console'a yazılarak loglanmalıdır.
  • Uygulama hata aldığında yada validayon hatası fırlattığında anlamlı bir şekilde bu hatalar console'a log olarak yazdırılmalıdır.
  • Loglama yöntemi uygulama içerisine yayılmamalıdır. Gerek duyulduğunda sadece bir noktada değişiklik yaparak loglama şekli değiştirilebilmeli.


6.Proje içerisinde bağımlılık (dependency) yaratılmamasına dikkat edilmelidir. Gerekli noktalarda DI Container ile Dependency Injection kullanılarak bağımlılıklar tek bir noktadan yönetilmelidir.


7.Projeye temel seviyede bir Authentication ve Authorization yapısı implemente edilmelidir. Satın alma endpoint'i sadece müşteri tarafından kullanılacak bir endpoint olmalıdır.


8.Projenin birim testleri eksiksiz şekilde yazılmalıdır. Tüm testler hatasız çalışmalıdır.


9.Silme servislerinde veri tutarlılığı dikkate alınmalıdır. Diğer tablolarda ilişkili datası bulunan kayıtlar silinemez.


Ödev

Submit your work to complete this lesson.

Join the project workspace to share your solution and receive feedback.

Previous
Next

Lesson discussion

Swap insights and ask questions about “.Net Core”.

Enroll to participate
Start the course to unlock the discussion. Enrolling helps us keep conversations relevant to learners.
Cohorts
WebsiteDiscoverBlogPatika.devRise In
CoursesCircleRustSoliditySolanaWeb3 FundamentalsBlockchain Basics
CompanyAbout UsTerms of UsePrivacy PolicyGDPR NoticeCookies
Don't miss any update!

Disclaimer: The information, programs, and events provided on https://cohorts.patika.dev is strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice, nor do we make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://cohorts.patika.dev disclaims any responsibility for financial decisions made by users based on the information provided here.

© 2026 Cohorts, All rights reserved