解决方案结构(层)
创建和下载项目后,您将具有如下所示的解决方案结构:
解决方案有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自动检测当前的租户。如果您按上述方式进行配置,则还应将所有子域重定向到您的应用程序。要做到这一点;
- 您应该配置DNS以将所有子域重定向到静态IP地址。要声明“所有子域”,您可以使用通配符,例如* .mydomain.com。
- 您应该配置IIS将此静态IP绑定到应用程序。
可能还有其他的方法,但这是最简单的。
相同的“WebSiteRootAddress”设置也存在于.Web.Host项目中的appsettings.json中。此外,.Web.Host应用程序包含“ ClientRootAddress ”,如果通过Angular UI 使用该API,则使用该 ClientRootAddress。如果您不使用Angular UI,您可以忽略它。最后,“ CorsOrigins ”设置用于允许一些域用于跨源请求。当您在分开的服务器/域中托管您的Angular UI时,这也很有用。