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

相关推荐
2401_857439692 分钟前
社团管理新工具:SpringBoot框架
java·spring boot·后端
2401_857610034 分钟前
Spring Boot OA:企业办公自动化的创新之路
spring boot·后端·mfc
2401_8543910830 分钟前
Spring Boot OA:企业数字化转型的利器
java·spring boot·后端
山山而川粤37 分钟前
废品买卖回收管理系统|Java|SSM|Vue| 前后端分离
java·开发语言·后端·学习·mysql
2301_8112743139 分钟前
基于Spring Boot的同城宠物照看系统的设计与实现
spring boot·后端·宠物
2301_811274312 小时前
springboot嗨玩旅游网站
spring boot·后端·旅游
mit6.8242 小时前
[Redis#4] string | 常用命令 | + mysql use:cache | session
数据库·redis·后端·缓存
疯狂学习GIS2 小时前
创建第一个IDEA的Java项目的方法
java·后端·intellij idea
捂月3 小时前
Spring Boot 核心逻辑与工作原理详解
java·spring boot·后端
Nightselfhurt3 小时前
RPC学习
java·spring boot·后端·spring·rpc