net core体系-web应用程序-4net core2.0大白话带你入门-3asp.net core项目架构和配置文件解读
asp.net core web项目目录解读

Connected Services
和传统.net web项目相比,它的功能类似于添加webservice或者wcf service的引用。暂时用不到,有兴趣的小伙伴可以深入了解。右键这个目录可以看到我们可以添加一些服务,包括云服务。
Properties
这个目录下会有一个launchSettings.json文件。顾名思义,保存的是启动时需要的相关信息,包括环境变量,URL和开发端口等。这个文件在开发环境有用,用于配置调试环境。发布的时候,这个文件不会随着一起发布。

看上图,IDE vs2017提供了新的启动工具,一个是之前的IIS Express。另外一个就是本地自宿主的方式,我这里是SongLou.Web这个web项目。两种方式分别对应不同的配置。如果开发web项目,我建议使用自宿主的方式,因为这种方式可以指定IP,也可以使用fiddler代理设置域名,进而模拟线上环境。
wwwroot
这个目录里面存放的是静态资源,css,js,images等。
依赖项
跟传统的添加引用一样。可以从nuget添加,也可以引用类库。
Controllers、Models、Views
就不多说了
appsettings.json
这个文件和之前的web.config里面的<appSettings>节点功能一样。只不过这个文件里面是json格式的数据。
Bundleconfig.json
这个文件的功能和之前App_Start目录下的BundleConfig.cs文件的功能一样。只不过之前是配置在cs文件里面的,现在是配置在json文件里面的。比如js、css文件合并等功能。在这个文件里面可以进行相关的配置。下图是.net framework(非.net core)创建的mvc项目。
Program.cs
这个文件是.net core程序入口,默认使用kestrel作为web服务器。只要按F5运行,程序首先就会进入这个文件的Main方法。.net core程序部署时可以跟IIS没有任何关系。当部署在IIS上的时候,IIS只会用作反向代理,跟nginx的反向代理功能一样。后续章节会有详细介绍。

Startup.cs
在program.cs里面会指定采用这个文件作为启动文件。这个文件非常非常重要。
Startup.cs文件里的Startup构造方法。在这个构造方法里面可以预先读取配置文件以在后面的ConfigureServices方法里使用,比如appsettings.json文件。可以根据环境变量预先读取不同环境的appsettings.json配置文件,比如生产环境、预发环境。

public Startup(IConfiguration configuration, IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.product.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables(); Configuration = builder.Build();
}

Startup.cs文件里的ConfigureService方法。利用asp.net core自带的ioc功能,将接口和实现放在DI容器里面,也就是下图中的类型为IserviceCollection的形参,它就是一个DI容器(暂时先这么认为吧,实际是一个实现了接口IservceProvider的类)。还可以在ConfigureServices方法读取配置文件的内容,注意是内容不是文件,将配置信息注入到DI容器里面。

在Configure方法里可以设置中间件,用于拦截并处理http请求。一系列的中间件可以在这个方法里面添加。另外中间件还可以自定义,利用this实现扩展方法。
在Configure方法里还可以根据Environment类判断当前的开发环境。Environment类有获取和设置系统环境变量的功能。Linux系统下可以在/etc/profile这个文件设置,windows下就是系统环境变量,就不做介绍了。

截止到现在目录已经介绍完毕。相信大家对asp.net core应该有个初步的认识了。
接下来会详细介绍asp.net core的一些知识点。
net core体系-web应用程序-4net core2.0大白话带你入门-3asp.net core项目架构和配置文件解读的更多相关文章
- net core体系-web应用程序-4net core2.0大白话带你入门-2asp.net core新建项目
新建asp.net core项目 开发环境:Windows Server R2 2008 开发工具:Microsoft Visual Studio 2017 新建asp.net core项目 创建 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-7asp.net core日志组件(Logger和Nlog)
asp.net core日志组件 日志介绍 Logging的使用 1. appsettings.json中Logging的介绍 Logging的配置信息是保存在appsettings.json配置 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-6asp.net core配置文件
asp.net core配置文件 读取配置文件 asp.net core使用appsettings.json代替传统.net framework的web.config中的<appSettin ...
- net core体系-web应用程序-4net core2.0大白话带你入门-5asp.net core环境变量详解
asp.net core环境变量详解 环境变量详解 Windows操作系统的环境变量在哪设置应该都知道了. Linux(centos版本)的环境变量在/etc/profile里面进行设置.用户级的 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-4asp.net core配置项目访问地址
asp.net core配置访问地址 .net core web程序,默认使用kestrel作为web服务器. 配置Kestrel Urls有四种方式,我这里只介绍一种.其它方式可自行百度. 在Pr ...
- net core体系-web应用程序-4net core2.0大白话带你入门-11asp.net core 2.0 cookie的使用
asp.net core 2.0 cookie的使用 本文假设读者已经了解cookie的概念和作用,并且在传统的.net framework平台上使用过. cookie的使用方法和之前的相比也有所 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-10asp.net core session的使用
asp.net core session的使用 Session介绍 本文假设读者已经了解Session的概念和作用,并且在传统的.net framework平台上使用过. Asp.net core ...
- net core体系-web应用程序-4net core2.0大白话带你入门-9asp.net core服务的生命周期
asp.net core服务的生命周期 Transient:每一次GetService都会创建一个新的实例 Scoped:在同一个Scope内只初始化一个实例 ,可以理解为( 每一个request ...
- net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解
asp.net core 内置DI容器的一点小理解 DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...
随机推荐
- Centos、Ubuntu开启命令模式
由于安装的虚拟机本来就比较卡,开机加载图形界面,会变的更卡,使用下面的命令可将图形界面关闭. centos: 开机以命令模式启动,执行: systemctl set-default multi-use ...
- JAVA中获取键盘输入的方法总结
Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值的现成函数!下面介绍三种解决方法: 方法一: ...
- jmeter测试mysql遇到的问题
1. 1.防火墙未关 错误: Communications link failure The last packet sent successfully to the server was 0 mil ...
- RCNN--目标检测
原博文:http://www.cnblogs.com/soulmate1023/p/5530600.html 文章简要介绍RCNN的框架,主要包含: 原图-->候选区域生成-->对每个候选 ...
- RianbowDesign
换了很多个名字,最后换成这个. 主要考虑把自己所学的.所经历的都结合到一起,用这种方式来保持热情. 算是一个设计网站,管理咨询,游戏设计,平面logo之类,想最多地攘括到里边.就像自己不确定的主业一样 ...
- Confluence 6 查看站点状态
请注意,有关站点的活动信息在默认情况下是禁用的.请查看下面的说明. 如果这个插件被启用的话,有关站点的全局活动状态将会在你的 Confluence 站点中显示出来.显示的数据包括: 在给定的时间内有多 ...
- LeetCode(120):三角形最小路径和
Medium! 题目描述: 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] ...
- python网络爬虫笔记(二)
一.函数调用的默认设置 1.def enroll(name,grnder,age=4,city='Shanghai'): print (''name:',name) print (''gender', ...
- cf1121d 尺取
尺取,写起来有点麻烦 枚举左端点,然后找到右端点,,使得区间[l,r]里各种颜色花朵的数量满足b数组中各种花朵的数量,然后再judge区间[l,r]截取出后能否可以供剩下的n-1个人做花环 /* 给定 ...
- Linux之man命令详解及中文汉化
使用方法 Linux man中的man就是manual的缩写,用来查看系统中自带的各种参考手册 使用方法: man command 示例: [root@VM_0_13_centos ~]# man l ...