一. 下载
1. 下载vs2022
Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com)
学生,个人开发者选择社区版就行,免费的.
安装程序一直下一步下一步就行,别忘了选择安装位置,如果都放在C盘的话,就太大了.
2. 选择工作负荷
准备工作完成
二. 创建新项目
三. 运行实例
可以选择浏览器
运行成功
首次运行,可能需要证书,之类的.全部点同意,是.就行
四. 文件夹
Connected Services
在一些集成开发环境(如 Visual Studio)中:
- 含义:"Connected Services"是一个用于管理与项目相关的外部服务连接的区域。
- 功能:它可以帮助开发者方便地配置和集成各种云服务、数据库服务等。例如,你可以在这里添加和配置 Azure Storage、Azure Functions 等云服务的连接,或者配置数据库连接相关的服务。通过直观的界面操作,开发者可以快速将这些外部服务与项目进行集成,而不需要手动编写大量复杂的配置代码。
Properties
- 含义:这个文件夹通常包含一些与项目属性相关的文件。
- 功能:
launchSettings.json
:它定义了应用程序的启动配置,包括不同环境(如开发、生产)下的应用程序 URL、端口设置以及环境变量等。例如,在开发环境中,可能将应用程序配置为在本地特定端口(如 http://localhost:5000)运行,而在生产环境中可能有不同的 URL 和端口配置。- 其他可能的文件(具体取决于项目模板和配置):可能包含与项目特定属性相关的设置,如版本控制信息、项目特定的配置参数等。
wwwroot
- 含义:这是一个用于存放静态文件的目录。
- 功能:通常包括 CSS 文件、JavaScript 文件、图像文件等前端资源。当应用程序运行时,这些静态文件可以直接被客户端浏览器访问。例如,网页的样式表文件(.css)会放在这里,当浏览器加载网页时,会根据 HTML 中的引用从
wwwroot
目录下获取相应的 CSS 文件来渲染页面的样式。同样,JavaScript 文件用于实现网页的交互功能,图像文件用于在网页中展示图片等,它们都存放在这个目录下以便正确地被服务和访问。
Pages
在某些 ASP.NET Core项目模板(如 Razor Pages 项目)中:
- 含义:用于存放 Razor Page 文件。
- 功能:Razor Pages 是一种简化页面导向开发的方式。每个 Razor Page 文件(通常以
.cshtml
为扩展名,同时伴有一个对应的.cs
文件,包含页面的后台代码)代表一个页面或用户界面的一部分。例如,有一个Index.cshtml
页面,它可能是应用程序的首页,在这个页面中可以使用 Razor 语法将 C#代码与 HTML 结合起来,实现动态的数据展示和交互。例如,可以在页面中从数据库获取数据并展示在表格中,或者处理用户的表单提交等操作。
Program.cs
-
含义:它是 ASP.NET Core应用程序的入口点。
-
功能:负责配置应用程序的主机和服务容器,启动应用程序的 Web 服务器等。在这个文件中,会设置应用程序的基本配置,如监听的端口、使用的中间件等。例如:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
这里创建了应用程序的构建器,定义了一个根路径的处理方法(返回"Hello World!"),然后启动应用程序。它是整个应用程序启动和运行的核心配置文件。
复制重新生成
如何在 ASP.NET Core 中配置和使用 Azure Storage?
介绍一下 launchSettings.json 文件中各个配置项的作用
如何将已有的项目迁移到 ASP.NET Core?
appsettings.json文件:
-
含义:用于存储应用程序的配置信息。
-
功能:它可以包含数据库连接字符串、应用程序的各种设置(如日志级别、缓存配置等)。例如:
{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabase;Trusted_Connection=True;MultipleActiveResultSets=true" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } } }
这里配置了数据库连接字符串和日志级别。
五. Program.cs
cs
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.MapRazorPages();
app.Run();
var builder = WebApplication.CreateBuilder(args);
:
- 功能:这行代码创建了一个
WebApplicationBuilder
实例。这个实例用于配置应用程序的主机和服务容器等。args
通常是命令行参数,用于传递一些配置选项等。它是构建应用程序的起点,后续的很多配置操作都会基于这个builder
对象进行。
builder.Services.AddRazorPages();
:
- 功能:这里向服务容器中添加了对 Razor Pages 的支持服务。Razor Pages 是 ASP.NET Core中的一种页面模型,它简化了基于页面的开发。通过添加这个服务,应用程序能够识别和处理 Razor Pages 相关的请求,包括页面的渲染、与模型的交互等。例如,它会注册相关的中间件和服务,以便在运行时正确地处理 Razor Pages 的请求和响应。
var app = builder.Build();
:
- 功能:这行代码根据之前在
builder
上进行的配置构建出一个WebApplication
实例。这个实例代表了实际运行的应用程序,包含了所有的配置信息和中间件等,用于处理 HTTP 请求和响应。
if (!app.Environment.IsDevelopment())
:
- 功能:这是一个条件判断,检查应用程序是否不是在开发环境中。
app.Environment.IsDevelopment()
是一个方法,用于确定当前的运行环境是否是开发环境。通过这种方式,可以根据不同的环境(开发、生产等)来应用不同的配置。
app.UseExceptionHandler("/Error");
:
- 功能:当应用程序不在开发环境中时,如果发生未处理的异常,它会将请求重定向到
/Error
路径进行处理。这有助于提供一个统一的方式来处理应用程序中的错误,而不是将详细的错误信息直接暴露给用户。例如,在生产环境中,用户可能只会看到一个友好的错误页面,而不是详细的错误堆栈信息,以提高应用程序的安全性和用户体验。
app.UseHsts();
:
- 功能:当应用程序不在开发环境中时,它启用了 HSTS。HSTS 是一种 Web 安全策略机制,它强制客户端(如浏览器)通过 HTTPS 与服务器进行通信。这有助于防止中间人攻击等安全问题,提高应用程序的安全性。例如,一旦客户端接收到 HSTS 头,它会在指定的时间内(默认 30 天,如注释中所述)记住只通过 HTTPS 访问该网站。
app.UseHttpsRedirection();
:
- 功能:无论在什么环境中,它都会将 HTTP 请求重定向到 HTTPS。这有助于确保应用程序的通信安全,特别是在生产环境中。例如,如果用户尝试通过 HTTP 访问应用程序,它会自动将用户重定向到 HTTPS 版本的相应 URL。
app.UseStaticFiles();
:
- 功能:它启用了对静态文件的服务。静态文件包括 CSS 文件、JavaScript 文件、图像等。这使得应用程序能够正确地提供这些静态资源给客户端。例如,当浏览器请求页面中引用的 CSS 文件或图像时,应用程序能够根据请求找到并返回相应的静态文件。
app.UseRouting();
:
- 功能:它启用了路由中间件。路由中间件用于确定如何将传入的 HTTP 请求映射到相应的处理程序(如控制器动作或 Razor Pages)。通过配置路由,应用程序能够根据请求的 URL 和 HTTP 方法等信息将请求正确地分发到相应的代码逻辑进行处理。
app.UseAuthorization();
:
- 功能:它启用了授权中间件。授权用于确定用户是否有权访问特定的资源或执行特定的操作。在应用程序中,这可以用于限制对某些页面或功能的访问,例如只有经过身份验证和授权的用户才能访问管理页面等。
app.MapRazorPages();
:
- 功能:它将 Razor Pages 映射到应用程序的路由系统中。这使得应用程序能够识别和处理针对 Razor Pages 的请求。例如,当用户请求一个特定的 Razor Page 的 URL 时,应用程序能够根据映射找到对应的页面并进行处理,包括执行页面的后台代码和渲染页面的 HTML 内容等。
app.Run();
:
- 功能:这行代码启动了应用程序,开始监听传入的 HTTP 请求并根据之前配置的请求处理管道进行处理和响应。它会一直运行,直到应用程序被停止(例如手动停止或出现错误导致应用程序崩溃)。
总体而言,这段代码通过一系列的配置和中间件的设置,构建了一个能够处理 HTTP 请求、支持 Razor Pages、提供安全策略(如 HTTPS 重定向和 HSTS)以及处理错误和授权等功能的 ASP.NET Core应用程序。