From 02194a617db2f17c0046c15abf13eb505e0201be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=8C=AA=E7=8C=AA?= <1844380913@qq.com> Date: Mon, 5 Dec 2022 11:31:51 +0800 Subject: [PATCH 1/8] mvc --- ...\343\200\213NO.55-\345\276\205\345\256\232.md" | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\276\205\345\256\232.md" diff --git "a/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\276\205\345\256\232.md" "b/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\276\205\345\256\232.md" new file mode 100644 index 0000000..7248555 --- /dev/null +++ "b/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\276\205\345\256\232.md" @@ -0,0 +1,15 @@ +# Dot NET + +## 老胡带领我们去到了Dot net的 网站参观.net 的一些版本,目前主流的版本分别是'.NET6.0'和'.NET7.0',其中 7.0 版本是官网推荐的,但是由于它仅在标准期限之内支持,所以我们倾向于使用‘长期支持’ 的6.0版本,而'.NET 6.0'里面又有很多版本,其中有 Linux、OS、Windows、MACOS等等 +------ +## Windows下面又有两种,一种是 installer;一种是 binary ,其实就是一种是安装包,一种是二进制文件,从这里,老胡引出来压缩的两种方式,一种是直接压缩成压缩文件,而另一种是压缩成一个自释放的.exe文件,双击之后便可以释放出其内部被压缩的文件,可以说非常的方便与实用,但同时如果被不法分子利用,用此方式将‘木马’ 或 ‘病毒’ 插入到用户的电脑当中,就不符合创造者的初衷了、 +------ +## .NET 6 作为 LTS 长期支持版本,.NET 6 将会获得 3 年的技术支持 +## .NET 6 是首个原生支持 Apple Silicon (Arm64) 的版本,并且还针对 Windows Arm64 进行了改进 +## .NET 团队构建了一个新的动态配置文件引导优化 (PGO) 系统,该系统可提供仅在运行时才会进行的深度优化 +------ +## 使用热重载功能,可以修改应用源代码,并立即将这些更改应用到正在运行的应用。 此功能的目的是避免在编辑之间重新启动应用程序,从而提高工作效率。 热重载在 Visual Studio 2022 和 dotnet watch 命令行工具中可用。 热重载适用于大多数类型的 .NET 应用以及 C#、Visual Basic 和 C++ 源代码 + +------ + +# 以上就是我对今天上课内容的一些log,好了,我要再去复习复习一下明天(2022.12.06)下午(18:00)JavaScript考试的内容了,See U ~ \ No newline at end of file -- Gitee From 48ad8dc8b542c7a8b49672d539896ef75943a350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=8C=AA=E7=8C=AA?= <1844380913@qq.com> Date: Mon, 5 Dec 2022 11:33:02 +0800 Subject: [PATCH 2/8] MVC --- ...\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\276\205\345\256\232.md" => "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" (100%) diff --git "a/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\276\205\345\256\232.md" "b/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" similarity index 100% rename from "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\276\205\345\256\232.md" rename to "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" -- Gitee From b5c36756b23434099b479345150049b03f3222e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E7=8C=AA=E7=8C=AA?= <1844380913@qq.com> Date: Mon, 5 Dec 2022 11:42:41 +0800 Subject: [PATCH 3/8] MVC --- ...345\273\272MVC\351\241\271\347\233\256.md" | 28 +++++++++++++++++++ ...\357\274\214Hi\343\200\200\357\275\236.md" | 0 2 files changed, 28 insertions(+) create mode 100644 "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\246\202\344\275\225\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" rename "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" => "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.56-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" (100%) diff --git "a/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\246\202\344\275\225\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" "b/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\246\202\344\275\225\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" new file mode 100644 index 0000000..cee6af9 --- /dev/null +++ "b/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\246\202\344\275\225\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" @@ -0,0 +1,28 @@ +# 关于如何创建 MVC 项目 + + +## 直接创建一个MVC项目 + +``` +dotnet new mvc --no-https +``` + +## 创建一个文件夹并将MVC项目放进去 + +``` +dotnet new mvc -n [项目名] --no-https +//-n 是 name 的意思 +``` + + +## MVC + +``` +--M(model)模型 + + +--V(view)视图 + + +--C(controller)控制器 +``` \ No newline at end of file diff --git "a/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" "b/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.56-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" similarity index 100% rename from "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" rename to "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.56-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" -- Gitee From a507bf519e620309531313b1f4179cdab0e01214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BF=8A=E5=85=B4?= <1274804914@qq.com> Date: Fri, 9 Dec 2022 03:00:30 +0000 Subject: [PATCH 4/8] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=2050?= =?UTF-8?q?=E7=8E=8B=E6=96=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...345\273\272MVC\351\241\271\347\233\256.md" | 28 ------------------- ...\357\274\214Hi\343\200\200\357\275\236.md" | 15 ---------- 2 files changed, 43 deletions(-) delete mode 100644 "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\246\202\344\275\225\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" delete mode 100644 "50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.56-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" diff --git "a/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\246\202\344\275\225\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" "b/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\246\202\344\275\225\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" deleted file mode 100644 index cee6af9..0000000 --- "a/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.55-\345\246\202\344\275\225\345\210\233\345\273\272MVC\351\241\271\347\233\256.md" +++ /dev/null @@ -1,28 +0,0 @@ -# 关于如何创建 MVC 项目 - - -## 直接创建一个MVC项目 - -``` -dotnet new mvc --no-https -``` - -## 创建一个文件夹并将MVC项目放进去 - -``` -dotnet new mvc -n [项目名] --no-https -//-n 是 name 的意思 -``` - - -## MVC - -``` ---M(model)模型 - - ---V(view)视图 - - ---C(controller)控制器 -``` \ No newline at end of file diff --git "a/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.56-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" "b/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.56-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" deleted file mode 100644 index 7248555..0000000 --- "a/50\347\216\213\346\226\214/2022.12.05 =\343\200\213NO.56-Dot NET\343\200\200\345\210\235\346\254\241\350\247\201\351\235\242\357\274\214Hi\343\200\200\357\275\236.md" +++ /dev/null @@ -1,15 +0,0 @@ -# Dot NET - -## 老胡带领我们去到了Dot net的 网站参观.net 的一些版本,目前主流的版本分别是'.NET6.0'和'.NET7.0',其中 7.0 版本是官网推荐的,但是由于它仅在标准期限之内支持,所以我们倾向于使用‘长期支持’ 的6.0版本,而'.NET 6.0'里面又有很多版本,其中有 Linux、OS、Windows、MACOS等等 ------- -## Windows下面又有两种,一种是 installer;一种是 binary ,其实就是一种是安装包,一种是二进制文件,从这里,老胡引出来压缩的两种方式,一种是直接压缩成压缩文件,而另一种是压缩成一个自释放的.exe文件,双击之后便可以释放出其内部被压缩的文件,可以说非常的方便与实用,但同时如果被不法分子利用,用此方式将‘木马’ 或 ‘病毒’ 插入到用户的电脑当中,就不符合创造者的初衷了、 ------- -## .NET 6 作为 LTS 长期支持版本,.NET 6 将会获得 3 年的技术支持 -## .NET 6 是首个原生支持 Apple Silicon (Arm64) 的版本,并且还针对 Windows Arm64 进行了改进 -## .NET 团队构建了一个新的动态配置文件引导优化 (PGO) 系统,该系统可提供仅在运行时才会进行的深度优化 ------- -## 使用热重载功能,可以修改应用源代码,并立即将这些更改应用到正在运行的应用。 此功能的目的是避免在编辑之间重新启动应用程序,从而提高工作效率。 热重载在 Visual Studio 2022 和 dotnet watch 命令行工具中可用。 热重载适用于大多数类型的 .NET 应用以及 C#、Visual Basic 和 C++ 源代码 - ------- - -# 以上就是我对今天上课内容的一些log,好了,我要再去复习复习一下明天(2022.12.06)下午(18:00)JavaScript考试的内容了,See U ~ \ No newline at end of file -- Gitee From 99b262775733526b9cd48eaabed1631b70f20f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BF=8A=E5=85=B4?= <1274804914@qq.com> Date: Fri, 9 Dec 2022 03:00:49 +0000 Subject: [PATCH 5/8] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=2012?= =?UTF-8?q?=E9=BE=9A=E4=B8=9C=E8=BE=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../01MVC\346\246\202\350\277\260.md" | 82 ------------------- 1 file changed, 82 deletions(-) delete mode 100644 "12\351\276\232\344\270\234\350\276\211/01MVC\346\246\202\350\277\260.md" diff --git "a/12\351\276\232\344\270\234\350\276\211/01MVC\346\246\202\350\277\260.md" "b/12\351\276\232\344\270\234\350\276\211/01MVC\346\246\202\350\277\260.md" deleted file mode 100644 index b984ff9..0000000 --- "a/12\351\276\232\344\270\234\350\276\211/01MVC\346\246\202\350\277\260.md" +++ /dev/null @@ -1,82 +0,0 @@ -## 如何在 vscore创建一个mvc应用 - - -**查看.net SDK版本** -```sh ->dotnet --version ->6.0.1 # 我们需要6.0的版本如果没下载则需要下载 .net SDK -``` -**什么是SDK?** -``` -.NET SDK 是一组库和工具,开发人员可用其创建 .NET 应用程序和库。 -``` -**安装.net SDK** - -[dotnetSDK下载](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-6.0.403-windows-x64-installer) - - -**创建mvc项目** -```sh -# 在文件夹打开命令行输入命令生成mvc项目 -dotnet new mvc -n [项目名] --no-https # --no-https 禁用https -``` - -## MVC概述 - -为什么要使用MVC? -``` -传统软件开发过于复杂(过于耦合),使用mvc的目的是为了解耦,现代软件开发的基本原则是:高内聚,低耦合 -``` - -mvc -- M(model)模型 -- V(view)视图 -- C(controller)控制器 -### 模型(M) -```sh -model承载数据,对用户提交的请求进行处理(处理业务逻辑) -# 一般是获得controller接受到的请求,跟数据库数据进行处理 -``` - -### 视图(V) -``` -视图,为用户提供使用界面(前端),与用户直接进行交互 -``` - -### 控制器(C) -``` -controller处理浏览器请求(接收浏览器发送的请求) -``` - -### MVC的工作流程 - -![](https://pic1.zhimg.com/80/v2-de48f3ca908ba0cea63ad171be30c3e0_720w.webp) - - -``` -1. 用户通过 view 向服务端发送请求(表单、AJAX....) - -2. 服务端controller接受请求交给model处理 - -3. model处理完后再将结果返回给controller - -4. controller收到结果再返回给View -``` - -### 三层架构 - -![](https://pic3.zhimg.com/80/v2-0c83168c2cdc260d36af7a1f2db26462_720w.webp) - -- 表示层 -- 业务逻辑层 -- 数据访问层 - -`就是将MVC的model分为业务层和持久层,业务层负责业务逻辑,持久层负责对数据库进行交互,将controller和view合并为表示层负责数据展示` - - -mvc和三层架构是从不同角度去设计的 ,但其目的都是为了解耦,分层,代码复用等等 - - - - - -- Gitee From 3c8b44f7912b7779d659ab73ebf8ea4c2c046d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=83=A1?= <515696146@qq.com> Date: Sun, 18 Dec 2022 19:36:26 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20221213_MVC.md | 21 ++++++++ ...72\346\234\254\346\223\215\344\275\234.md" | 53 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 20221213_MVC.md create mode 100644 "20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" diff --git a/20221213_MVC.md b/20221213_MVC.md new file mode 100644 index 0000000..7b50869 --- /dev/null +++ b/20221213_MVC.md @@ -0,0 +1,21 @@ +# MVC +MVC即Model、View、Controller即模型、视图、控制器。我在和同行讨论技术,阅读别人的代码时发现,很多程序员倾向于将软件的业务逻辑放在Controller里,将数据库访问操作的代码放在Model里。 + + +MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。 + + + +View层是界面,Model层是业务逻辑,Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性。 + + + +比方说,有一个View会提交数据给Model进行处理以实现具体的行为,View通常不会直接提交数据给Model,它会先把数据提交给Controller,然后Controller再将数据转发给Model。假如此时程序业务逻辑的处理方式有变化,那么只需要在Controller中将原来的Model换成新实现的Model就可以了,控制器的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。 + + +这个过程描述为:控制层接收到所有程序的请求时,将数据进行过滤等处理后,再传送到模型层进行相对应的业务逻辑处理,然后模型层将处理后的数据传送到控制层(控制层是模型层与视图层的纽带),视图层再将最终结果展示出来。这里图中视图层与模型层之间的两个箭头表示:虽然视图层对数据不做处理,而是将数据直接传给控制层,但它必须保持着与模型层的数据类型的一致性,即当模型层的数据发生改变时,视图层必须随之变化。 + +归纳: +1、MVC是一种用于Web应用程序开发的设计模式,如Struts2就是基于MVC模式的。而SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。 +2、MVC分为三层:模型层、视图层、控制层,模型层用于后台数据保存和处理,视图层用于展示处理结果,控制层则是模型层和视图层两者之间的纽带。 +3、虽然视图层对数据不做处理,而是将数据直接传给控制层,但它必须保持着与模型层的数据类型的一致性,即当模型层的数据发生改变时,视图层必须随之变化。 \ No newline at end of file diff --git "a/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" "b/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" new file mode 100644 index 0000000..37667c7 --- /dev/null +++ "b/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" @@ -0,0 +1,53 @@ +## 查看.net sdk版本 +``` +dotnet --version + +.NET SDK 是一组库和工具,开发人员可用其创建 .NET 应用程序和库。 +``` + + + +## 创建mvc项目 +``` +在文件夹打开命令行输入命令生成mvc项目 +dotnet new mvc -n [项目名] --no-https # --no-https 禁用https +``` + +## 三层架构 + +三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层[表示层](User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。 +区分层次的目的即为了“高内聚低耦合” 的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。 + + +## 为什么使用三层 +使用三层架构的目的:解耦!!! + +同样拿上面饭店的例子来讲: + +服务员(UI层)请假——另找服务员; + +主厨(BLL层)辞职——招聘另一个主厨; + +小厨(DAL)辞职——招聘另一个小厨; + + +## 三层优缺点 +【优点】 + +开发人员可以只关注整个结构中的其中某一层; + +可维护性高,可扩展性高 + +可以降低层与层之间的依赖; + +有利于标准化; + +利于各层逻辑的复用 + +【缺点】 + +降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成 + +有时会导致级联的修改,这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码 + +增加了开发成本 \ No newline at end of file -- Gitee From a6a5c992f440cc8ba7c3139c45691a54e2c31996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=83=A1?= <515696146@qq.com> Date: Sun, 18 Dec 2022 19:47:23 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20221213_MVC.md | 21 -------- ...72\346\234\254\346\223\215\344\275\234.md" | 53 ------------------- 2 files changed, 74 deletions(-) delete mode 100644 20221213_MVC.md delete mode 100644 "20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" diff --git a/20221213_MVC.md b/20221213_MVC.md deleted file mode 100644 index 7b50869..0000000 --- a/20221213_MVC.md +++ /dev/null @@ -1,21 +0,0 @@ -# MVC -MVC即Model、View、Controller即模型、视图、控制器。我在和同行讨论技术,阅读别人的代码时发现,很多程序员倾向于将软件的业务逻辑放在Controller里,将数据库访问操作的代码放在Model里。 - - -MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。 - - - -View层是界面,Model层是业务逻辑,Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性。 - - - -比方说,有一个View会提交数据给Model进行处理以实现具体的行为,View通常不会直接提交数据给Model,它会先把数据提交给Controller,然后Controller再将数据转发给Model。假如此时程序业务逻辑的处理方式有变化,那么只需要在Controller中将原来的Model换成新实现的Model就可以了,控制器的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。 - - -这个过程描述为:控制层接收到所有程序的请求时,将数据进行过滤等处理后,再传送到模型层进行相对应的业务逻辑处理,然后模型层将处理后的数据传送到控制层(控制层是模型层与视图层的纽带),视图层再将最终结果展示出来。这里图中视图层与模型层之间的两个箭头表示:虽然视图层对数据不做处理,而是将数据直接传给控制层,但它必须保持着与模型层的数据类型的一致性,即当模型层的数据发生改变时,视图层必须随之变化。 - -归纳: -1、MVC是一种用于Web应用程序开发的设计模式,如Struts2就是基于MVC模式的。而SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。 -2、MVC分为三层:模型层、视图层、控制层,模型层用于后台数据保存和处理,视图层用于展示处理结果,控制层则是模型层和视图层两者之间的纽带。 -3、虽然视图层对数据不做处理,而是将数据直接传给控制层,但它必须保持着与模型层的数据类型的一致性,即当模型层的数据发生改变时,视图层必须随之变化。 \ No newline at end of file diff --git "a/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" "b/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" deleted file mode 100644 index 37667c7..0000000 --- "a/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" +++ /dev/null @@ -1,53 +0,0 @@ -## 查看.net sdk版本 -``` -dotnet --version - -.NET SDK 是一组库和工具,开发人员可用其创建 .NET 应用程序和库。 -``` - - - -## 创建mvc项目 -``` -在文件夹打开命令行输入命令生成mvc项目 -dotnet new mvc -n [项目名] --no-https # --no-https 禁用https -``` - -## 三层架构 - -三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层[表示层](User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。 -区分层次的目的即为了“高内聚低耦合” 的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。 - - -## 为什么使用三层 -使用三层架构的目的:解耦!!! - -同样拿上面饭店的例子来讲: - -服务员(UI层)请假——另找服务员; - -主厨(BLL层)辞职——招聘另一个主厨; - -小厨(DAL)辞职——招聘另一个小厨; - - -## 三层优缺点 -【优点】 - -开发人员可以只关注整个结构中的其中某一层; - -可维护性高,可扩展性高 - -可以降低层与层之间的依赖; - -有利于标准化; - -利于各层逻辑的复用 - -【缺点】 - -降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成 - -有时会导致级联的修改,这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码 - -增加了开发成本 \ No newline at end of file -- Gitee From 0471321153276b4eaa325fc56112dc6bf80e146b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E8=83=A1?= <515696146@qq.com> Date: Sun, 18 Dec 2022 19:49:15 +0800 Subject: [PATCH 8/8] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20221213_MVC.md | 21 ++++++++ ...72\346\234\254\346\223\215\344\275\234.md" | 53 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 20221213_MVC.md create mode 100644 "20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" diff --git a/20221213_MVC.md b/20221213_MVC.md new file mode 100644 index 0000000..7b50869 --- /dev/null +++ b/20221213_MVC.md @@ -0,0 +1,21 @@ +# MVC +MVC即Model、View、Controller即模型、视图、控制器。我在和同行讨论技术,阅读别人的代码时发现,很多程序员倾向于将软件的业务逻辑放在Controller里,将数据库访问操作的代码放在Model里。 + + +MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。 + + + +View层是界面,Model层是业务逻辑,Controller层用来调度View层和Model层,将用户界面和业务逻辑合理的组织在一起,起粘合剂的效果。所以Controller中的内容能少则少,这样才能提供最大的灵活性。 + + + +比方说,有一个View会提交数据给Model进行处理以实现具体的行为,View通常不会直接提交数据给Model,它会先把数据提交给Controller,然后Controller再将数据转发给Model。假如此时程序业务逻辑的处理方式有变化,那么只需要在Controller中将原来的Model换成新实现的Model就可以了,控制器的作用就是这么简单, 用来将不同的View和不同的Model组织在一起,顺便替双方传递消息,仅此而已。 + + +这个过程描述为:控制层接收到所有程序的请求时,将数据进行过滤等处理后,再传送到模型层进行相对应的业务逻辑处理,然后模型层将处理后的数据传送到控制层(控制层是模型层与视图层的纽带),视图层再将最终结果展示出来。这里图中视图层与模型层之间的两个箭头表示:虽然视图层对数据不做处理,而是将数据直接传给控制层,但它必须保持着与模型层的数据类型的一致性,即当模型层的数据发生改变时,视图层必须随之变化。 + +归纳: +1、MVC是一种用于Web应用程序开发的设计模式,如Struts2就是基于MVC模式的。而SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。 +2、MVC分为三层:模型层、视图层、控制层,模型层用于后台数据保存和处理,视图层用于展示处理结果,控制层则是模型层和视图层两者之间的纽带。 +3、虽然视图层对数据不做处理,而是将数据直接传给控制层,但它必须保持着与模型层的数据类型的一致性,即当模型层的数据发生改变时,视图层必须随之变化。 \ No newline at end of file diff --git "a/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" "b/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" new file mode 100644 index 0000000..37667c7 --- /dev/null +++ "b/20221214_MVC\345\237\272\346\234\254\346\223\215\344\275\234.md" @@ -0,0 +1,53 @@ +## 查看.net sdk版本 +``` +dotnet --version + +.NET SDK 是一组库和工具,开发人员可用其创建 .NET 应用程序和库。 +``` + + + +## 创建mvc项目 +``` +在文件夹打开命令行输入命令生成mvc项目 +dotnet new mvc -n [项目名] --no-https # --no-https 禁用https +``` + +## 三层架构 + +三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层[表示层](User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。 +区分层次的目的即为了“高内聚低耦合” 的思想。在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。 + + +## 为什么使用三层 +使用三层架构的目的:解耦!!! + +同样拿上面饭店的例子来讲: + +服务员(UI层)请假——另找服务员; + +主厨(BLL层)辞职——招聘另一个主厨; + +小厨(DAL)辞职——招聘另一个小厨; + + +## 三层优缺点 +【优点】 + +开发人员可以只关注整个结构中的其中某一层; + +可维护性高,可扩展性高 + +可以降低层与层之间的依赖; + +有利于标准化; + +利于各层逻辑的复用 + +【缺点】 + +降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成 + +有时会导致级联的修改,这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码 + +增加了开发成本 \ No newline at end of file -- Gitee