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

时间:2019-01-08 13:57:10

标签: razor asp.net-core .net-core entity-framework-core dbcontext

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

使用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来仅更新一个域,而无需重建所有代码,那就太好了。

1 个答案:

答案 0 :(得分:0)

一些小时的研究和反复试验给我带来了部分解决方案。首先,我将项目与共享的页面/模型/类/标记帮助器/扩展名/样式等放在Razor Class Library (RCL)中。甚至DbContext也位于其中:)。另一个项目包含我的“特定于域的替代”。效果很好。

指南

  1. 要创建我的RCL,我使用了以下命令:Creat reusable UI(当然...)

  2. 要注册接口和DbContext,我使用了此命令:How to inject services...

  3. 然后使用以下方法嵌入“静态”文件(js / css):Including Static Resources

最后要做的是在网络服务器上注册共享RCL的dll,然后将不同的域项目上载到域。尚未完成,但这似乎很简单。

此解决方案符合我的期望,但也许不是最佳方法。请随时发布其他解决方案!