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

SDK

2.1.401

ASP.NET Core

2.1.3

IDE

Visual 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

三、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?

选择Yes即可。

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

3、VS Code启动项目

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

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

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

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

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!

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Windows Community

New Windows 10 SDK - Multi-instance UWP apps

概述 前面一篇 About Windows 10 SDK Preview Build 17110 中,我们简单介绍了 Multi-instance UWP Ap...

34390
来自专栏Porschev[钟慰]的专栏

Nodejs学习笔记(一)--- 简介及安装Node.js开发环境

学习资料   1.深入浅出Node.js http://www.infoq.com/cn/minibooks/nodejs   2.Node.js开发指南 简介...

37560
来自专栏GuZhenYin

ASP.NET Core使用静态文件、目录游览与MIME类型管理

前言 今天我们来了解了解ASP.NET Core中的静态文件的处理方式. 以前我们寄宿在IIS中的时候,很多静态文件的过滤 和相关的安全措施 都已经帮我们处理好...

363100
来自专栏王磊的博客

windows自定义快速启动(运行)命令

自定义运行(windows键+R)里面命令,启动设置的程序,如图: ? 它的设置方法有两种: 第一种设置方法: 第1步:在任意地方创建一个文件夹(建议在D盘根目...

377110
来自专栏小俊博客

微软 Edge 浏览器爆高危漏洞,受控电脑可执行任意命令

10月12日,有安全研究人员发布了Windows Shell REC( CVE-2018-8495))漏洞概念验证代码,受影响软件为Windows 10内置的M...

10710
来自专栏FreeBuf

Metasploit、powershell之Windows错误系统配置漏洞实战提权

? 01 引言 我们在获得目标机一个普通的权限时,除了常规提权方法外,还可以通过查找目标主机错误的系统配置和漏洞来获取系统权限。本节所讲的“Trusted S...

349100
来自专栏大内老A

ASP.NET Core中的缓存[1]:如何在一个ASP.NET Core应用中使用缓存

.NET Core针对缓存提供了很好的支持 ,我们不仅可以选择将数据缓存在应用进程自身的内存中,还可以采用分布式的形式将缓存数据存储在一个“中心数据库”中。对于...

293100
来自专栏跟着阿笨一起玩NET

通过SvcUtil.exe生成客户端代码和配置

WCF服务调用通过两种常用的方式:一种是借助代码生成工具SvcUtil.exe或者添加服务引用的方式,一种是通过ChannelFactory直接创建服务代理对象...

10320
来自专栏张善友的专栏

Visual Studio 2005/2008的代码段编辑器

代码段(Snippet)是可以从键盘上快速访问的代码模版。它不是代码生成器,而是一些面向常用编码模式的快捷方式。它支持字段链接,因此当修改某一处参数名称的时候就...

219100
来自专栏wOw的Android小站

[Sublime-Text] Linux下用Sublime-Text3编译输出Java文件

因为现在在借着经典的书籍巩固一些基础知识,所以会经常跑一些简单的程序,可又不想开庞大的IDE。所以就想试着用Sublime-Text来编译程序,哦,当然如果习惯...

11210

扫码关注云+社区

领取腾讯云代金券