Skip to content

Latest commit

 

History

History
65 lines (36 loc) · 2.22 KB

README.md

File metadata and controls

65 lines (36 loc) · 2.22 KB

ReCapProject

rentacar

'Rent A Car'

'Katmanlı' 'OOP' Sistemim dört katman oluşuyor:

1. Entities

2. Data Access

3. Business

4. Core

Her katmanda ise soyut işlemleri tanımlamak için Abstract, somut işlemleri tanımlamak için Concrete klasörü bulunmakta.

Entities

Bu katmanın soyut kısmında tüm varlıkların referansını tutabilecek bir IEntity interface' i; somut kısmında ise oluşturulacak Car (araba varlıgı için ) entity class'ları bulunmakta. Veritabanı tablolarına denk gelen entitylerin API, Console veya UI projeleri için kullanılan request/response modellerinin ve DTO(Data transfer object) larının bulunduğu katmandır

Data Access

Bu katmanda ileride belli koşullara göre kullanılacak/değiştirişlecek database yöntem çeşitlerine yer verilen kısımdır. Veri erişim katmanıdır. Veritabanı işlemlerinin (CRUD Operations) gerçekleştirildiği katmandır.

Business

Bu katman Abstract soyut kısım, Concrete somut kısım olmak üzere iki kısımndan oluşmaktadır. İş kodlarımızı bu katmanda yazıyoruz. DataAccess in veritabanından aldığı verileri işleyip kontrolden geçiren katmandır.

Soyut kısımdaki ICarService interface' i, somut kısımda bulunan CarManager.cs referanslarını tutmak ve eş görevleri paylaştırmak üzere üretilmiştir.

CarManager.cs' de bulunan getAll() metodunda tüm bilgileri çağırma yapılmıştır. Son olarakta ConsoleUI da sistem simülasyonu yapılmıştır.

Core

Bu katmanda genel olarak ilgili proje veya farklı yapılarla ortak kullanlan bölümdür. Evrensel kodlarimizi (tüm projelerde kullanilacak kodlarimizi) yazdigimiz kisimdir Core katmani; burada hangi katman ile ilgilenceksek onunla ilgili bir klasor ekliyoruz.. //core katmanina bir kere kod yazariz bütün projelerde kullanabilriiz

``! Core : Evrensel katmanimizdir ve Core katmanı diger katmanları referans almaz !``

Content Of This Project

Generic Repository Design

Generic Constraint

LINQ

Entity Framework

Core Layer

Web API

Autofac

FluentValidation

AOP Support

Validation