首页 > 解决方案 > 最佳方法多域 .NET Core 应用程序

问题描述

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

该应用程序是asp.net core 2.2razor pages. 该计划是与多个网站/域共享一些代码,例如:

- 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 上下文)以及一堆静态文件(图像)。但是我们需要为每个域/网站设置 cookie 和会话数据。

现在没有必要,但也许我们希望将来通过多个域共享登录会话。

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

标签: razorasp.net-core.net-coreentity-framework-coredbcontext

解决方案


几个小时的研究和反复试验,给我带来了部分解决方案。首先,我将项目拆分Razor Class Library (RCL)为共享页面/模型/类/标签助手/扩展/样式等。甚至DbContext在其中:)。另一个项目包含我的“特定于域的覆盖”。它工作得很好。

指导

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

  2. 为了注册接口和 DbContext,我使用了这个:如何注入服务...

  3. 为了嵌入“静态”文件(js/css),我使用了这个:包括静态资源

最后要做的是在网络服务器上注册我的共享 RCL 的 dll 并将不同的域项目上传到域。还没有这样做,但它似乎很容易。

这个解决方案满足了我的期望,但也许它不是最好的方法。请随时发布其他解决方案!


推荐阅读