Projemi "Domain-Driven-Design/DDD" temel alarak yaptım. Proje ile ilgili açıklamalarıma projemin ReadMe.txt'sinden ulaşabilirisiniz. Ayrıca projemde temel olarak aldığım ve kullandığım teknolojiler ile ilgili yaptığım dökümantasyonlarımı aşağıdaki kısımda inceleyebilirsiniz.
Domain-Driven Design=> RidvanOrun/GitBook/DDD
Entity Framework => RidvanOrun/GitBook/EF
SOLID Prencibles => RidvanOrun/GitBook/SOLID
Asp.NetCore, Asynchronous Programming, View Component => RidvanOrun/GitBook/.NetCore
Generic Repository Design Pattern, Unit Of Work =>RidvanOrun/GitBook/DesingPattern
DTO, VM, AutoMapper =>RidvanOrun/GitBook/ObjectOperation
Eric Evans,Tackling Complexity in the Heart of Software adlı kitabında Domain Driven Design'dan bahsetmiş ve karmaşık sistemlerde oluşan problemlerin kaynağının, çoğunlukla domainlere bölünerek ve orada çözülmesi gerektiğini savunmuştur. Bunun da ancak, business tarafı ile teknik tarafın ortak dili konuşmasından ve yaşanılan sorunların doğru bir şekilde anlaşılmasıyla birlikte projenin doğru modellenmesiyle gerçekleşebileceğini ortaya koymuştur. DDD'nin temel mantığı uygulama içerisinde mantıksal olarak birbiriyle en alakalı birimler aynı domainde tutulmasıdır. İş kuralları mantıksal olarak domainlere dağıtılır.