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自动检测当前的租户。如果您按上述方式进行配置,则还应将所有子域重定向到您的应用程序。要做到这一点;
- 您应该配置DNS以将所有子域重定向到静态IP地址。要声明“所有子域”,您可以使用通配符,例如* .mydomain.com。
- 您应该配置IIS将此静态IP绑定到应用程序。
可能还有其他的方法,但这是最简单的。
相同的“WebSiteRootAddress”设置也存在于.Web.Host项目中的appsettings.json中。此外,.Web.Host应用程序包含“ ClientRootAddress ”,如果通过Angular UI 使用该API,则使用该 ClientRootAddress。如果您不使用Angular UI,您可以忽略它。最后,“ CorsOrigins ”设置用于允许一些域用于跨源请求。当您在分开的服务器/域中托管您的Angular UI时,这也很有用。
ASP.NET Zero--解决方案结构(层)的更多相关文章
- 《ASP.NET Core In Action》读书笔记系列五 ASP.NET Core 解决方案结构解析1
创建好项目后,解决方案资源管理器窗口里我们看到,增加了不少文件夹及文件,如下图所示: 在解决方案文件夹中,找到项目文件夹,该文件夹又包含五个子文件夹 -Models.Controllers.Views ...
- ASP.NET SignalR2持久连接层解析
越是到年底越是感觉浑身无力,看着啥也不想动,只期盼着年终奖的到来以此来给自己打一针强心剂.估摸着大多数人都跟我一样犯着这样浑身无力的病,感觉今年算是没挣到啥钱,但是话也不能这么说,搞得好像去年挣到钱了 ...
- 转发 win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 解决方案
win7+iis7.5+asp.net下 CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NE ...
- 【翻译】Organizing ASP.NET MVC solutions 如何组织你的ASP.NET MVC解决方案
序言 时隔一年,弦哥重出江湖,对于我们学习.NET MVC那将有大大的好处,期待弦哥的重构系列.在弦哥与jerrychou的交流中提到了一篇文章http://lostechies.com/jimmyb ...
- 认识ASP.NET 5项目结构和项目文件xproj
ASP.NET 5 在项目结构上做了很大的改变,我们以前熟悉的目录结构与项目文件内容都不太一样了,本篇文章带大家了解 ASP.NET 5 到底跟以前有哪些不一样的地方. 我们先用 Visual Stu ...
- asp.netMVC中,视图层和控制器层的传值
Asp.Net Mvc 控制器与视图的数据传递 摘要:本文将讨论asp.net mvc框架中的数据传递. 数据传递也就是控制器和视图之间的交互,比如在视图中提交的数据,在控制器怎么获取,或者控制器从业 ...
- 1.2 认识ASP.NET MVC项目结构
1.开发环境 操作系统:xp.vista.windows 7.windows 8.windows server 2003|2008|2008R2|2012: 集成开发环境IDE: Vsiual Stu ...
- asp.net的Master-Content结构简介
在一个网站中,页面应该具有统一的布局方式,这些统一的布局内同将显示到所有的页面中,它提供了用户最基本的功能.Asp.Net2.0通过Master-Content结构提供了这样统一页面管理的机制. Ma ...
- 依赖反转原则DIP 与 asp.net core 项目结构
DIP 依赖反转原则 Dependency Inversion Principle 的定义如下: 高级别的模块不应该依赖于低级别的模块, 他们都应该依赖于抽象. 假设Controller依赖于Repo ...
- 分享一个ASP.NET的弹出层,比较好用!
网上的一些弹出层的控件多了去了,我很久之前用了一个,效果还不错,但如果应用到ASP.NET的话,会出现“弹出层内的控件runat='server'失效”的情况,具体情况我也不太会描述,但就是那些onc ...
随机推荐
- [Swift]LeetCode765. 情侣牵手 | Couples Holding Hands
N couples sit in 2N seats arranged in a row and want to hold hands. We want to know the minimum numb ...
- [Swift]LeetCode1022. 从根到叶的二进制数之和 | Sum of Root To Leaf Binary Numbers
Given a binary tree, each node has value 0 or 1. Each root-to-leaf path represents a binary number ...
- Redis 设计与实现 (三)--持久化
RDB 持久化 一.生成RDB cmd:SAVE --阻塞进程,执行完,才能有效接收客户端命令. cmd: BGSAVE --非阻塞,开启子进程保存. 客户端如果发送SAVE和BGSAVE命令直 ...
- .net core consul 服务配置 服务发现 服务健康检测 服务变更加载
准备环境 安装consul之后 1. 创建一个.net core webapi 举例为UsercenterService 2. nuget引用Consul组件 https://github.com/ ...
- ASP.NET Core 2.1 Web API + Identity Server 4 + Angular 6 + Angular Material 实战小项目视频
视频简介 ASP.NET Core Web API + Angular 6的教学视频 我是后端开发人员, 前端的Angular部分讲的比较差一些, 可以直接看代码!!!! 这是一个小项目的实战视频, ...
- 『2019/3/19 USACO测试 反思与总结』
2019/3/8 USACO测试 这是第三次考试了,不过这一次没有上一次考得好,也算是比较失误的,有一道题思路对但是写挂了. 还是看一下试题安排: 题号 试题分组 考察算法 思维难度 代码难度 1 银 ...
- Unity GC 优化要点
参考:http://blog.csdn.net/znybn1/article/details/76464896 为啥要点?因为讲的重点. 游戏运行时来存储数据,当这些数据不再被使用时,存储这些数据的内 ...
- EF架构~TransactionScope与SaveChanges的关系
回到目录 TransactionScope是.net环境下的事务,可以提升为分布式事务,这些知识早在很久前就已经说过了,今天不再说它,今天主要谈谈Savechanges()这个方法在Transacti ...
- Linux系统的数据写入机制--延迟写入
我们都知道,在Linux关机的之前都会要运行一个命令那就是sync,这个命令是同步的意思,那为什么要运行这个?而且之前的数据改变我们已经看见了,为什么还要运行这个命令?要回答这个问题就要说一下Linu ...
- 设计模式总结篇系列:外观模式(Facade)
张三自从毕业后开始做软件开发,做着做着发现不爽了,钱赚不了太多,头发也白了.于是拿着一点小资本,想着做点小生意.瞅着眼前的餐饮行业还不错,于是打算开一家餐馆.开参观可不是一件容易的事,仅仅行政类的审批 ...