ASP.NET MVC5 入门篇之WEB开发的知识结构

设计模式鸽了,但是肯定会写。这边先开一个ASP.NET MVC5 的坑。

本文假定你已经比较熟悉C#这门语言以及了解一个网站程序是运行在互联网上的主机中。

WEB开发是什么?

在这里插入图片描述

WEB开发就是网站开发,泛指通过向浏览器输入地址的方式访问的网站。大多数情况下这个地址是随着你鼠标点点点以后网站帮你输入的。如果你有仔细观察,随着你在网页上点点点,地址栏的地址会随着变化。这个地址被称作URL,中文名是:统一资源定位符

//一个标准的HTTP协议的URL格式
http://<host>:<port>/<path>?<searchpart>`
//host = 主机域名或者主机IP地址
//port = 端口号
//path = 资源路径
//searchpart = 检索参数部分
//主机是就是一台接入到互联网的计算机,WEB开发出来的程序要依靠WEB服务软件运行在一台主机上。

WEB开发最终的定义就是:处理HTTP协议发送过来的URL(Request=请求),确定这个请求的应答结果发送回去(Response=响应)。就像自动售货机,我要这个。好,给你。我要那个。没有存货了,不能给。

知识点有三个 1、什么是主机。 2、什么是URL。3、什么是HTTP协议。

ASP.NET

MVC

MVC是一种软件开发的设计思路,它将软件开发分成了三个部分,形成一个结构,能够让开发者更好的关注某一个部分而不是全部(人的内存和带宽都有限)。ASP.NET中的MVC实际上是这种MVC设计思路的实现,所以说.NET的MVC是一个框架,我们要做的就是在这个框架中的各个部分中填入我们所要。

M=模型。这里的模型大部分是面向对象设计中关于实体对象持久化(dao)的设计。(又是面向对象,怎么办,先看《面向对象设计与分析-第三版》吧)少部分是需要通过实体类之间的关系组合、删减变换得到的业务对象(dto/vo)。这个O那个哦的其实挺容易糊涂,最基本的原则:建立模型的核心是要使用模型完成和数据库表的交互。

V=视图。就是我们看到网页页面。页面可以分成两类:页面结构(HTML\CSS)和页面数据(内容)。js呢?js主要的功能是用来设计用户和页面的交互。

C=控制器。控制器这个层面就是直接定义传过来的URL应该返回什么样的资源(页面、数据、或者跳转到其它网站等)。

项目结构

几个知识点

  1. VS Studio 是以解决方案的形式来组织项目的。一个解决方案中可以包含多个项目。
  2. 除非必要,不要勾选为HTTPS配置。
  3. 一开始可以在主项目(一般是WEB项目)使用新建目录的方式来替代新建其它项目的方式。
  4. 项目间引用:
    Common项目一般除了Model层外各个项目都会引用。
    主项目会引用Model和Service。
    Service会引用Model和Repository。
    Repository会引用Model。
  5. 简单项目不把接口和实现分开也没问题。接口和实现应该使用不同项目。实现项目需要引用接口项目。

子框架

子框架或者更专业一点的词是中间件。比方说买房装修/水暖改造/电路改造/的外包都可以看做是中间件,房屋在未装修前就已经是一个框架了(例如MVC),房屋的主体功能都已经完备,我们当然可以自己装修,但是很麻烦也许还会造成很多问题。所以中间件的定义就是在主框架到完成交付功能中间所使用工具性质的小框架(相对于MVC框架这个主框架而言)。

EntityFrameWork

微软官方的ORM框架。主要是处理数据库和程序对象(一般是Model模型)之间的操作,即可以通过操作对象来操作数据库。类似的框架还有SqlSugar、Dapper、FreeSql等。

EntityFrameWork 的基础分为两个方向CodeFirst(或者叫做ModelFirst)和DBFirst。CoreFirst就是通过建立模型来生成数据库,模型有改变时可以将改变生成一个数据库迁移指令集,去升级数据库。DBFirst需要优先在数据库建立好表,再通过表来生成模型。

EntityFrameWork 的核心是DbContext 以及使用 DbContext 来完成增删改查。

EntityFrameWork 的进阶需要了解数据库事务的实现、异步操作的实现。

AutoMapper

AutoMapper主要被用来做对象之间的转换。
前面ORM根据数据库数据生成的对象是和数据库对应的。但有时页面要使用的数据比数据库数据更复杂或更简单。就可以通过AutoMapper来完成数据库对象到页面(或业务)对象的转换。

Swashbuckle

Swashbuckle 是 Swagger 的.net 实现。Swagger 主要的功能就是通过Controller和Model来生成API(接口)文档。前面说过Controller就是处理请求的返回结果。接口文档就是一系列的请求地址以及相关结果的说明。
Swagger 是应这几年前后端分离的软件开发风格而生的。
Swagger 可以读取Controller和Model的注释,显示在文档上(WEB页面形式)。
Swagger 支持多版本接口,即你可以为同一个接口定义多个版本。
Swagger 支持主流的验证方式JWT、Identityserver4等。
可以在Controller中为接口文档添加补充说明。
可以自定义Swagger 的显示页面,但没那个必要,用Swagger 不就是为了省事嘛。

数据库

一般我们说的数据库是指关系型数据库的一种。例如Mysql、Oracle、Sqlserver等。
建议初学者将数据库表理解为像Excel那样的带有行和列的表格。
与表格不同的是数据表每列存放的数据类型和类型限制必须一致,这就是数据表字段的定义。
通常情况下数据表定义与实体类相对应,数据行与实体类对象相对应。
数据库的设计或者说Model的设计始终是与业务息息相关的。

为什么要使用数据库?

最开始软件的数据是以文件的形式存储的,但文件系统缓慢、难以检索、易被修改。数据库是更快速、更健壮、更安全的数据存储系统。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值