【问题标题】:Best approach multidomain .NET Core application最佳方法多域 .NET Core 应用程序
【发布时间】:2019-01-08 13:57:10
【问题描述】:

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

应用程序是用asp.net core 2.2 编写的,使用razor 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,而不需要重新构建所有代码,那就太好了。

【问题讨论】:

  • 还需要帮助吗?
  • @MohamedElrashid 是的,请

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


【解决方案1】:

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

指南

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

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

  3. 为了嵌入“静态”文件 (js/css),我使用了这个:Including Static Resources

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

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

【讨论】:

    猜你喜欢
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    • 2019-05-03
    • 2017-01-07
    • 2019-12-16
    • 2021-10-30
    • 2010-10-01
    • 1970-01-01
    相关资源
    最近更新 更多