演示_项目结构的介绍——web应用程序(模型视图控制器)MVC

创建

在这里插入图片描述
创建完之后,系统会从他的模板库里相应的程序(一些必要的文件、代码)找出来

运行

在这里插入图片描述
开启了一个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

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值