最佳方法多域 .NET Core 应用程序

Best approach multidomain .NET Core application

我正在构建多个共享一些 类 方法和信息的网站。最好的方法是什么?

该应用程序是使用 razor pagesasp.net core 2.2 中编写的。计划是与多个 websites/domains 共享一些代码,例如:

- components
- models
- some pages
- partials
- custom tag helpers 
- dbcontext

但是每个域都有自己的来源:

- styling (sccss)
- (external) libraries (like javascript plugins)
- some additional domain-specific pages
- appsettings.json
- _layout.cshtml

共享数据库(EF Core - DB 上下文)以及一堆静态文件(图像)。但是我们需要根据 domain/website.

设置 cookie 和会话数据

目前没有必要,但也许我们将来想通过多个域共享一个登录会话。

如果我们可以只更新一个域,使用一组共享的 dll,而不需要重建所有代码,那就太好了。

几个小时的研究和反复试验,给我带来了部分解决方案。首先,我将项目拆分为 Razor Class Library (RCL) 和共享的 pages/models/classes/tag helpers/extensions/styles 等。甚至 DbContext 也在其中 :)。另一个项目包含我的 'domain-specific overrides'。效果还不错。

向导

  1. 为了创建我的 RCL,我使用了这个:Creat reusable UI(当然...)

  2. 为了注册接口和 DbContext,我使用了这个:

  3. 并嵌入 'static' 个文件 (js/css) 我使用了这个:Including Static Resources

最后要做的是在网络服务器上注册我的共享 RCL 的 dll,并将不同的域项目上传到域。还没做过,不过好像挺简单的。

这个解决方案符合我的期望,但可能不是最好的方法。请随时post其他解决方案!