Skip to content

The "Rent Car Project" is the project where the back-end side is encoded.

Notifications You must be signed in to change notification settings

binnazcabuk/RentCarBackend

Repository files navigation

Araç Kiralama Projesi

Rent-Car

N-Katmanlı mimari yapısı ile hazırlanmış,OOP(Object orianted progrraming), AOP (Aspect Oriented Programming) gibi programlama modelleriyle çeşitli sorunlara çözümler sunulmuştur. Diğer taraftan SOLID prensiplerine bağlı clean code olarak kodlanan bir projedir.

About

Business Layer

Api katmanından gelen isteklerin ve verilerin işlendiği katmandır. Asp .Net Core'un sunmuş olduğu built-in dependenct injection desteği yerine Autofac teknolojisi kullanılarak nesnelerin yaşam döngülerinin hem daha yetenekli hem de daha yüksek performanslı bir araçla kontrol edilmesi amaçlanmış ve kodda basitlik ve sadelik sağlanmıştır, bunlara ek olarak Autofac ile gelen castle dynamic proxy sayesinde AOP mimarisi çerçevesinde metodların ve sınıfların intercept edilebilmesini sağlayan yapı geliştirilmiştir.

Core Layer

Proje mimarisinin temel yapısnı oluşturan kısımlarının yer aldığı katmandır.Caching, exception handling, performance, transaction,log gibi yapılar bu katmanda yer almaktadır. Veri erişimi için Entity framework repository soyutlamaları ve generic yapıda bu katmanda yer almaktadır, diğer bir taraftan yer alan extensionlar sayesinde metodlar genişletilerek mimariye ve ihtiyaçlara uygun hale getirilmiştir. Ayrıca katman içindeki utilities içinde, iş kuralları yönetimi, interceptor yönetimi, güvenlik ve IoC gibi temel yapılar yönetilmektedir.

Data Access Layer

Veri tabanı işlemlerinin yapıldığı katmandır, temel görevi veriye erişmek ve ekleme, silme, güncelleme gibi temel işlemlerin yerine getirilmesidir.

WEB API

Projede kullanıcı veya arayüzle iletişimde olan kısımların tümünü içeren katmandır.Projesinin back-end tarafı web api olup çeşitli platformlarda arayüz geliştirilebilmesine olanak sağlamaktadır, api katmanı temel olarak gelen ve giden verilerin mantıklarının sağlandığı ve controllers üzerinden belli ihtiyaçlar ve işlevler için oluşturulmuş metodlardan oluşmaktadır.

Used Technologies and Their Versions

C-Sharp Asp-net-web-api MSSQL Entity-Framework-Core Autofac Fluent-Validation [log4net

📌Veritabanı

7

📌Screenshot

Kullanıcı yaptığı istek için yetkilendirilmemiş ise "Yetkiniz Yok" hatası almaktadır.

Ekran Alıntısı

Kullanıcıya metod bazında araba ekleme yetkisi verildikten sonra ekleme işlemi başarılı şekilde gerçekleşti.

1

Çağrılan işlem cache de yok, ilk kez çağrılıyor veri database'den getiriliyor.

2

Aynı işlem çağrıldığında veri cache'den getiriliyor.

3

TransactionScope işlemin geri alınması

4

Silme metodu için log işlemleri log.json dosyasına kayıt ediliyor.

5

Performansı belirlenen değerin altına düşen işlemler için mesaj verme

6

Releases

No releases published

Packages

No packages published

Languages