Kurumsal, Katmanlı Mimari yapısı kullanılarak SOLID kuralları dahilinde oluşturulmuş, C# dili ile yazılmış Banka müşteri takip fikri üzerinden ilerlenmiştir.
"Her şey mümkün olduğunca sadeleştirilmeli, fakat basitleştirilmemelidir." Albert Einstein
- Core: Projenin çekirdek katmanı, evrensel operasyonlar için kullanılmaktadır. Core katmanını diğer herhangi bir projenizde kullanabiliriz.
- DataAccess: Projenin, Veritabanı ile bağını kuran katmandır.
- Entities: Veritabanındaki tablolarımızın projemizde nesne olarak kullanılması için oluşturulmuştur. DTO nesnelerinide barındırmaktadır.
- Business: Projemizin iş katmanıdır. Türlü iş kuralları; Veri kontrolleri, validasyonlar, IoC Container'lar ve yetki kontrolleri
- WebAPI: Prjenin Restful API Katmanıdır.
- .Net Core 5
- Docker
- Azure SQL Database
- Result Türleri
- Restful API
- Interceptor
- Autofac
- IoC (Inversion of Control)
- AOP (Aspect Oriented Programing / Yazılım Geliştirme Yaklaşımı)
- Caching
- Exception
- Logging
- Performance
- Transaction
- Validation
- Fluent Validation
- Cache yönetimi
- JWT Authentication
- Repository Design Pattern
- Cross Cutting Concerns
- Caching
- Logging
- Validation
- ORM
- Dapper
- Entity Framework
- Extensions
- Claim
- Claim Principal
- Exception Middleware
- Service Collection
- Error Handling
- Error Details
- Validation Error Details
- Claim
Kurumsal Mimariler İçin Sql Server Veri Tabanı Tasarımı
Gereksinim: XBankası olarak müsterilerimizin tabakibini yapabilmeliyiz.
- İki tip müşterimiz mevcut. Gerçek ve Tüzel Müşteriler.
- Gerçek Müşteri; MüşteriNo, Ad, Soyad, TcKimlikNo alanlarına sahiptir.
- Tüzel Müşteri; MüşteriNo, Unvan, VergiNo alanlarına sahiptir.
- Müşterilerin adreslerini takip edebilmeliyiz
- Tüzel Müşterilerin her 6 aylık dönemde bilanço bilgilerini kaydetmeliyiz. Örneğin 3 Yıllık bir tüze müşterinin her 6 aya denk gelen 6 adet bilanço kaydı olmalıdır. Bilanço bilgisi olarak bilanço tutarı ve bilanço tarihi bilgisini tutmak yeterlidir.
- Gerçek müşterilerin bazıları Ticari Faaliyet gerçekleştirmektedir. Bu tip müşterilerimiz için de bilanço takibi yapabilmeliyiz.
- Bir kişinin veya kurumun bankamızın müşterisi olabilmesi için çeşitli kanallar mevcuttur (İnternet, Şube vb.). Müşterinin hangi kanaldan bankamıza ilk kez katıldığı bilgisini de tutmak istiyoruz.
- Diyelim ki Yeni bir müşteri tipi (Sendiklar) eklenmesi gerekiyor yeni kurallarla/yasalarla bu ekleyeceğimiz alan bizim bu zamana kadar yaptığımız sistemde hiçbir şeyin değişmemesi gerekir. O yüzden bu şekilde yaptıkça Solid kurallarına uymuş oluruz.