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

Tablo İlişkileri


İlişkisel bir veritabanı ile çalışırken veriyi olabildiğince atomik tutmak ve çoklanmasının önüne geçmemiz gerekir. Böylece bir veriyi güncellediğimizde ilişkili tüm bilgileri de güncellemiş ve veri bütünlüğünü sağlamış oluruz. Bunu sağlayabilmemiz için de tablolar arasında doğru ilişkileri kurmamız gereklidir. Dataları konumlandıracağımız tablolar, içerdikleri alanlar ve tablolar arası ilişkilerin tasarımı sürecine normalizasyon adı verilir.

Temel olarak 3 tip tablo ilişkisi bulunmaktadır.


1-1 İlişki


Bu ilişki tipinde tablolar arasında 1-1 bir ilişki bulunmaktadır. Genel olarak Temel Bilgi - Detay Bilgi şeklinde gruplanabilecek verileri 2 farklı tabloda konumlandırdığımızı ve ilişkilendirdiğimizi düşünebilirsiniz. 1-1 ilişkide temel olarak A tablosundaki PK, B tablosunda da PK'dır. Bu durumda B tablosunun PK'si aynı zamanda A tablosundaki PK ya işaret eden bir FK'dır.


Örnek verecek olursak; Books tablosunda bir kitap ile ilgili temel bilgilerin varolduğunu düşünelim. Kitaba ait daha fazla detay bilgiyi ise BookDetails tablosunda tuttuğumuzu düşünelim. Bu durumda kitap-kitap detayı için 1-1 ilişki mevcut denebilir. İlişkinin örnek görseli ise aşağıdaki gibi olacaktır.


Bu ilişkiye sahip bir veriyi aslında her iki tablonun kolonlarına sahip tek bir tablo içerisinde tutuluyor gibi düşünebiliriz. Bu nedenle bu ilişki tipine çok da sık rastlamayabilirsiniz. Uygulamamızın duyduğu ihtiyaca göre bu şekilde bir 1-1 ilişki kurup kurmama kararı vermemiz gerekebilir.


1-1 Relation


1-N İlişki


Bu ilişki tipinde tablolar arasında 1-N bir ilişki bulunmaktadır. Temel olarak A tablosundaki PK'nın, B tablosunda bir FK karşılığı vardır. Fakat B tablosunun kendine ait ayrı bir PK tanımı vardır.


Örnek verecek olursak; Books tablosunda bir kitabın temel bilgilerini tuttuğumuzu düşünelim. Kitaba ait her bir baskıyla ilgili bilgileri ise BookEditions tablosunda tuttuğumuzu düşünelim. Bu durumda kitap-kitap baskısı için 1-N ilişiki mevcut diyebiliriz. İlişkinin örnek görseli ise aşağıdaki gibi olacaktır.


1-N ilişki en çok kullanılan ilişki tiplerinden birisidir. Günümüzde farkında olmadan sıkça kullandığımız 1-N ilişki türlerini aşağıda bulabilirsiniz :)


  • User -> Posts
  • Post -> Comments/Reactions
  • User -> PaymentMethods
  • User -> Addresses

1-N Relation

N-N İlişki


Bu ilişki tipinde tablolar arasında N-N bir ilişki bulunmaktadır. Bu ilişkiyi 2 tablo arasında kurabilmek için 3. bir tabloya ihtiyacımız bulunmaktadır. Temel olarak A tablosundaki PK ile B tablosundaki PK'yı barındıran C tablosu üzerinden bu ilişki kurulur. C tablosunda hem A hem de B tablosuna işaret eden FK'lar vardır.


Books örneğimiz üzerinden devam edecek olursak; bir kitabın birden fazla yazarı olabileceği gibi, aynı yazar yada yazarların da birden fazla kitap yazabileceğini düşündüğümüzde yazar bilgisini direkt olarak Books tablosu ile ilişkilendirmemiz doğru olmayacaktır. Bu durumda yazar bilgileri için de Authors adında bir tablomuz olmalı ve kitap(lar)-yazar(lar) bilgisi için BookAuthors gibi ayrı bir tablo oluşturmamız gerekir. BookAuthors tablosu sayesinde kitap-yazar arasında N-N ilişkiyi sağlamış oluruz. İlişkinin örnek görseli ise aşağıdaki gibi olacaktır.


N-N Relation

Quiz

Answer the questions to check your understanding.

This lesson includes a short quiz.

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