diff --git "a/\345\220\264\351\221\253\351\270\277/20241118Debian\351\203\250\347\275\262.md" "b/\345\220\264\351\221\253\351\270\277/20241118Debian\351\203\250\347\275\262.md" new file mode 100644 index 0000000000000000000000000000000000000000..9e06194422d2d05309c8fa855d0e366cdda2d0ba --- /dev/null +++ "b/\345\220\264\351\221\253\351\270\277/20241118Debian\351\203\250\347\275\262.md" @@ -0,0 +1,43 @@ +# 在Debian上部署MVC的必要条件 +## 在服务器上安装运行环境或者调试环境(必要条件) +### 如何安装SDK 包管理器 +- 先下载文件 +- 注册文件 +- 删除注册过的文件 +- 更新软件源 +- 安装SDK +### 在Linux上安装软件或应用,常用方式如下: +- 包管器 +- 使用二进制文件 +- 编译安装 +## 将打包好的程序上传到指定目录(必要条件) +- scp 工具 +- xftp +## 一般建议使用nginx做反向代理 +### nginx反向代理配置 +**第一步安装nginx**: +``` +apt update +apt install nginx +``` +**第二步启动nginx服务**: +``` +systemctl start nginx +systemctl enable nginx +``` +**第三步基本配置**: +```cs +server{ + // 端口 + listen 80; + // 指定的域名 + server_name 域名 + location / { + proxy_pass http://端口 + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} +``` \ No newline at end of file diff --git "a/\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250.md" "b/\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..f1fb5a129a75fad341716ee8baed15cd9d7515bf --- /dev/null +++ "b/\345\220\264\351\221\253\351\270\277/20241122\346\216\247\345\210\266\345\231\250.md" @@ -0,0 +1,65 @@ +1. **控制器的定义和作用**: + 控制器是MVC架构中的一个核心组件,主要负责处理用户的输入,调用模型层的数据操作,并最终选择合适的视图来展示结果。控制器作为模型和视图之间的协调者,确保二者的有效沟通和协调。 + +2. **控制器的实现方式**: + - **实现IController接口**:在.NET中,控制器类必须实现`System.Web.Mvc`命名空间下的`IController`接口。这种方式提供了高度的可扩展性,但编写复杂应用程序较为困难。 + - **继承Controller类**:大多数Web开发人员更熟悉的是继承自`System.Web.Mvc.Controller`类的控制器。这个基类提供了动作方法(Action Method)、动作结果(Action Result)等关键特性,简化了请求处理。 + +3. **控制器对数据的接收**: + 控制器可以通过多种方式接收数据,包括查询字符串值、表单数据和路由数据。这些数据可以通过上下文对象获取,作为动作方法的参数传递,或通过模型绑定功能明确调用。 + +4. **控制器对数据的响应**: + 控制器响应用户请求后,可以返回多种类型的动作结果,包括渲染视图、重定向到不同的URL或动作方法、返回文本数据、XML数据、JSON数据、文件和二进制数据,以及返回错误和HTTP状态码。 + +5. **控制器与视图的关系**: + 控制器负责根据业务逻辑的结果选择合适的视图进行渲染。视图是用户界面的呈现部分,负责展示数据给用户,并接收用户的输入。 + +6. **路径映射和视图指向**: + 控制器作为一个“黑盒”,需要完成入口路由(路径映射)和出口路由(视图指向)。路径映射根据配置的规则和请求URI的路径找到具体的控制器逻辑;视图指向根据配置的规则和控制器处理完毕后返回的信息找到需要渲染的视图页面。 + +7. **控制器的优点**: + - **模块化和可维护性**:MVC架构将系统分为独立的模型、视图和控制器部分,每个部分都有明确的职责,使得代码更加清晰,易于维护和扩展。 + - **重用性**:模型可以独立于用户界面,可以在不同的视图和控制器之间共享和重用。 + - **并行开发**:由于关注点分离,开发人员可以并行开发模型、视图和控制器,提高开发效率。 + +8. **控制器的缺点**: + - **学习曲线**:对于新手开发者来说,MVC架构可能需要一定的学习曲线来理解各个组件如何协同工作。 + - **复杂性**:在大型项目中,管理多个模型、视图和控制器之间的关系可能会变得困难,增加了项目的复杂性。 + +# Linux练习 +1. 使用以下几种方式分别登录服务器,说明它们分别的注意事项,并说明它们之间的区别 + +答: + +**ssh** +SSH是一种网络协议,用于加密方式远程登录到服务器。 +确保服务器的 SSH 服务正在运行。 +知道服务器的 IP 地址或域名以及 SSH 端口(默认是 22)。 +拥有有效的用户名和密码或 SSH 密钥。 +区别: +基于命令行的工具,适用于自动化脚本和命令行操作。 +支持密钥认证,提供更高级别的安全性。 + +**tabby** +Tabby 是一个图形界面的 SSH 客户端,提供了更直观的操作体验。 +需要在本地机器上安装 Tabby 应用。 +支持 SSH 密钥和密码认证。 +可以保存多个服务器的连接配置,便于快速切换。 +区别: +提供图形用户界面,易于使用,适合不熟悉命令行的用户。 +可能不如命令行工具轻量级。 + +**XShell** +XShell 是一个基于 Web 的 SSH 客户端,允许你通过浏览器远程管理服务器。 +服务器需要运行 XShell 服务。 +通过 Web 浏览器访问,可能涉及额外的安全考虑。 +区别: +通过 Web 浏览器访问,不受操作系统限制。 +可能不如原生 SSH 客户端性能好。 + +**PuTTY** +是一种软件终端仿真器,允许你通过 SSH 连接到远程服务器。 +通常通过 SSH 客户端内置的 PuTTY 功能来连接。 +需要服务器的 SSH 服务支持。 +区别: +PuTTY 通常作为 SSH 客户端的一部分,而不是独立工具。 \ No newline at end of file diff --git "a/\345\220\264\351\221\253\351\270\277/2024118\345\234\250Linux\344\270\212\351\203\250\347\275\262MVC\351\241\271\347\233\256.md" "b/\345\220\264\351\221\253\351\270\277/2024118\345\234\250Linux\344\270\212\351\203\250\347\275\262MVC\351\241\271\347\233\256.md" new file mode 100644 index 0000000000000000000000000000000000000000..e102f3fd11f86cc7caf79067419684541f1f8b1e --- /dev/null +++ "b/\345\220\264\351\221\253\351\270\277/2024118\345\234\250Linux\344\270\212\351\203\250\347\275\262MVC\351\241\271\347\233\256.md" @@ -0,0 +1,11 @@ +@startmindmap + * 1 项目组织结构 + * 解决方案和项目的架构 + * mvc项目的结构解读 + + * 2 在Linux上部署MVC项目 + * 创建模板ASP.Net Core Web 应用 + * 在控制器和视图中写入相应文件 + * 安装sdk运行环境 + * 打包上传程序 +@endmindmap \ No newline at end of file