Asp.NetCore Web开发之初始文件解析
在写代码之前,有必要了解一下.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开发之初始文件解析的更多相关文章
- Asp.NetCore Web开发之模型验证
在开发中,验证表单数据是很重要的一环,如果对用户输入的数据不加限制,那么当错误的数据提交到后台后,轻则破坏数据的有效性,重则会导致服务器瘫痪,这是很致命的. 所以进行数据有效性验证是必要的,我们一般通 ...
- Asp.NetCore Web开发之创建项目
这一节,开始讲一下如何创建一个Asp.netCore Web项目,有两种常用的方式,一种是通过.NetCore SDK使用命令创建,另一种如果你使用的VisualStudio,可以直接根据引导创建. ...
- Asp.NetCore Web开发之路由
接着讲asp.net core web开发,这节讲路由系统(Route). 在asp.net core中通过路由来将请求映射到对应的action,主要用到两个中间件,UseRouting()和UseE ...
- Asp.NetCore Web开发之会话技术
这节讲一下会话技术,首先了解一下什么是会话,会话是指浏览器打开到关闭的过程中,多次与服务器发送接收数据的过程. 由于HTTP是无状态协议,一次请求响应过后,产生的数据就随之释放了,可是在某些情况下,我 ...
- Asp.NetCore Web开发之跨域问题
在前后端分离的web开发中,解决跨域问题是不可避免的,为什么会出现跨域问题呢,这主要是因为web中的"同源策略",浏览器出于安全原因,不让用户随便访问不同于当前站点的资源,也就是说 ...
- Asp.NetCore Web开发之RazorPage
这节讲一下Razor页面. 首先要明确,Razor 不是一种编程语言.它是服务器端的标记语言,配合C#语言,就可以像PHP语言语言一样(但它们并不相同),处理HTML页面逻辑.它是Asp.NetCor ...
- Asp.NetCore Web应用程序中的请求管道和中间件
你是否会迷惑当我们请求一个ASP.NetWeb应用程序以后,它是怎么处理这些请求的,后台是怎么工作的,今天就讲一下Asp.NetCore Web应用程序中的请求处理过程. 上一节,我们讲到,Start ...
- ASP.NET Web网站中App_Code文件夹的作用及使用场景
原文地址:Web Site项目和ASP.NET Web Application中App_Code文件夹的作用作者:宾的宾 我现在要建一个ASP.NET的网站了,不难吧,开始动手.如下图: 这种方法建立 ...
- asp.net web开发——文件夹的上传和下载
ASP.NET上传文件用FileUpLoad就可以,但是对文件夹的操作却不能用FileUpLoad来实现. 下面这个示例便是使用ASP.NET来实现上传文件夹并对文件夹进行压缩以及解压. ASP.NE ...
随机推荐
- Java中的Set集合
Set接口简介 Set接口和List接口一样,同样继承自Collection接口,它与Collection接口中的方法基本一致,并没有对Collection接口进行功能上的扩充,它是比Collecti ...
- Python打包之setuptools
参考链接1 参考链接2 参考链接3 一.setuptools介绍 Setuptools是Python Distutils的加强版,使开发者构建和发布Python包更加容易,特别是当包依赖于其他包时.用 ...
- Reverse 高校网络信息安全运维挑战赛
Reverse 高校网络信息安全运维挑战赛 1 signed int sub_403CC0() 2 { 3 unsigned int v0; // eax 4 int key_lens; // eax ...
- PTA 中序输出叶子结点
6-8 中序输出叶子结点 (10 分) 本题要求实现一个函数,按照中序遍历的顺序输出给定二叉树的叶结点. 函数接口定义: void InorderPrintLeaves( BiTree T); T ...
- vue+django实现websocket连接
一.概述 在项目中,需要使用websocket,来展示一些实时信息. 这里使用django 3.1.5 二.django项目 安装模块 pip3 install django-cors-headers ...
- irace package -- 参数调优神器
目录 1. irace 是什么 2. 安装 irace 3. irace 的运行机制 4. irace 的配置环境 4.1. parameters 4.2. target algorithm runn ...
- cordova app打包apk签名
首先执行:ionic cordova build android --prod --release,执行完会在以下目录生成apk文件( --prod 用以压缩) 然后使用keytool生成keysto ...
- 经常问到的 BFC 和 IFC 是什么?
什么是BFC?什么作用? Block Formatting Context 块盒子布局发生的区域,浮动元素和其他元素交互的区域 浮动定位和清除浮动的时候只会应用于同一个BFC内的元素.浮动不会影响其他 ...
- 安卓安装kali linux之Termux
解决安装kali无模组问题 https://blog.csdn.net/weixin_44690490/article/details/108599693?utm_source=app 步骤 1.获取 ...
- 「一站式」兼容所有云厂商文件存储Spring Boot 实现
背景 在互联网发展的今天,近乎所有的云厂商都提供对象存储服务.一种海量.安全.低成本.高可靠的云存储服务,适合存放任意类型的文件.容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本. 当我们 ...