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]LeetCode811. 子域名访问计数 | Subdomain Visit Count
A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...
- JDBC也就那么回事
JDBC 一.JDBC概述 为什么要使用JDBC? JDBC:Java DataBase Connectivity,是SUN公司提供的一套操作数据库的标准规范(技术). JDBC与数据库驱动的关系:接 ...
- Ubuntu12.04中的虚拟机安装Ubuntu16.04,并实现远程控制16.04
目录 1.设置网络连接 1.1 VMware虚拟机网络地址设置 1.2 设置虚拟机内Ubuntu16.04的网络模式 未开机状态下 开机状态下 1.3 查看虚拟机中Ubuntu16.04的IP 2.进 ...
- Python内置函数(60)——staticmethod
英文文档: staticmethod(function) Return a static method for function. A static method does not receive a ...
- 【Java基础】【21IO(字符流)&字符流其他内容&递归】
21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写 ...
- tmux的详细讲解
1. tmux介绍 tmux是一个优秀的终端复用软件,split窗口.可以在一个terminal下打开多个终端. 即使非正常掉线,也能保证当前的任务运行,这一点对于远程SSH访问特别有用,网络不好的情 ...
- 补习系列(8)-springboot 单元测试之道
目录 目标 一.About 单元测试 二.About Junit 三.SpringBoot-单元测试 项目依赖 测试样例 四.Mock测试 五.最后 目标 了解 单元测试的背景 了解如何 利用 spr ...
- Thread类详解 多线程中篇(二)
Java.lang.Thread是Java应用程序员对Java多线程的第一站,Thread就是对Java线程本身的抽象 所以在Java中的线程编程概念中,一个Thread实例 == 一个线程 线程有哪 ...
- 利用sklearn对MNIST手写数据集开始一个简单的二分类判别器项目(在这个过程中学习关于模型性能的评价指标,如accuracy,precision,recall,混淆矩阵)
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- [Luogu4705] 玩游戏
Description 给定两个长度分别为 \(n\) 和 \(m\) 的序列 \(a\) 和 \(b\).要从这两个序列中分别随机一个数,设为 \(a_x,b_y\),定义该次游戏的 \(k\) 次 ...