Skip to content

direncancatalkaya/ExtendedMultitenancy

Repository files navigation


Logo

Extended Multi Tenancy

Kolay Multi Tenant Uygulama Yönetimi
Döküman Görüntüle »

· Bug Bildir · Geliştirme Önerisi Yap

İçerik

Proje Hakkında

Bu kütüphane Ef core eklentisi olarak, multi tenant sistemlerin ortak ihtiyaçları için geliştirilmektedir.Data isolation, soft delete pattern ve auditlog işlemleri için çözüm sunar. Açık kaynaktır. İstediğiniz şekilde kendi sisteminiz içerisinde geliştirmeye devam edebilir. Kodlar üzerinde değişiklik yapıp kullanabilirsiniz.

Gereklilikler

-- Entity Framework Core

Kurulum

  1. Paketi nuget üzerinden yüklemek için
dotnet add package DRN.EntityFramework.ExtendedMultiTenancy

Kullanım

Paketi yükledikten sonra, DbContext'inizi "MultiTenancyDbContext" classından base alacak şekilde yapılandırın. class 2 adet generic parametre alır. TenantId parametresi, sisteminizdeki kiracıların primary key tipidir. int, long veya Guid olması uygun olacaktır. UserId parametresi, kullanıcı hesaplarının primary key tipidir yine int, long veya Guid olması uygun olacaktır. isAdminContext parametresini true yaparak, sistemdeki bütün özellikleri devre dışı bırakabilir, anlık olarak normal dbcontext gibi kullanabilirsiniz. Sistem size entity classlarınızda kullanmak üzere interfaceler sağlayacaktır. Entitylerinizi bu classlardan base alarak, interfacede geçen özelliği otomatize edilmiş şekilde kullanmaya başlayabilirsiniz.

Logo

Logo

NOT : Her seferinde interfacelerdeki generic parametreleri doldurmak zorunda değilsiniz. Parametre tiplerini belirledikten sonra sistem interfacelerinden belirlenmiş parametrelerle base alan interfaceler üretip kendi sisteminiz için oluşturabilirsiniz.

Multi Tenancy Data isolation

Multi tenant özelliğe sahip olan entity classlarınızı ITenant interfaceinden base aldırmanız yeterlidir. Bundan sonra database add ve update işlemlerinde otomatik olarak nesne, işlemi o anda yapan tenanta ait olacak ve sorgularda sadece o tenanta görünecektir.

Logo

Soft Delete

Soft Delete özelliğe sahip olan entity classlarınızı ISoftDelete interfaceinden base aldırmanız yeterlidir. Bundan sonra, silme işlemlerinde otomatik olarak silinen nesnenin isdeleted özelliği true olacak ve çekilen sorgularda gözükmeyecektir. Silme işlemini yapan userid ve işlem tarihinide tutar. Eğer silinen nesneye erişmek isterseniz çekilen sorguda, .IgnoreQueryFilters() fonksiyonunu kullanabilirsiniz.

Dikkat !! : IgnoreQueryFilters fonksiyonunu kullanmak multi tenant filtrelemesinide kaldıracaktır. "(TenantId == CurrentTenantId)" benzeri eklemeyi yapmayı unutmayın.

Logo

Audit Log

Audit log tutmak istediğiniz entity classlarınızı IAuditLog interfaceinden base aldırmanız yeterlidir. Ekleme tarihi, Ekleyen userId, Güncelleme tarihi, Güncelleyen userId otomatik olarak tutulacaktır.

Logo

Yol Haritası

Bilinen Hatalar Önerilen geliştirmeler ve bilinen hatalar.

Lisans

MIT Lisansı altında dağıtılmaktadır. Daha fazla bilgi için "LİSANS" bölümüne bakın.

Iletişim

Direncan Çatalkaya - direncan.catalkaya@gmail.com

Project Link: https://github.com/direncancatalkaya/ExtendedMultiTenancy

About

Multi Tenant Application Database Administration Tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages