【ASP.NET】Hello World

文章目录

  • 1. 几个概念
  • 2. 搭建开发环境
    • 2.1 .NET SDK
    • 2.2 IDE & Editor
  • 3 First Project
    • 3.1 步骤
    • 3.2 模板
    • 3.3 项目结构
    • 3.4 请求的处理流程
  • Reference Link

1. 几个概念

  • .NET
    是一个平台,包括 .NET Framework、.NET Core、ASP.NET、C#等,可以构建桌面、Web、移动应用等应用程序。

  • .NET Framework 和 .NET Core
    是 .NET 平台的一个特定组件,是用于构建 Windows 应用程序的框架,只能在 Windows 操作系统上运行,不支持跨平台开发
    可用于构建 Windows、Linux 和 macOS 上的应用程序,支持跨平台开发

  • ASP.NET 和 ASP.NET Core
    ASP.NET 是一组用于构建 Web 应用程序和 Web 服务的技术和工具。它是.NET 技术栈中的一部分,不支持跨平台
    ASP.NET Core 是 ASP.NET 的下一代版本,建立在.NET Core 之上,包括 ASP.NET Core MVC(用于构建 Web 应用)和 ASP.NET Core Web API(用于构建 Web 服务)等技术,支持跨平台。类比成Java中的SpringBoot框架。可以用于传统的服务器端渲染应用程序,也可以用于创建前后端分离的单页面应用程序。
    在这里插入图片描述

  • C#
    是.NET平台上的一门编程语言,常与ASP.NET Core结合使用。
    程序通过编译为Intermediate Language(IL)代码的形式实现跨平台。
    IIS是依赖于Windows的web服务器,Kestrel是跨平台HTTP服务器,可以运行APS.NET程序。
    在这里插入图片描述

  • NuGet
    NuGet是.NET的包管理器,类似于Java中的Maven。

  • solution 和 project
    solution 由一个或者多个 project 组成;
    project 是部署的单元,可以被编译为dll文件或者可执行文件,类似于 Java 中的 module 的概念。

2. 搭建开发环境

2.1 .NET SDK

https://dotnet.microsoft.com/zh-cn/download

在这里插入图片描述

dotnet --info 

在这里插入图片描述

# 切换.net sdk 版本
dotnet --global-sdk 3.1.100

2.2 IDE & Editor

  • Visual Studio
    https://visualstudio.microsoft.com/zh-hans/downloads/
    在这里插入图片描述

安装选择workloads时候,记得勾选下面几项进行下载安装:

  • ASP.NET and web development
  • .NET Core cross-platform development

要注意的是Visual Studio for Mac和Visual Studio是两个完全不同的产品

  • JB Rider
    https://www.jetbrains.com/rider/
    在这里插入图片描述
  • VS Code

3 First Project

  • 使用 visual studio用作说明

3.1 步骤

  • Generate:选择一个模板,生成项目文件夹
  • Restore:导入需要的包和依赖。donet restore
  • Build:生成必要的编译文件 dotnet build
  • Run:运行编译后的应用程序 dotnet run

3.2 模板

  • Razor Pages web application:前后端不分离,在服务端生成 HTML 代码,使得用户能够通过浏览器直接访问。
  • MVC (Model-View-Controller) application:前后端不分离
  • Web API application:前后端分离

3.3 项目结构

在这里插入图片描述

  • .csproj nuget 包管理文件,类似于 Java 中的 pom.xml。
  • .sln 显示solution 下有哪些 projects。
  • launchSettings.json,在 project/properties/目录下,控制怎么 run 和 debug 程序。
  • appsettings.jsonappsettings.Development.json, 类似Java 中的 application.yml 文件。
  • wwwroot/ 目录可以被浏览器直接访问。
  • Program.cs,包含 main方法,是启动文件。包含 IHostBuild类型的方法,回去调用 startup.cs 中的配置方法。
  • Startup.cs,会被 program.cs 调用的配置类文件。包含服务注册和配置中间件管道两个方法。
    在这里插入图片描述
  • xxx.cshtml,是Razor Pages页面,是一种页面模版,类似于 JSP。

3.4 请求的处理流程

  • /privacy 请求会被转到privacy.cshtml 页面
    在这里插入图片描述

Reference Link

  1. https://github.com/andrewlock/asp-dot-net-core-in-action-2e
  2. ASP.NET Core in Action (Andrew Lock) (Z-Library)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手写一个starter

文章目录 starter命令规则项目演示新建工程Pom引入依赖定义属性配置定义自动配置类配置EnableAutoConfiguration业务实现项目中使用 什么是Starter?Starter其实就是我们经常在maven中的导入的各种模块,自定义Starter可以快速的满足开发的需求&#xff0c…

夸克发布自研大模型 加速下一代搜索体验创新

国产大模型阵营再添新锐选手。11月14日,阿里巴巴智能信息事业群发布全栈自研、千亿级参数的夸克大模型,将应用于通用搜索、医疗健康、教育学习、职场办公等众多场景。夸克App将借助自研大模型全面升级,加速迈向年轻人工作、学习、生活的AI助手…

智能运维软件,提升效率的利器

随着信息技术的飞速发展,企业对于IT系统的依赖程度日益加深。为保障IT系统的稳定运行,越来越多的企业选择智能运维管理软件,以全面高效的监控和管理系统和资产情况。 一、运维监控平台的重要性 无监控,不运维。将资产并入监控系…

git使用patch进行补丁操作

文章目录 前言一、format-patch/am生成和应用补丁1、生成2、应用 二、patch文件解读 前言 在软件开发中,代码协作和版本管理是至关重要的。Git 是一个流行的分布式版本控制系统,它提供了各种功能来简化团队合作和代码管理。但是如何给已有项目打补丁&am…

计算机组成原理:大而快——层次化存储

原文链接www.xiaocr.fun/index.php/2023/11/14/计算机组成原理大而快-层次化存储/ 引言 关于两种局部性 时间局部性:如果某个数据被访问,那么在不久的将来它可能再次被访问空间局部性:如果某个数据项被访问,与它相邻的数据项可…

onlyoffice 进阶开发 二次开发 连接器(connector)开发

阅读须知:本文针对有对word/excel进行js操作的需求 本次改造基于V7.3.3进行,已经去除:连接器(connector)限制 可以自由调用Api.xxx()、connector.executeMethod()、connector.callCommand() 已经自行改造过docker更新进入仓库。 小伙伴们…

python 爬虫之requests 库以及相关函数的详细介绍

get 函数 当你使用 requests.get 函数时,你可以按照以下步骤来发起一个 GET 请求: 导入 requests 模块: 在你的 Python 脚本或程序中,首先导入 requests 模块。 import requests指定目标 URL: 设置你要请求的目标 URL…

ACM练习——第二天

今天又是一天课,满课,很累哈,计组真的挺难的,但是多学学还是可以学明白。行吧,继续进入今天的ACM练习,现阶段都是主要练习Java到C的语言过渡。 因为今天的题目多半都是昨天的延伸,我就不提供Jav…

Python的函数定义中99%的人会遇到的一个坑

列表是一种经常使用的数据类型。在函数的定义中,常常会使用列表作为参数。 比如,要测试一个接口的数据,接口返回的数据格式如下: {"code": "20000", "data": ["孙悟空","李白&quo…

【C语言学习】24 - strcpy()函数

文章目录 1 函数原型2 参数3 返回值4 使用说明5 示例5.1 示例1 1 函数原型 strcpy():将str指向的字符串拷贝至dest,函数原型如下: char *strcpy(char *dest, const char *src);2 参数 strcpy()函数有两个参数src和dest: 参数s…

Python基础入门----使用Pipenv工具时产生的Pipfile和Pipfile.lock文件有什么区别以及有什么作用

文章目录 PipfilePipfile.lock实操示例当我们使用 Pipenv 工具进行 Python 项目的依赖管理时,会遇到两个重要的文件:Pipfile 和 Pipfile.lock。这两个文件在项目中扮演着不同但又相互补充的角色。接下来,我将详细介绍这两个文件的区别和作用,并提供一些具体的使用示例。 P…

基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码

基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于入侵杂草算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于入侵杂草优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要:针对PNN神…

C 语言多维数组

C 语言多维数组 在本教程中,您将借助示例学习使用多维数组(二维和三维数组)。 在C语言编程中,您可以创建一个数组数组。这些数组称为多维数组。例如, float x[3][4];这x是二维(2d)数组。该数…

二分法中的两个模板

在acwing的算法基础课中,yxc给出了二分的两个模板,这里举有序数组查找某个数的例子来说明这两个模板。 模板1: 当我们将区间[l, r]划分成[l, mid]和[mid 1, r]时,其更新操作是r mid或者l mid 1;,计算mid时不需要加…

单链表经典OJ题(三)

目录 1、反转链表 2、合并两个有序链表 3、链表的中间结点 4、环形链表的约瑟夫问题 5、移除链表元素 6、移除元素 1、反转链表 206. 反转链表 - 力扣(LeetCode) 翻转链表的实质就是更改当前结点的前驱结点和后继结点 假设原链表为:1->2->…

深入理解强化学习——马尔可夫决策过程:随机过程和马尔可夫性质

分类目录:《深入理解强化学习》总目录 下图介绍了强化学习里面智能体与环境之间的交互,智能体得到环境的状态后,它会采取动作,并把这个采取的动作返还给环境。环境得到智能体的动作后,它会进入下一个状态,把…

【电子通识】USB端口颜色编码标识

不知道你有没有发现 USB 口有不同的颜色,黑色、蓝色、紫色、红色、黄色等等,你知道不同颜色的 USB 口各代表什么意思吗? 这些颜色不是USB规范所要求的,设备制造商之间也不一致。例如,Intel使用橙色表示充电端口&#…

Spring Cloud学习(八)【RabbitMQ 服务异步通讯】

文章目录 初识 MQ同步通讯异步通讯MQ 常见框架 RabbitMQ 快速入门RabbitMQ 单机部署RabbitMQ概述常见消息模型 SpringAMQPSimpleQueue 模型WorkQueue 模型发布订阅模型发布订阅-Fanout Exchange发布订阅-DirectExchange发布订阅-TopicExchange消息转换器 初识 MQ 同步通讯 同步…

007 Linux fork()函数

前言 本文将会以提问的形式展开向你介绍fork函数 文章重点 关于fork函数,本文重点在于解决以下疑问 疑问一: 为什么fork之前的代码只有父进程执行,然而fork之后的代码父子进程都要执行 疑问二: 1、既然fork之后父子进程会执行一…

微信小程序:页面跳转传参问题

今天后端大兄弟突然拿着一个反编译过来的小程序源码,问能不能改。我心里直道好家伙,WebGIS开发的岗位,前端的活儿真是一个不少。大致看了看有几处是调整页面和接口修改的,源码部分和Vue项目语法十分相像,就临阵磨枪&am…