- Bu repo "Yazılım Geliştirici Yetiştirme Kampı" için oluşturulmuştur.
- ReCapProject Entities, DataAccess, Business, Core ve WebAPI katmanlarından oluşan "Araba Kiralama Sistemi" adlı kurumsal bir C# projesidir.
- Car, Color, Brand, User, Customer, Rental nesneleri ve bu nesnelerin operasyonlarından oluşan bu proje zaman içerisinde geliştirilecektir.
- Proje hakkındaki detayları seri halinde blog sayfamda paylaşıyor olacağım.
- Proje veritabanında yer alan tablolara karşılık gelen nesneler burada tutulmaktadır.
- Bu katman kendi içerisinde Abstract (Soyut Nesneler) ve Concrete (Somut Nesneler) olmak üzere ikiye ayrılmaktadır.
IEntity.cs(Ortak olması nedeniyle Core Katmanına taşınmıştır.)
- Başlangıç olarak memory (Bellek) üzerinde çalışılacağı için InMemory klasöründe yer alan InMemoryCarDal.cs içerisinde operasyonları oluşturuldu. İlerleyen zamanlarda projeye Entity Framework ekleyeceğim için böyle bir yapı oluşturuldu. Entity Framework eklendiği zaman ona ait olan dosyalar EntityFramework içerisinde yer alacaktır. Bu şekilde PnP olarak sistem alt yapısı hızlıca değiştirilebilecektir.
- Proje içerisinde EntityFrameWork alt yapısı kullanılmıştır.
- CRUD işlemlerinin gerçekleştirilmesini sağlayan katmandır. Veritabanı ile programın iletişimini sağlar.
-
EntityFramework
-
InMemory
- Bu katmanda gerekli olan iş kontrolleri ve kuralları yer almaktadır.
- İçerisinde başarı ve hata mesajlarını tutan dosyamız yer almaktadır.
- Abstract (Soyut Nesneler), Concrete (Somut Nesneler) ve Constants(Mesaj değerleri) klasörlerinden oluşmaktadır.
- IBrandService.cs
- ICarService.cs
- IColorService.cs
- ICustomerService.cs
- IRentalService.cs
- IUserService.cs
- Core Katmanı asla başka bir katmana bağımlı olamaz! Tamamen bağımsızdır.
- Bu katmanda ortak kodlar yer almaktadır. Projenin kurumsal bir yapıya sahip olmasını sağlar.
- Diğer katmanlar Core katmanına bağımlıdır ve referans alırlar.
- Farklı projelerde PnP mantığıyla CRUD işlemlerini rahatlıkla kullanabiliriz.
- Daha sonra kodlanacak olan benzer projelere çatı niteliğindedir.
- DataAccess klasörü DataAcccess katmanıyla ilgili nesneleri, Entities klasörü Entities katmanı ile ilgili nesneleri tutmak için oluşturulmuştur.
- Core katmanının .NET Core ile hiç bir alakası yoktur.
-
Proje servislerine farklı yazılımlar, uygulamalar ve cihazlar üzerinden erişim imkanı sağlar.
-
Bu aşamada yazılan kodlar Postman Aracı ile test edilmiştir.
-
Controllers dosyasında yer alan class'ların amacı client tarafından server'a yapılan istekleri karşılamak ve çalıştırılacak olan servise karar vermektir.