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

ASP.NET Core 入门教程 1、使用ASP.NET Core 构建第一个Web应用

原文: ASP.NET Core 入门教程 1、使用ASP.NET Core 构建第一个Web应用

一、前言

1、本文主要内容

  • Visual Studio Code 开发环境配置
  • 使用 ASP.NET Core 构建Web应用
  • ASP.NET Core Web 应用启动类说明
  • ASP.NET Core Web 项目结构说明

2、本教程环境信息

软件/环境说明
操作系统Windows 10
SDK2.1.401
ASP.NET Core2.1.3
IDEVisual Studio Code 1.27
浏览器Chrome 69

3、前置知识

你可能需要的前置知识

  • VS Code + .NET Core快速开始

https://ken.io/serie/dotnet-core-quickstart

  • C#语法学习

http://www.runoob.com/csharp/csharp-tutorial.html

二、环境安装与配置

1、SDK 下载与安装

  • 下载

下载地址:https://www.microsoft.com/net/download

跨平台,根据自己的需求选择即可。
这里我下载的是:SDK 2.1.401,你可以选择2.1.x的最新版本

  • 安装

略,一直下一步即可,没什么需要特别注意的。
如果你真想了解,可以参考:https://ken.io/note/dotnet-core-qucikstart-helloworld-windows

2、VS Code下载&安装

  • VS Code 下载

下载地址:https://code.visualstudio.com/download
反正VS Code跨平台,根据自己的需要选择就可以了,

  • VS Code 安装

略,一直下一步即可,没什么特别注意的。
如果你用的macOS,直接拖动到应用程序目录即可,更简单快捷。

3、VS Code配置

  • 基础扩展安装
扩展说明
C#包括语法高亮显示、智能感知、定义、查找所有引用等。调试支持。网络核心(CoreCLR)。
Chinese (Simplified)简体中文补丁包

快捷键(Ctrl+Shift+X)进入扩展管理页,直接搜索扩展名安装即可,或者点击左侧工具栏图标进入扩展管理页

macOS版本快捷键是 Shift+Commnad+X

image

三、VS Code 开发 ASP.NET Core Web项目

1、项目创建

  • 通过命令行创建项目
#创建项目目录
mkdir projects

#进入项目目录
cd projects

#创建项目
dotnet new web -n helloweb

2、VS Code打开项目

菜单:文件->打开,选择项目目录打开项目

项目打开后,VS Code会检测到缺少两个必须的Package:OmniSharp、.NET Core Debugger
并且会自动帮你安装

Downloading package 'OmniSharp for Windows (.NET 4.6 / x64)' (31017 KB).................... Done!
Installing package 'OmniSharp for Windows (.NET 4.6 / x64)' Downloading package '.NET Core Debugger (Windows / x64)' (41984 KB).................... Done! Installing package '.NET Core Debugger (Windows / x64)' Finished 

安装完成后VS Code会提示:

Required assets to build and debug are missing from ‘helloweb’. Add them?

image

选择Yes即可。

这时候,可以看一下左侧资源管理器,我们可以看到.vscode目录添加了两个配置文件:launch.json,tasks.json。
项目的编译和调试配置文件就已经准备好了

image

3、VS Code启动项目

我们直接按下F5,或者菜单:调试->启动调试启动项目
ASP.NET Core 默认绑定是5001端口,而且ASP.NET Core 2.1之后默认绑定了HTTPS,项目启动成功后,VS Code会帮我们打开默认浏览器并访问:https://localhost:5001

因为我们并没有配置SSL证书,所以浏览器会发出警告⚠️,以Chrome为例:

image

这时候,我们点击高级,救护出现继续访问的入口

image

我们点击继续访问,就会出现Hello World!

image

4、修改绑定协议HTTPS为HTTP

接着我们可以修改配置去掉HTTPS协议绑定
打开Properties/launchSettings.json文件

{
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:53122", "sslPort": 44309 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "helloweb": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } } 

iisSettings、profiles.helloweb配置节点都有启动绑定配置,因为VS Code启动项目默认是不通过IIS来host的,iisSettings选项我们忽略即可。

 "helloweb": {
      "commandName": "Project",
      "launchBrowser": true, "applicationUrl": "http://localhost:5001", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } 

将applicationUrl修改为http://localhost:5001
然后重启项目(Ctrl+Shift+F5)机会看到干净纯洁的Hello World!

image

5、项目启动简介

  • 应用程序入口类
public class Program
{
    public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>(); } 

在应用启动的时候,会执行CreateWebHostBuilder方法,在这个方法中通过类Startup创建了默认了HostBuilder

  • 应用启动类
public class Startup
{

    ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); } } 
方法说明
ConfigureServices用于配置应用启动时加载的Service
Configure用于配置HTTP请求管道

web项目模板默认在项目启动的时候调用IApplicationBuilder.run方法,在当前HTTP上下文(HttpContext)中输出了Hello World!

context.Response.WriteAsync(“Hello World!”);

四、备注

1、项目结构说明

根目录/文件说明
.vscode目录VS Code项目配置目录,相当于.vs、.idea文件夹
bin目录编译输出目录,相当于Java项目的target目录
obj目录编译配置与中间目录,用于存放编译配置与编译中间结果
Properties目录用于存放项目配置
wwwroot目录静态文件目录
helloweb.csproj文件项目描述文件
Program.cs文件应用程序入口类文件
Startup.cs文件ASP.NET Core Web应用启动类文件,用于项目启动前进行相关配置

2、附录

  • 本文代码示例

https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapter-01

 


本文首发于我的独立博客:https://ken.io/note/asp.net-core-tutorial-web-helloworld

 

相关文章:

  • 第二周总结
  • THUSC 2017 D1T2 杜老师
  • JAVA企业级应用TOMCAT实战
  • 数据可视化之 Sankey 桑基图的实现
  • 前端面试题总结
  • VUE es6技巧写法(持续更新中~~~)
  • 用jquery写贪吃蛇
  • 解析Vue-router相关基础知识及工作原理
  • 订单的业务流程
  • 序列化与反序列化
  • java~@Async异步功能
  • 给Prometheus造假数据的方法
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • java Concurrent包学习笔记(六):Exchanger
  • 理解 Web 中的Session
  • Bootstrap JS插件Alert源码分析
  • HTML5新特性总结
  • Java的Interrupt与线程中断
  • LeetCode29.两数相除 JavaScript
  • Linux gpio口使用方法
  • Median of Two Sorted Arrays
  • Mithril.js 入门介绍
  • PHP变量
  • php中curl和soap方式请求服务超时问题
  • Python socket服务器端、客户端传送信息
  • Python学习笔记 字符串拼接
  • SpringBoot几种定时任务的实现方式
  • 你不可错过的前端面试题(一)
  • 手机端车牌号码键盘的vue组件
  • 应用生命周期终极 DevOps 工具包
  • 赢得Docker挑战最佳实践
  • 用quicker-worker.js轻松跑一个大数据遍历
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 积累各种好的链接
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • ​水经微图Web1.5.0版即将上线
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • ###C语言程序设计-----C语言学习(3)#
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (20050108)又读《平凡的世界》
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (过滤器)Filter和(监听器)listener
  • *p++,*(p++),*++p,(*p)++区别?
  • .FileZilla的使用和主动模式被动模式介绍
  • .net core 控制台应用程序读取配置文件app.config
  • .net framework4与其client profile版本的区别
  • .net 按比例显示图片的缩略图
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .net流程开发平台的一些难点(1)
  • .net网站发布-允许更新此预编译站点
  • @Bean有哪些属性
  • [ArcPy百科]第三节: Geometry信息中的空间参考解析
  • [C#]C# OpenVINO部署yolov8图像分类模型