在写代码之前,有必要了解一下.net帮我们生成的文件都是干什么用的,在开发过程中他们都负责那些地方(下面以MVC模板举例)。

先简单介绍一下什么是MVC,MVC(model-view-controller)是开发web应用程序历史中积淀的一个比较清晰的文件体系,model层用于存放跟数据库交互的代码,view层用于存放前端类html代码,controller层用于存放页面访问处理逻辑的代码,这也是整个web开发的核心之一,这三块撑起了一个web应用程序体系。

了解了这个,我们继续看上图,最开始的文件就是这些,先看第一个,Controller文件夹,我们约定俗成的,该文件夹存放控制器类,也就是MVC中的C,Models文件夹和Views文件夹也是同理。

​obj文件夹存放系统数据,我们不做深究,初学者开发中也不会跟这个文件夹打交道​。

​Properties文件夹存放了属性配置文件,它里边自带了一个启动配置文件launchSettings.json,用于配置启动项目的一些初始化信息,

​我们可以修改里边的启动信息,达到自己的一些需求,先来看一下它的原始代码​:    ​

说到启动,就要先了解一下.netCore Web应用程序的启动方式,它的启动方式有两种,一种是它本身,一种是托管到IIS,.netCore Web应用程序它本身就是一个命令行程序,它内部集成了一个小服务器,启动后就可以通过上述配置文件中的路径去访问​。IIS那就不用说了,windows上的祖传服务器,专门用于托管web​应用程序。

​明白了启动方式,我们再来看上图,首先有一个单独的​配置组:iisSettings,通过这个配置组,我们可以修改IIS的访问端口,如果不改,启动后我们可以通过http://localhost:37259或者http://localhost:44367这两个端口去访问我们的网站,建议不要修改,因为容易引发端口冲突,原始配置就是最安全的​;

下面是一组profiles配置,从这里就可以看到,一种是IIS配置,一种是项目名本身的配置,这对应了.netCore Web应用程序的两种启动方式。我们主要介绍一下launchBrowser和environmentVariables这两个配置项,launchBrowser为true,指示启动项目是是否同时打开浏览器,定位到项目页面,为false指示单纯的启动项目。environmentVariables主要用于配置当前启动环境,开发过程中就是 Development开发环境,如果项目完成后上线使用,就要改为Product或者自定义环境名称,这两者的主要区别就是是否把错误信息直接展示到网站页面,当项目处于上线生产期,将错误信息展示给外界是极度危险的。

下面介绍这几个文件,appsettings.json/appsettings.Development.json在代码开发中我们要用的配置文件,它的前身是ASP.NETWeb应用程序的WebConfig文件。

Program.cs文件是程序启动的入口文件,Startup.cs文件就比较重要了,配置依赖注入,中间件等信息,都在这个代码里边。(后续会讲一下依赖注入,中间件)

项目名.csproj文件用于绑定项目的依赖项,这个也会在后续进行讲解。

Asp.NetCore Web开发之初始文件解析的更多相关文章

  1. Asp.NetCore Web开发之模型验证

    在开发中,验证表单数据是很重要的一环,如果对用户输入的数据不加限制,那么当错误的数据提交到后台后,轻则破坏数据的有效性,重则会导致服务器瘫痪,这是很致命的. 所以进行数据有效性验证是必要的,我们一般通 ...

  2. Asp.NetCore Web开发之创建项目

    ​这一节,开始讲一下如何创建一个Asp.netCore Web项目,有两种常用的方式,一种是通过.NetCore SDK使用命令创建,另一种如果你使用的VisualStudio,可以直接根据引导创建. ...

  3. Asp.NetCore Web开发之路由

    接着讲asp.net core web开发,这节讲路由系统(Route). 在asp.net core中通过路由来将请求映射到对应的action,主要用到两个中间件,UseRouting()和UseE ...

  4. Asp.NetCore Web开发之会话技术

    这节讲一下会话技术,首先了解一下什么是会话,会话是指浏览器打开到关闭的过程中,多次与服务器发送接收数据的过程. 由于HTTP是无状态协议,一次请求响应过后,产生的数据就随之释放了,可是在某些情况下,我 ...

  5. Asp.NetCore Web开发之跨域问题

    在前后端分离的web开发中,解决跨域问题是不可避免的,为什么会出现跨域问题呢,这主要是因为web中的"同源策略",浏览器出于安全原因,不让用户随便访问不同于当前站点的资源,也就是说 ...

  6. Asp.NetCore Web开发之RazorPage

    这节讲一下Razor页面. 首先要明确,Razor 不是一种编程语言.它是服务器端的标记语言,配合C#语言,就可以像PHP语言语言一样(但它们并不相同),处理HTML页面逻辑.它是Asp.NetCor ...

  7. Asp.NetCore Web应用程序中的请求管道和中间件

    你是否会迷惑当我们请求一个ASP.NetWeb应用程序以后,它是怎么处理这些请求的,后台是怎么工作的,今天就讲一下Asp.NetCore Web应用程序中的请求处理过程. 上一节,我们讲到,Start ...

  8. ASP.NET Web网站中App_Code文件夹的作用及使用场景

    原文地址:Web Site项目和ASP.NET Web Application中App_Code文件夹的作用作者:宾的宾 我现在要建一个ASP.NET的网站了,不难吧,开始动手.如下图: 这种方法建立 ...

  9. asp.net web开发——文件夹的上传和下载

    ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现. 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压. ASP.NE ...

随机推荐

  1. golang float32/64转string

    v := 3.1415926535 s1 := strconv.FormatFloat(v, 'E', -1, 32)//float32s2 := strconv.FormatFloat(v, 'E' ...

  2. Go语言中利用append巧妙的删除slice切片中的元素

    package main import ( "fmt" ) //删除函数 func remove(s []string, i int) []string { return appe ...

  3. Django中间件(中间件版登陆验证、访问频率限制)

    一.介绍 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子.它是一个轻量.低级别的插件系统,用于在全局范围内改变Django的输入和输出.每个中间件组件都负责做一些特定的功能. ...

  4. Java基础API

    API API概述 API (Application Programming Interface) :应用程序编程接口 java中的API指的就是 JDK 中提供的各种功能的 Java类,这些类将底层 ...

  5. Forms身份验证 知识总结

    最简单的Forms验证实现方法:FormsAuthentication.SetAuthCookie()方法,传递一个登录名即可FormsAuthentication.SignOut()方法退出Form ...

  6. github文件快速下载

    目录 一,提升加载速度 二,提升下载速度 只是想快速下载文件的直接看第二部分. github加载速度慢究其原因还是伟大的墙的存在.我们需要赞美墙,但就算墙很伟大,问题还是要解决的. 有问题就解决问题, ...

  7. Ubuntu-搭建Clang Static Analyzer环境

    其实也就是一个开源的漏洞扫描器 专门扫描C/C++ 0BJECT-C++这种,实不相瞒我搭建了5天这个环境,最后我发现了一种超级方便的办法 前面怎么走的坑还是不分享了吧,由于没有看到前面很多人的办法或 ...

  8. 冒泡排序(BubbleSort)

    介绍: 冒泡排序是一种最基础的交换排序(两两比较待排序的关键字,交换不满足次序要求的那对数,直到整个表都满足次序要求为止),工作方式如同碳酸饮料中的二氧化碳气泡最终会上浮到顶端一样,故名"冒 ...

  9. 【2020.8.23NOIP模拟赛】失落

    [ 2020.8.23 N O I P 模 拟 赛 ] 失 落 [2020.8.23NOIP模拟赛]失落 [2020.8.23NOIP模拟赛]失落 题目描述 出题人心情很失落,于是他直接告诉你让你求出 ...

  10. [Fundamental of Power Electronics]-PART II-9. 控制器设计-9.3 关键项1/(1+T)和T/(1+T)以及闭环传递函数的构建

    9.3 关键项\(1/(1+T)\)和\(T/(1+T)\)以及闭环传递函数的构建 从式(9.4)到(9.9)的传递函数可以很容易的由图形代数方法进行构建.假设我们已经分析了反馈系统模块,并且已经画出 ...