diff --git "a/\344\275\231\346\242\246\345\251\267/20240520-.NET Core\345\222\214ASP.NET Core.md" "b/\344\275\231\346\242\246\345\251\267/20240520-.NET Core\345\222\214ASP.NET Core.md" new file mode 100644 index 0000000000000000000000000000000000000000..7b259e50331ab91b8a5df2c7d8f21cc33783379e --- /dev/null +++ "b/\344\275\231\346\242\246\345\251\267/20240520-.NET Core\345\222\214ASP.NET Core.md" @@ -0,0 +1,60 @@ +这是一份简介和指南,涵盖了.NET Core、.NET Standard、ASP.NET Core的简介,以及如何设置开发环境和创建API项目。接下来是课后作业,要求创建一个解决方案,其中包含两个任意项目。 + +### .NET Core 简介 +.NET Core是一个跨平台的开源框架,用于构建不同类型的应用程序,包括Web应用、移动应用和云服务。它提供了高性能、可扩展性和灵活性,并且支持在Windows、Linux和macOS上进行开发。 + +### .NET Standard 简介 +.NET Standard是一种规范,定义了一组API,用于在不同的.NET实现中实现可移植性。它旨在提供一种统一的编程接口,使开发人员能够编写跨平台的代码,而无需担心特定于平台的细节。 + +### ASP.NET Core 简介 +ASP.NET Core是.NET Core的Web框架,用于构建Web应用程序和服务。它具有高性能、模块化和跨平台的特性,并且支持在各种操作系统和部署环境中运行。 + +### ASP.NET Core 设置开发环境 +要设置ASP.NET Core的开发环境,你需要安装.NET Core SDK和适用于你选择的编辑器或集成开发环境(IDE)的相关工具。这些工具通常包括Visual Studio Code和Visual Studio。 + +### 创建一个API项目 +#### Visual Studio Code +1. 打开Visual Studio Code。 +2. 安装C#扩展。 +3. 打开命令面板(Ctrl+Shift+P)并输入“.NET: Create New Project”。 +4. 选择API项目模板,并按照向导的指示创建项目。 + +或者终端创建: + +```bash +dotnet new webapi -n MyWebApi +``` + +```bash +cd MyWebApi +``` + +最后,可以在Visual Studio Code中打开这个项目,继续编辑和开发: + +```bash +code . +``` + +#### Visual Studio +1. 打开Visual Studio。 +2. 选择“创建新项目”。 +3. 选择“ASP.NET Core Web Application”项目模板。 +4. 在项目配置向导中,选择API项目模板,并按照向导的指示创建项目。 + +### 课后作业:如何创建一个解决方案,包含两个任意项目 +```bash +# 创建一个新的解决方案 +dotnet new sln -n MySolution + +# 创建第一个项目(ASP.NET Core Web API示例) +dotnet new webapi -n MyWebApi + +# 将第一个项目添加到解决方案中 +dotnet sln add MyWebApi/MyWebApi.csproj + +# 创建第二个项目(Console Application示例) +dotnet new console -n MyConsoleApp + +# 将第二个项目添加到解决方案中 +dotnet sln add MyConsoleApp/MyConsoleApp.csproj +``` \ No newline at end of file diff --git "a/\344\275\231\346\242\246\345\251\267/20240521-\351\241\271\347\233\256\345\210\233\345\273\272\345\222\214\347\273\204\347\273\207\346\214\207\345\215\227.md" "b/\344\275\231\346\242\246\345\251\267/20240521-\351\241\271\347\233\256\345\210\233\345\273\272\345\222\214\347\273\204\347\273\207\346\214\207\345\215\227.md" new file mode 100644 index 0000000000000000000000000000000000000000..03b304fb1029d6bc4f28449c0aca034764bd6004 --- /dev/null +++ "b/\344\275\231\346\242\246\345\251\267/20240521-\351\241\271\347\233\256\345\210\233\345\273\272\345\222\214\347\273\204\347\273\207\346\214\207\345\215\227.md" @@ -0,0 +1,53 @@ +## 创建项目 +```bash +## 创建api +dotnet new webapi -n 项目名 + +## 创建类库 +dotnet new classlib -n 项目名 + +## 创建解决方案 +dotnet new sln add -n 项目名 + +## 向解决方案中添加项目 +dotnet sln add -n 项目名 + +## 项目之间的引用 +dotnet add A reference B + +## 添加依赖包 +dotnwr add 项目名 依赖包 +``` +## webapi模版 +- 用于创建一个ASP.NET Core API项目 +- 包括构建RESTful API +- 结构中通常包含控制器(Contrillers)、模型(Models)、视图(Views)等。 +- 适用于创建提供API服务的应用程序。 + +## classlib模版 +- 这个模版用于创建一个类库(Class Library)项目。 +- 类库项目通常用于封装和共享代码,它们不包括任何运行时入口点。 +- 它们可以被其他项目引用,以提供功能或服务。 +- 项目结构中主要包含类和接口的定义,不包含控制器(Contrillers)、模型(Models)、视图(Views)等 Web 相关组件。 + +## 解决方案 +在 .NET 开发中,解决方案(Solution)是一个组织项目的方式,它允许开发者将多个项目组合在一起,以便可以同时开发、构建和部署。 +主要作用: +1. **组织项目:**一个解决方案可以包含多个项目,这些项目可以是应用程序、类库、测试项目等。 +2. **依赖管理:**解决方案中的项目可以相互依赖,这样开发者可以轻松地管理项目之间的引用关系。 +3. **构建顺序:**解决方案可以定义项目的构建顺序,确保构建过程中,依赖的项目会先于依赖它们的项目构建。 +4. **统一管理:**通过解决方案,开发者可以在 vs 或命令行工具中统一管理多个项目,包括启动、构建、清理等操作。 +5. **共享配置:**解决方案可以包含共享的配置信息,如 NuGet 包管理、项目间共享的编译选项等。 +6. **版本控制:**解决方案文件本身可以背版本控制系统(如 Git)跟踪,使得团队成员可以协作开发。 + +创建和管理解决方案通常涉及以下步骤: +- `dotnet new sln`创建一个新的解决方案。 +- `dotnet sln add `将项目添加到解决方案中。 +- `dotnet sln list`查看解决方案中包含的项目列表。 +- `dotnet sln remove `从解决方案中移除项目。 +- `dotnet sln `执行其它解决方案相关的操作。 + +## 解决方案和项目之间的关系 + +1. 编译或者打包解决方案的时候,会同时编译或打包其下所有项目 +2. 如果运行解决方案的话,则会按照编排的(指定的启动项目),分别调用指定项目 \ No newline at end of file diff --git "a/\344\275\231\346\242\246\345\251\267/20240524-MVC\346\250\241\345\274\217.md" "b/\344\275\231\346\242\246\345\251\267/20240524-MVC\346\250\241\345\274\217.md" new file mode 100644 index 0000000000000000000000000000000000000000..b07efe34f7a7881939ffe126f66cfa06aa4f060d --- /dev/null +++ "b/\344\275\231\346\242\246\345\251\267/20240524-MVC\346\250\241\345\274\217.md" @@ -0,0 +1,114 @@ +MVC(Model-View-Controller)模式是一种软件设计模式,用于分离应用程序的关注点,使其更加模块化和易于维护。MVC 模式将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。每个组件各司其职,互相独立工作。以下是对 MVC 模式的详细解释: + +### 1. 模型(Model) +模型是应用程序的数据和业务逻辑的表示。它负责直接管理应用程序的数据、逻辑和规则。模型组件独立于用户界面,因此当数据发生变化时,视图也会相应地更新。主要职责包括: + +- **数据管理**:处理应用程序的数据,包括从数据库获取、保存和更新数据。 +- **业务逻辑**:包含应用程序的核心业务规则和处理逻辑。 +- **状态管理**:管理应用程序的状态信息。 + +### 2. 视图(View) +视图是模型的可视化表示,负责呈现数据并与用户进行交互。视图是用户界面的表现层,用于显示数据并接收用户的输入。主要职责包括: + +- **数据展示**:将模型中的数据转换为用户可以理解和操作的界面。 +- **用户输入**:接收用户的输入并将其传递给控制器进行处理。 + +### 3. 控制器(Controller) +控制器是模型和视图之间的桥梁,负责处理用户的输入并更新模型和视图。控制器接收用户的输入,调用模型进行处理,并确定返回哪一个视图来显示处理结果。主要职责包括: + +- **请求处理**:接收并处理用户的请求(如点击按钮、提交表单等)。 +- **更新模型**:根据用户输入更新模型中的数据。 +- **选择视图**:确定使用哪个视图来显示模型中的数据。 + +### MVC 工作流程 +MVC 模式的工作流程如下: + +1. **用户交互**:用户通过视图与应用程序交互,触发一个事件(例如按钮点击或表单提交)。 +2. **控制器处理**:控制器接收事件,并处理用户输入。它调用相应的模型来执行业务逻辑和数据操作。 +3. **更新模型**:模型更新其状态,并可能改变其数据。 +4. **视图更新**:视图从模型中获取最新的数据,并更新显示,以反映模型的变化。 +5. **用户反馈**:视图将处理结果反馈给用户。 + +### MVC 模式的优点 +- **分离关注点**:将应用程序逻辑与用户界面分离,提高代码的可维护性和可测试性。 +- **模块化**:每个组件独立工作,便于模块化开发和代码重用。 +- **可扩展性**:易于扩展和维护。当业务逻辑或用户界面发生变化时,只需修改相关部分,而不会影响整个系统。 +- **团队协作**:开发团队可以并行开发,前端开发人员专注于视图,后端开发人员专注于模型和控制器。 + +### ASP.NET Core 中的 MVC 模式 +ASP.NET Core 是一个现代化的 Web 框架,广泛采用了 MVC 模式。ASP.NET Core MVC 提供了一整套工具和库来实现 MVC 设计模式,包括: + +- **模型绑定**:自动将 HTTP 请求的数据绑定到控制器的参数上。 +- **视图引擎**:如 Razor,用于生成动态的 HTML 内容。 +- **控制器**:用于处理用户请求并返回视图或数据(如 JSON 格式)。 + +### 示例代码 +以下是一个简单的 ASP.NET Core MVC 应用程序示例: + +**模型(Model)** +```csharp +public class Product +{ + public int Id { get; set; } + public string Name { get; set; } + public decimal Price { get; set; } +} +``` + +**控制器(Controller)** +```csharp +public class ProductController : Controller +{ + private readonly List _products = new List + { + new Product { Id = 1, Name = "Laptop", Price = 999.99m }, + new Product { Id = 2, Name = "Phone", Price = 499.99m } + }; + + public IActionResult Index() + { + return View(_products); + } + + public IActionResult Details(int id) + { + var product = _products.FirstOrDefault(p => p.Id == id); + if (product == null) + { + return NotFound(); + } + return View(product); + } +} +``` + +**视图(View) - Index.cshtml** +```html +@model IEnumerable + +

Product List

+ + + + + + @foreach (var product in Model) + { + + + + + } +
NamePrice
@Html.ActionLink(product.Name, "Details", new { id = product.Id })@product.Price
+``` + +**视图(View) - Details.cshtml** +```html +@model Product + +

Product Details

+
+

@Model.Name

+

Price: @Model.Price

+
+``` \ No newline at end of file diff --git "a/\344\275\231\346\242\246\345\251\267/2024523-ASP .NET Core\347\232\204\344\274\230\347\202\271.md" "b/\344\275\231\346\242\246\345\251\267/2024523-ASP .NET Core\347\232\204\344\274\230\347\202\271.md" new file mode 100644 index 0000000000000000000000000000000000000000..985e30d01ff5bef954e573b032addc5853761b56 --- /dev/null +++ "b/\344\275\231\346\242\246\345\251\267/2024523-ASP .NET Core\347\232\204\344\274\230\347\202\271.md" @@ -0,0 +1,33 @@ +ASP.NET Core 是微软开发的一款跨平台、开源的现代化Web框架,适用于构建基于云和互联网连接的应用程序。它有以下优点: + +1. **跨平台支持**: + - **多平台兼容**:ASP.NET Core 可以在 Windows、macOS 和 Linux 上运行,使得开发者可以选择自己熟悉的操作系统进行开发和部署。 + - **统一开发平台**:无论是桌面应用、移动应用还是 Web 应用,ASP.NET Core 提供了一致的开发体验。 + +2. **高性能**: + - **性能优化**:ASP.NET Core 的性能非常出色,尤其是在处理高并发请求时表现优异。其内置的 Kestrel Web 服务器是专门为高性能和低资源占用设计的。 + - **轻量级和模块化**:ASP.NET Core 使用了轻量级的依赖注入系统,开发者可以选择需要的模块进行开发,从而减少不必要的资源浪费。 + +3. **现代化架构**: + - **微服务支持**:ASP.NET Core 支持微服务架构,可以轻松与 Docker 和 Kubernetes 集成,实现应用的容器化和编排。 + - **云原生设计**:适用于云计算环境,能够利用 Azure 等云服务进行快速扩展和部署。 + +4. **开源和社区支持**: + - **开源项目**:ASP.NET Core 是一个完全开源的项目,任何人都可以查看源代码并贡献代码。 + - **活跃的社区**:得益于其强大的社区支持,开发者可以获得丰富的资源和帮助,从官方文档、论坛到 GitHub 上的开源项目。 + +5. **强大的开发工具**: + - **Visual Studio**:提供了一流的开发工具支持,包括 Visual Studio 和 Visual Studio Code,这些工具提供了丰富的开发、调试和部署功能。 + - **CLI 工具**:ASP.NET Core 提供了命令行界面(CLI)工具,方便开发者进行项目创建、构建、发布等操作。 + +6. **安全性和认证**: + - **内置身份认证和授权**:ASP.NET Core 提供了内置的身份认证和授权系统,支持多种认证方式(如 JWT、OAuth2、OpenID Connect),保障应用的安全性。 + - **数据保护**:框架中包含的数据保护 API 可以帮助开发者更好地管理和保护敏感数据。 + +7. **灵活的配置和依赖注入**: + - **配置系统**:ASP.NET Core 提供了灵活的配置系统,支持多种配置源(如 JSON 文件、环境变量),使得应用配置更加方便和灵活。 + - **内置依赖注入**:框架内置了依赖注入(DI)容器,方便开发者实现松耦合和易测试的代码结构。 + +8. **快速开发和发布**: + - **模版和生成器**:提供了丰富的项目模板,帮助开发者快速创建不同类型的项目。 + - **持续集成和持续交付**:与 DevOps 工具(如 Azure DevOps、GitHub Actions)无缝集成,支持 CI/CD 流程,提升开发效率。 \ No newline at end of file