在写代码之前,有必要了解一下.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. JVM笔记--如果你写JVM,最需要考虑的重要结构是什么?

    开局一张图,前面已经从每一部分解析过JVM的内存结构了,现在按照顺序来分析: 整体上来看:类文件从类加载子系统,加载完成之后,主要存放在方法区(JRockit和H9没有方法区,这里指的是HotSpot ...

  2. 如何在 ASP.Net Web Forms 中使用依赖注入

    依赖注入技术就是将一个对象注入到一个需要它的对象中,同时它也是控制反转的一种实现,显而易见,这样可以实现对象之间的解耦并且更方便测试和维护,依赖注入的原则早已经指出了,应用程序的高层模块不依赖于低层模 ...

  3. [源码解析] 并行分布式框架 Celery 之架构 (1)

    [源码解析] 并行分布式框架 Celery 之架构 (1) 目录 [源码解析] 并行分布式框架 Celery 之架构 (1) 0x00 摘要 0x01 Celery 简介 1.1 什么是 Celery ...

  4. 什么是SSR SSR有什么用 如何使用使用SSR

    什么是SSR 以下信息来自维基百科: Shadowsocks(简称SS)是一种基于Socks5代理方式的加密传输协议,也可以指实现这个协议的各种开发包.当前包使用Python.C.C++.C#.Go语 ...

  5. Python数据分析入门(一):搭建环境

    Python版本: 本课程用到的Python版本都是3.x.要有一定的Python基础,知道列表.字符串.函数等的用法. Anaconda: Anaconda(水蟒)是一个捆绑了Python.cond ...

  6. Android Studio中Switch控件有关 textOn 和 textOff 用法

    •属性 textOn:控件打开时显示的文字 textOff:控件关闭时显示的文字 showText:设置是否显示开关上的文字(API 21及以上) •用法 <?xml version=" ...

  7. Spring Cloud 升级之路 - 2020.0.x - 1. 背景知识、需求描述与公共依赖

    1. 背景知识.需求描述与公共依赖 1.1. 背景知识 & 需求描述 Spring Cloud 官方文档说了,它是一个完整的微服务体系,用户可以通过使用 Spring Cloud 快速搭建一个 ...

  8. java面试-阻塞队列

    一.阻塞队列 当阻塞队列是空,从队列中获取元素的操作会被阻塞 当阻塞队列是满,往队列中添加元素的操作会被阻塞 二.为什么用,有什么好处? 我们不需要关心什么时候需要阻塞线程,什么时候需要唤醒线程,因为 ...

  9. JS基础学习第三天

    条件分支语句switch语句语法: 1234567891011121314 switch(条件表达式){ case 表达式: 语句... break; case 表达式: 语句... break; c ...

  10. 一文搞定zuul使用

    前言 在深入探讨Spring Cloud Gateway的细节之前,让我们了解有关反向代理和api网关模式的一些基础知识. 什么是反向代理? 反向代理是代表其他事物进行请求的事物.它的行为更像是简单的 ...