ASP.NET Core 基础 - 入门实例

一. 下载

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应用程序。

相关推荐
Victor35612 分钟前
Redis(14)Redis的列表(List)类型有哪些常用命令?
后端
Victor35612 分钟前
Redis(15)Redis的集合(Set)类型有哪些常用命令?
后端
卷福同学13 分钟前
来上海三个月,我在马路边上遇到了阿里前同事...
java·后端
bobz9659 小时前
小语言模型是真正的未来
后端
DevYK10 小时前
企业级 Agent 开发实战(一) LangGraph 快速入门
后端·llm·agent
一只叫煤球的猫10 小时前
🕰 一个案例带你彻底搞懂延迟双删
java·后端·面试
冒泡的肥皂10 小时前
MVCC初学demo(一
数据库·后端·mysql
颜如玉11 小时前
ElasticSearch关键参数备忘
后端·elasticsearch·搜索引擎
卡拉叽里呱啦12 小时前
缓存-变更事件捕捉、更新策略、本地缓存和热key问题
分布式·后端·缓存
David爱编程12 小时前
线程调度策略详解:时间片轮转 vs 优先级机制,面试常考!
java·后端