Asp Net Boilerplate - MultiTenancy, нулевой модуль и дополнительные модули - PullRequest
0 голосов
/ 10 июня 2018

Мы начали разработку нашего продукта с использованием шаблона AspNetBoilerplate & Module Zero.Таким образом, мы имеем каноническое

  1. Acme.Product.Application
  2. Acme.Product.Core
  3. Acme.Product.EntityFrameworkCore
  4. Acme.Product.Migrator
  5. Acme.Product.Web.Core
  6. Acme.Product.Web.Host (с Angular SPA)

В документации Asp Net Boilerplate & Module Zero указано, что

  1. Что этовозможно развитие как архитектуры Saas с использованием инфраструктуры для нескольких арендаторов (https://aspnetboilerplate.com/Pages/Documents/Multi-Tenancy).
  2. , что возможно создание модульного приложения (https://aspnetboilerplate.com/Pages/Documents/Module-System).

Мы не смогли найти какую-либо документацию или вопросы по SO 10 как включить многопользовательский режим для дополнительных модулей .

Допустим, мы решили разделить нашу доменную логику на отдельные сборки / модули:

Acme.Product.Accounting Acme.Product.HR

Оба модуля будут зависеть от Acme.Product.Core (который обеспечивает многопользовательскую работу).

namespace Acme.Product.Accounting {
  [DependsOn(typeof(Acme.Product.Core.ProductModule))]
  public class Module : AbpModule {

  }
}

namespace Acme.Product.HR {
  [DependsOn(typeof(Acme.Product.Core.ProductModule))]
  public class Module : AbpModule {

  }
}

Затем в модуле Acme.Product.HR:

namespace Acme.Product.HR.Domain.Models{
   public class Employee : Entity<Guid>, IMustHaveTenant {
   }
}

Нужно ли включить многопользовательскую аренду для Acme.Product.Accounting.Module & Acme.Product.HR.Module в конфигурации модуля, чтобы использовать многопользовательскую архитектуруопределены в ядре Acme.Product.Core.ProductModule?

Configuration.MultiTenancy.IsEnabled = true; 

Кроме того, нужно ли нам также определять объекты для нескольких арендаторов?

Configuration.Modules.Zero().EntityTypes.Tenant = typeof(Tenant);
Configuration.Modules.Zero().EntityTypes.Role = typeof(Role);
Configuration.Modules.Zero().EntityTypes.User = typeof(User);

Кто-нибудь успешно реализовал такой сценарий, когда дополнительные модули могли бы использовать инфраструктуру для нескольких арендаторов (динамические запросы, проверки и т. д.)?

...