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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/394309.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构复杂度

文章目录 一. 数据结构前言1.1 数据结构1.2 算法 二. 算法效率2.1 时间复杂度2.1.1 T(N)函数式2.1.2 大O的渐进表示法 一. 数据结构前言 1.1 数据结构 什么是数据结构呢?打开一个人的主页,有很多视频,这是数据(杂乱无章&#xf…

嵌入式学习day12(LinuxC高级)

由于C高级部分比较零碎,各部分之间没有联系,所以学起来比较累,多练习就好了 一丶Linux起源 寻科普|第二期:聊聊Linux的前世今生 UNIX和linux的区别: (1)linux是开发源代码的自由软件.而unix是…

Python学习(2):在单机机器学习,使用Dask实现鸢尾数据集 Iris 的分类任务

目录 一、源码来源 二、鸢尾花数据集的品种分类 1、数据处理步骤 (1)数据集加载 (2)准备特征和标签 (3)训练集和测试集划分 2、安装必需的软件包 3、运行程序 三、信用卡欺诈数据集检测信用卡交易…

【VScode】如何在anaconda虚拟环境中打开vscode项目

文章目录 【必备知识】打开anaconda虚拟环境切换到项目工作目录激活anaconda虚拟路径让vscode从当前目录打开 【必备知识】 anaconda环境变量配置及配置python虚拟环境 https://blog.csdn.net/xzzteach/article/details/140621596 打开anaconda虚拟环境 切换到项目工作目录 …

LabVIEW液压传动系统

开发了一种高效的液压传动系统,其特点在于采用LabVIEW软件与先进的硬件配合,实现能量的有效回收。此系统主要应用于工业机械中,如工程机械和船机械等,通过优化液压泵和马达的测试台设计,显著提高系统的能效和操作性能。…

SpringBoot 集成 Sharding-JDBC 实现读写分离、分库分表

文章目录 一、Sharding-JDBC的应用场景二、SpringBoot 集成 Sharding-JDBC2.1、前期准备2.2、导入pom.xml依赖包2.3、结构代码实现2.3.1、MybatisPlusConfig(分页插件)2.3.2、TOrder(订单对象)2.3.3、TOrderMapper(订单…

一样都是虚拟化技术,堆叠和M-LAG差异在哪?

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 早上好,我的网工朋友。 随着信息技术的快速发展,网络架构也在不断地演进以满足日益增长的需求。 其中,虚拟化技…

没有mac电脑ios上架截屏截图的最新方法

很多人使用uniapp或其他跨平台框架开发ios的app,上架的时候都会遇到一个问题,上架的时候需要各种尺寸的设备来做ios截屏,比如目前最新的要求是,需要对6.7寸、6.5寸和5.5寸的iphone进行截屏,假如支持ipad则还需要对ipad…

java之拼图小游戏(开源)

public class LoginJFrame extends JFrame {//表示登录界面,以后所有跟登录相关的都写在这里public LoginJFrame() {//设置界面的长和宽this.setSize(603,680);//设置界面的标题this.setTitle("拼图登陆界面");//设置界面置顶this.setAlwaysOnTop(true);/…

兼容性测试详解

目录 前言1. 兼容性测试的定义和重要性1.1 兼容性测试的定义1.2 兼容性测试的重要性 2. 兼容性测试的类型2.1 跨浏览器测试2.1.1 跨浏览器测试的挑战2.1.2 跨浏览器测试的方法 2.2 跨平台测试2.2.1 跨平台测试的挑战2.2.2 跨平台测试的方法 3. 兼容性测试的步骤和策略3.1 测试计…

必了解的 20 个 AI 术语解析(下)

AI 领域的基础概念和相关技术有很多,这篇文章里,作者就深入浅出地介绍了相应的内容,感兴趣的同学们,不妨来看一下。 必了解的 20 个 AI 术语解析(下)© 由 ZAKER科技 提供 本文专为非技术背景的 AI 爱…

【源码+文档+调试讲解】活力健身馆管理系统

摘 要 活力健身馆管理系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。 与安卓,iOS相比较起来&am…

html+css 实现hover选择按钮

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目…

【Android】跨程序共享数据——内容提供器初识

跨程序共享数据——探究内容提供器 内容提供器的简介 主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能保证被访数据的安全性。目前,使用内容提供器是Android实现跨程序共享数据的标准方式。…

opencv-图像透视变换

透射变换是视角变化的结果,是指利用透视中心,像点,目标点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴旋转某一角度,破坏原有的投影光束,仍能保持承影面上投影几何图形不变的变化) 它的本质将图…

【nginx】解决k8s中部署nginx转发不会自动更新域名解析启动失败的问题

文章目录 1. 问题2.解决办法3.扩展说明3.1 DNS解析阶段划分3.2 问题说明3.2.1 先看/etc/resolv.conf说明3.2.2 针对第一个问题3.2.3 针对第二个问题 【后端】NginxluaOpenResty高性能实践 参考: https://blog.csdn.net/u010837612/article/details/123275026 1. 问…

【二分查找】3143. 正方形中的最多点数

本文涉及的基础知识点 C二分查找 LeetCode3143. 正方形中的最多点数 给你一个二维数组 points 和一个字符串 s ,其中 points[i] 表示第 i 个点的坐标,s[i] 表示第 i 个点的 标签 。 如果一个正方形的中心在 (0, 0) ,所有边都平行于坐标轴&…

【数据结构入门 】栈

目录 前言 一、栈的概念及结构 二、栈的实现 1. 栈的声明 2.初始化栈 3. 栈的销毁 4.判断是否为空栈 5.入栈(只能插入栈顶元素) 6. 出栈(只能从栈顶删除) 7.栈的大小 8.获取栈顶元素 总结 前言 在计算机科学中&#xf…

【MySQL 01】在 Ubuntu 22.04 环境下安装 MySQL

文章目录 🌈 1. 说明🌈 2. 卸载不必要的环境🌈 3. 安装 MySQL🌈 4. 启动和关闭 MySQL 服务🌈 5. 临时登录 MySQL🌈 6. 设置 MySQL 密码🌈 7. 配置 MySQL 🌈 1. 说明 在安装与卸载中…

Python面试宝典第29题:袋鼠过河

题目 一只袋鼠要从河这边跳到河对岸,河很宽,但是河中间打了很多桩子。每隔一米就有一个桩子,每个桩子上都有一个弹簧,袋鼠跳到弹簧上就可以跳得更远。每个弹簧力量不同,用一个数字代表它的力量,如果弹簧力量…