ASP.NET Zero--解决方案结构(层)

时间:2023-03-10 06:15:42
ASP.NET Zero--解决方案结构(层)

解决方案结构(层)

创建和下载项目后,您将具有如下所示的解决方案结构:

ASP.NET Zero--解决方案结构(层)

解决方案有8个项目:

  • Core项目包含域层类(如 实体 和 域服务)。
  • Application项目包含应用程序逻辑(如应用程序服务和 DTO)。
  • EntityFrameworkCore项目包含您的DbContext, 存储库实现,数据库迁移和其他EntityFramework Core特定的概念。
  • Web.Mvc项目包含用于后端和前端应用程序的演示/ API层(控制器,视图,javascripts,样式,图像等)。
  • Web.Host项目不包含任何视图/ css / js文件。相反,它只是将应用程序用作API。因此,任何设备都可以将您的应用程序。
  • Web.Common项目包含Mvc和Host项目使用的常用类。
  • Migrator项目是运行数据库迁移的控制台应用程序。
  • 测试项目包含单元和集成测试。

应用

ASP.NET Zero解决方案包含3个应用:

  • 前端应用程序:可用于为应用程序创建公共网站或着陆页。
  • 后端应用程序:这是用户名和密码输入的应用程序。
  • Migrator:运行数据库迁移的控制台应用程序。

多租户

多租户用于轻松构建SaaS(软件即服务)应用程序。通过这种技术,我们可以部署单个应用程序来服务于 多个客户。每个租户都有自己的角色,用户和设置。

ASP.NET Zero的所有代码库被开发为多租户。但是,如果您正在开发单租户应用程序,则可以通过单行 配置禁用它 。当您禁用它时,所有多租户的东西将被隐藏,不可用。如果多租户被禁用,将会有一个名为Default的租户。

多租户应用有两种观点:

  • Host:管理租户和系统。
  • Tenant:使用应用程序功能。

如果您正在构建多租户应用程序,请阅读 租户文档。

网站根URL

Web.Mvc项目中的appsettings.json包含一个名为“ WebSiteRootAddress ” 的设置,它存储Web应用程序的根URL:

“WebSiteRootAddress”:“http:// localhost:62114 /”

它用于计算应用程序中的一些URL。因此,您需要在部署时进行更改。对于多租户应用程序,此URL可以包含动态租户(tenancy)名称。在这种情况下,请将{TENANCY_NAME}替换为租户名称:

“WebSiteRootAddress”:“http:// {TENANCY_NAME} .mydomain.com /”

因此,AspNet Zero可以从URL自动检测当前的租户。如果您按上述方式进行配置,则还应将所有子域重定向到您的应用程序。要做到这一点;

  1. 您应该配置DNS以将所有子域重定向到静态IP地址。要声明“所有子域”,您可以使用通配符,例如* .mydomain.com。
  2. 您应该配置IIS将此静态IP绑定到应用程序。

可能还有其他的方法,但这是最简单的。

相同的“WebSiteRootAddress”设置也存在于.Web.Host项目中的appsettings.json中。此外,.Web.Host应用程序包含“ ClientRootAddress ”,如果通过Angular UI 使用该API,则使用该 ClientRootAddress。如果您不使用Angular UI,您可以忽略它。最后,“ CorsOrigins ”设置用于允许一些域用于跨源请求。当您在分开的服务器/域中托管您的Angular  UI时,这也很有用。