当前位置: 首页 > news >正文

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

相关文章:

ASP.NET Core 基础 - 入门实例

一. 下载 1. 下载vs2022 Visual Studio 2022 IDE - 适用于软件开发人员的编程工具 (microsoft.com) 学生,个人开发者选择社区版就行,免费的. 安装程序一直下一步下一步就行,别忘了选择安装位置,如果都放在C盘的话,就太大了. 2. 选择工作负荷 准备工作完成 二. 创建新项目 三…...

机器人主板维修|ABB机械手主板元器件故障

【ABB机器人电路板故障原因诊断】 针对上述故障现象,我们需要对ABB机器人IO板进行详细的故障诊断。以下是一些可能的故障原因: 1. 元器件老化或损坏:ABB机械手安全面板上的元器件在长期使用过程中可能出现老化、损坏或接触不良等问题&#xf…...

大数据Flink(一百零六):什么是阿里云实时计算Flink版

文章目录 什么是阿里云实时计算Flink版 一、产品概述 二、产品架构 三、产品优势 什么是阿里云实时计算Flink版 阿里云实时计算Flink版是一套基于Apache Flink构建的⼀站式实时大数据分析平台,提供端到端亚秒级实时数据分析能力,并通过标准SQL降低业…...

ERCOT中的专业术语解释

在ERCOT中,ECRSM 代表的是 “Emergency Contingency Resource Supplementary Market”。这个术语涉及到紧急备用资源市场,用于应对电力需求或供应的紧急情况。在ERCOT电网中,当系统面临极端情况或资源不足时,ECRSM 可以帮助确保电…...

Python酷库之旅-第三方库Pandas(069)

目录 一、用法精讲 276、pandas.Series.dt.is_quarter_start属性 276-1、语法 276-2、参数 276-3、功能 276-4、返回值 276-5、说明 276-6、用法 276-6-1、数据准备 276-6-2、代码示例 276-6-3、结果输出 277、pandas.Series.dt.is_quarter_end属性 277-1、语法 …...

基于hutools的国密SM2、3、4

文章目录 前言一. 代码 前言 最近还要深度研究hutools底层实现,一定要搞透澈,本章将会是持续更新 参考资料: Java代码实现SM2算法以及注意点总结(踩坑记录) 国密算法工具Smutil 一. 代码 import cn.hutool.core.uti…...

进程的等待(非阻塞轮询+阻塞)和替换控制详解

引言 在Linux系统中,进程管理是核心功能之一。理解进程的创建、执行和终止是系统编程中的基础。本文将深入探讨Linux中的进程控制机制,包括进程的生命周期、父子进程的交互、以及进程状态的管理 1. 进程创建:fork()函数 在Linux操作系统中…...

24/8/6算法笔记 支持向量机

支持向量机(Support Vector Machine, SVM)是一种监督学习算法,主要用于分类和回归任务。它基于统计学习理论中的结构风险最小化原理,通过找到数据点之间的最优边界来实现模型的泛化能力。 import numpy as np import matplotlib.…...

测试用例等级划分

基本等级(‌Level 1或P0)‌:‌这类用例设计系统基本功能,‌执行失败会导致多处重要功能无法运行。‌例如,‌单表维护中的增加功能、‌最平常的业务使用等,‌这些是发生概率较高的功能用例。‌这类用例在每一…...

打造Perl编译器前端:自定义语言处理的魔法

打造Perl编译器前端:自定义语言处理的魔法 Perl是一种强大而灵活的编程语言,它提供了丰富的文本处理能力,使其成为实现自定义编译器前端的理想选择。编译器前端通常负责源代码的词法分析、语法分析和语义分析。本文将详细介绍如何在Perl中实…...

Visual Studio 和 Visual Studio Code 的比较与应用偏向

Visual Studio 和 Visual Studio Code(VS Code)是微软开发的两个不同的开发工具,各有特点和优势,适用于不同的开发需求。下面是详细的比较和在实际应用中的偏向。 功能和特性 Visual Studio 完整的IDE:支持多种编程…...

Python打开JSON/CSV文件的正确方式(针对UnicodeDecodeError)

前言 我们在使用python的过程中,经常需要它完成一些数据处理的工作,其中尤以json/csv文件为常见。今天,博主针对UnicodeDecodeError异常进行试验,因为这个是新手最容易犯错的地方。 Q:如何应对 UnicodeDecodeError 读…...

深入解析TikTok广告开户白名单:规范与申请指南

在TikTok的广告平台上,白名单(Whitelist)系统作为一种重要的审核和管理机制,对广告账户的开设与运营起着至关重要的作用。 一、什么是TikTok广告开户白名单? 白名单的定义 白名单是一种预先批准的账户或广告内容列表…...

CSS技巧专栏:一日一例 19 -纯CSS实现超酷的水晶按钮特效

CSS技巧专栏:一日一例 19 -纯CSS实现超酷的水晶按钮特效 今天给大家分享一个纯CSS按钮水晶按钮,效果很赞,希望对大家有所帮助。 本例图片 案例分析 这个按钮看起来效果很赞,我们分析一下它由几个层组成: 1. 按钮本体:渐变层+按钮文字 2.用before伪元素实现高光层+内…...

ArcGIS基础:基于数据图框实现地理坐标系下不同投影转换的可视化效果

ArcGIS默认以第一次加载数据的坐标系决定整个工程的坐标系 可以通过改变数据框的投影坐标系,对地理数据进行快速投影变换,以可视化展示不同投影坐标系下的地理数据形状和形态 对数据框坐标系的改变,只是针对的显示参数的改变,并…...

⚡4. Kubernetes核心资源管理操作实战

文章目录 kubectl [command] [TYPE] [NAME] [flags]kubectl run 资源名称 --image镜像名称 --port端口号kubectl create -f 配置文件名称.yaml kubectl apply -f 配置文件名称.yaml快速编写yaml文件,通过命令导出新的yaml文件Kubernetes常见资源类型和缩写 kubectl …...

【Wireshark 抓 CAN 总线】Wireshark 抓取 CAN 总线数据的实现思路

最近看到一个帖子 Wireshark 对接 Windows 系统命名管道,抓取数据 我突然想到一个很有意思的方式 你没看错 用 Wireshark 来抓取 CAN 总线数据 【其实 Wireshark 上有 CAN 总线的的解码器,不信你可以在表达式栏打 can 试下,是有这个解码器的】…...

Linux网络编程3

并发服务器 1.TCP多进程并发服务器 服务器端: 客户端: 2.TCP多线程服务器 服务器端: 客户机端: 需要学习的函数还有 1. send() 函数 send() 函数用于在套接字上发送数据。它是网络编程中发送数据到对端的主要函数之一。 函数…...

gitlab 服务器安装

阿里云盘快传 百度链接 链接:https://pan.baidu.com/s/1Gn5bWHi45Dcpe1RH1S06dw 提取码:yai2 然后就是有一台服务器 cd /mkdir gitlab上传下载好的东西rpm -ivh gitlab-ce-10.8.4-ce.0.el7.x86_64.rpm 这里可以tab提示vim /etc/gitlab/gitlab.rb我建议…...

【pytorch】全连接网络简单二次函数拟合

下面是一个使用PyTorch实现全连接网络来拟合简单二次函数 y x 2 y x^2 yx2 的示例。我们将创建一个简单的神经网络,定义损失函数和优化器,并进行训练。 下面是完整的代码示例: import torch import torch.nn as nn import torch.optim …...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...

无法与IP建立连接,未能下载VSCode服务器

如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...

iview框架主题色的应用

1.下载 less要使用3.0.0以下的版本 npm install less2.7.3 npm install less-loader4.0.52./src/config/theme.js文件 module.exports {yellow: {theme-color: #FDCE04},blue: {theme-color: #547CE7} }在sass中使用theme配置的颜色主题,无需引入,直接可…...