创建
创建完之后,系统会从他的模板库里相应的程序(一些必要的文件、代码)找出来
运行
开启了一个IIS的服务器,这个服务器被启动之后,我们的web应用程序就可以正常的运行了
项目结构
-
对于 .net 的项目来说,他的组织结构是:
- 一个大的解决方案下面可能有多个项目,这个项目你也可以给它再分组。 对于每一个项目:
- 它要么是一个可执行的服务,也么是一个可运行的程序,要么是一个可被其他的程序使用的库 这个项目的名字可以修改:
- 如:上面的webApplication1——右键点击属性可以修改
项目结构详细介绍
Connected Services
正在跑的一个服务
Properties
系统的一些配置 ,json结构的一个文本文件
wwwroot
它当中的内容就是我们网站所有需要用到的静态内容
CSS/JS:
css: 层叠样式,控制页面的外观
js: 脚本,控制前端页面动态的一些功能
为什么不把css、js 和 网页html 放在一起?
-
对于一个网页来说
-
html内容经常性需要变化;
而css和js,通常来说, 经过开发者设计完成之后,开始部署到服务器上运行起来的时候,它往往不会变( 静态的内容)
所谓静态的内容
-
不会变,意味着可以用最简单的方式去操作它。
比如说:我就把它当成静态内容让浏览器到一个固定的url去下载它,然后针对这个url去进行加速,我就可以让用户更快地下载这个css/js。
可以把静态的内容丢给CDN(内容分发网络)去做静态内容的分发,这种分发效率很高,下载速度非常快,而且不涉及到你自己的流量(带宽)
把css/js 与html分开,单独放一个文件夹。 将来在分发内容的时候可以直接把这个目录直接分发出去,别人就可以顺利下载了。跟我的程序的动态内容分隔开来。(这是一个原则—— 为了将来能够更好的做优化,提前做一个比较复杂的结构设计 )
lib
是library的缩写,库的意思。
-
jquery
- ——是JavaScript里面比较老的库,这套库可以使得 js 的代码能具备 跨不同品牌浏览器的能力
jquery-validation 和 jquery-validation-unobtrusive是jquery的两个不同功能的插件
这些东西也都是静态的内容
-
对于wwwroot
-
如果一个大大后端的开发,wwwroot里面也会有一些其他比较重要的内容;
如果是前后端分离的开发,一般没有其他比较重要的内容
在 .net 中 json结构已经大量普及了,要了解一下
program.cs
整个程序的入口
webAplication,特别是ASP.NET Core 的Aplication,具备一种独立运行的能力的,所以他自己有一个main函数
Startup.cs
启动之前我服务器可能会有一些配置文件
MVC
我们在浏览器当中/Home/privacy其实是直接访问的Controllers
当我们点home的时候:
也就是说,我们在使用MVC模式去设计网站的时候,网站的url上这个地址它所指向的并不是一个真正的网页页面,而是一个指向程序的路径 (这个程序的控制器是什么 / 控制器里执行哪一个方法)
-
控制器(Control) :
- 负责 动态地控制 Model:
- 负责 保存到数据库当中的数据模型 和 展现在页面当中的数据模型 View:
-
控制器抓取一些model之后,把这些model再转交给view;
在view的cshtml 当中,使用一些程序(利用一些所谓的引擎)处理之后;
把数据灌注到html当中;
最终产生我们在页面当中的动态的内容
Controller
controller 里面的方法:
index()、privacy、about 这三个方法是最原始的方法,不包含任何的处理(跟显示静态页面差距不大)
-
1、这个方法必须是(public)——原因:
- 这个方法如果最终将和某一个路径上的 url 做一个映射的话,一定需要能够被 其他类里面程序 能够访问到的。 2、返回的类型是一个接口(IActionResult)
- 也就是说对于ASP.NET.Core来说,这个方法里面所做动作的是一个 action,这个action产生一个结果——通常调用view方法
view这个方法哪里来的?
controller(控制层)——第四个方法 error
这种封装的好处?
直接加public别人就可以直接用了呀,为什么还要花时间加set、get?
这里set和get相当于看大门的——保护里面的RequestId