今天看了Scott关于ASP.NET Core的介绍视频,发现用命令行一步一步新建项目、添加Package、Restore、Build、Run 执行的实现方式,更让容易让我们了解.NET Core的运行机制。

以下是这节课的课程的笔记,给大家分享。

课程准备:

  1. 安装.NET Core 运行环境,下载地址:https://www.microsoft.com/net/download
  2. 安装Notepad2替代notepad,Notepad2可以识别代码、以不同的颜色进行区分,下载地址:http://www.flos-freeware.ch/notepad2.html
  3. 了解几个cmd命令:
C: 打开C盘 md supermva 创建supermva文件夹
color a 命令行颜色改为绿色(更有逼格一些) cd supermva 打开supermva文件夹
cls 清除命令行 dir 查看文件目录
cd.. 返回上级目录 notepad 直接打开notepad
cd\ 返回到跟目录 Tab 自动补全功能
F7   查看历史命令 exit   退出cmd

一、CMD中查看dotnet core 信息

  1. >dotnet             查看已安装的dotnet信息
  2. >dotnet --version   查看dotnet版本
  3. >dotnet --help       查看dotnet命令帮助

二、创建Console程序

1)以下步骤实现了Console输出“Hello World”,也就相当于我们在VS中 创建控制台应用程序 → 还原Nuget包 → Build → 运行

  1. >md supermva                    创建supermva文件夹,
  2. >cd supermva                      定位到supermva文件夹
  3. >dir                       查看文件夹内容(此时为空)
  4. >dotnet new                        查看创建dotnet程序的说明和例子
  5. >dotnet new console             创建Console应用程序,supermva目录下生成了:Program.cs , supermva.csproj
  6. >notepad Program.cs            打开Program.cs文件,看到Main方法中输出了“Hello World”
  7. >notepad supermva.csproj    打开.csproj项目文件,看到程序的基本属性:TargetFramework
  8. >dotnet restore                    还原Nuget包
  9. >dotnet build                       build、complie一下
  10. >dotnet run                     运行程序,Console输出"Hello World"

2)记事本中修改Program.cs,读取用户输入值,然后输出:

using System;namespace supermva
{class Program{static void Main(string[] args){string name; Console.WriteLine("Hello World!"); name=Console.ReadLine(); Console.WriteLine($"Hello {name}"); // 新语法 }}
}

3)以上步骤的部分截图如下:

  console程序创建成功:生成了Program.cs和.csproj项目属性文件:

  

  

  build后生成了bin文件夹:

  

  修改Program.cs保存,dotnet run 重新运行程序:

  

三、创建Web Application

  web应用中,也就是用户向服务器发出HTTP请求,服务器响应然后返回给用户请求结果。

  项目类文件中,也就需要用到AspnetCore中处理HTTP请求的功能,引用(using)对应的命名空间。

  我们再把上面创建的Console应用程序,修改为Web应用程序。

1)  添加Nuget包: Microsoft.AspnetCore

  1. > dotnet add package Micorsoft.AspnetCore
  2. > notepad supermva.csproj                                打开项目属性文件,我们看到新增了对Microsoft.AspnetCore的引用
  3. > dotnet restore                                                添加新的包的时候,最好restore一下
  4. > dotnet build
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><OutputType>Exe</OutputType><TargetFramework>netcoreapp1.1</TargetFramework></PropertyGroup><ItemGroup><PackageReference Include="Microsoft.AspnetCore" Version="1.1.1" /></ItemGroup>
</Project>

2)添加Startup.cs类 ,接收请求并返回数据。

  • > notepad Startup.cs
  • > dotnet run

这时候运行程序,还是刚才的Console输出“Hello World”。这是因为程序的入口是Main方法,还不会执行到Startup.cs类中。

using System;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Builder;namespace moveToWeb
{public class Startup{public void Configure(IApplicationBuilder app){app.Run(context=>{return context.Response.WriteAsync("Hello Web");});}}
}

3) 修改Pragram.cs中的Main方法

   WebHost:  宿主,Web站点寄宿的地方。

   Builder:    创建、建置

   Kestrel : A web server for ASP.NET Core based on libuv.  这个是GitHub上对于Kestrel的定义。

   所以,对于这段代码的翻译就是:借助Kestrel 创建 Web Host , 把请求导向到Startup.cs类中进行处理,然后Build。

using System;
using Microsoft.AspNetCore.Hosting;
using moveToWeb; //记得添加引用namespace supermva
{class Program{static void Main(string[] args){var host = new WebHostBuilder().UseKestrel().UseStartup<Startup>().Build();host.Run(); }}
}

  • > dotnet run

提示:Application started, 浏览器打开,Startup.cs中输出的“Hello Web” 已经显示。

  这样,我们就完成了Web Application的创建。

四、进一步完善Web Application

  上面的应用,当我们在修改Startup.cs中的响应输出内容的时候,“Hello Web”→“Hello ASP.NET Core.” 点击保存,反复刷新浏览器,并没有输出我们刚刚修改的值。

  这是因为WebHoster并不知道我们的源文件发生了变化。

  现在我们添加一个Watcher工具,让WebHoster实时监控源文件,如果变化则自动重新Run一下,返回最新的响应信息。

1) supermva.csproj中,我们添加DotNet.Watcher工具,注意版本是:Version="1.0.0-*"

 <ItemGroup><DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0-*" /></ItemGroup>

  • >dotnet restore
  • >dotnet build

  Cli :Command Line Interface

2) 重新运行Web程序,在Startup.cs修改内容即时反应到了浏览器中

  • >dot watch run

  虽然没有VS简单方便,但是这样敲命令+记事本的方法新建一个Console和Web应用,可以一步一步查看每一步命令实现的功能、带来的变化。读创建过程中,CMD窗口的提示、读报错信息然后修正,这样循序渐进让我们更容易了解本质。

  "慢即是快”, ASP.NET Core , VS2017  Just Come On !

遇到问题:

1,Unable to load the service index for source https://api.nuget.org/v3/index.json

  → 可以FQ,或者把Restore命令的参数修改为Cnblogs 的 Nuget地址: > dotnet restore -s https://nuget.cnblogs.com/v3/index.json

2, 如果命令行中提示错误,看一下错误基本上能找到问题在哪里。如果添加新的Nuget包,记得再Restore一下。

MVA课程地址:

Introduction to ASP.NET Core with Visual Studio 2017

Learn what ASP.NET Core is, how to get and install it, and how to create a very quick sample application.

参考网站:

1) MVA: http://mva.microsoft.com

2) Docs : https://docs.microsoft.com

3) Net :  https://www.microsoft.com/net

4) KestrelHttpServer : https://github.com/aspnet/KestrelHttpServer/

4) Scoot Blog:http://www.hanselman.com/

5) Nuget : NuGet镜像上线试运行

本文地址:博客园 i-shanghai

转载于:https://www.cnblogs.com/i-shanghai/p/Getting_Started_with_ASPNET_Core.html

ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application相关推荐

  1. Anaconda or Miniconda windows下 cmd命令行模式创建、激活、关闭、删除虚拟环境方法步骤

    文章目录 前言 一.Conda创建虚拟环境 1.创建虚拟环境: 1.1 命令: 1.2 实例: 1.2.1 创建一个名字是py383的虚拟环境变量 1.2.2 输出结果: 2.在创建好的虚拟环境中安装 ...

  2. win服务器创建文件夹命令行,怎样在windows的cmd命令行下创建删除文件和文件夹...

    在window下我们往往通过'右键=>新建'命令来创建文件和文件夹,但有时会遇到 以点开头的文件,比如.log,这种文件用鼠标新建是新建不了的,这时我们可以在DOS下用命令行来创建.所以在这里我 ...

  3. 用命令行工具创建 NuGet 程序包

    NuGet.exe 下载地址 本文翻译自: https://docs.nuget.org/Create/Creating-and-Publishing-a-Package https://docs.n ...

  4. mysql创建表语句 cmd_mysql cmd命令行 创建数据库 表 基础语句

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u roo ...

  5. 通过CMD命令行创建和使用Android 模拟器 AVD

    进行Android APP测试时,若手持android手机设备稀少的情况下,我们可以通过创建Android模拟器AVD来代替模拟android手机设备,本文就具体介绍如何创建和使用AVD. 1.创建A ...

  6. 怎么让cmd命令行不关闭或查看tomcat启动一闪而过的原因

    场景:在运行tomcat的时候或者其他的bat文件,想保持cmd命令行窗口一直打开,以便查看里面的信息 现在你有一个startup.bat命令行文件,一般情况下正常启动是可以一直显示cmd命令行窗口的 ...

  7. c++ 调用cmd命令行函数 可隐藏黑框 四种方法总结

    在很多情况下,不得不调用cmd命令行,去实现一系列功能,总结靠谱方法两种如下: 方法一:可接受cmd命令行黑框一闪(推荐星数::可传值几乎任何cmd命令) string string getCmdRe ...

  8. 使用.Net Core编写命令行工具(CLI)

    使用.Net Core编写命令行工具(CLI) 命令行工具(CLI) 命令行工具(CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后 ...

  9. 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面

    原文:学习ASP.NET Core Razor 编程系列三--创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 ...

最新文章

  1. 深入理解Semaphore
  2. android简单的计算器
  3. Leetcode剑指 Offer II 024. 反转链表
  4. 工作区 暂存区 版本库之间的关系
  5. 你自己永远是个非常非常弱小的一个东西
  6. Android 如何将Canvas上绘制的内容保存成本地图片
  7. Junit单元测试学习笔记(一)
  8. linux 6.8 安装教程,CentOS 6.8 7.2 安装图解详细教程
  9. 为MongoDB定制Spring Social Connect框架
  10. Android按back后执行过程,安卓app测试获取接口返回数据,然后处理数据,放在一个button点击事件里面 执行顺序有问题?无法获取数据?...
  11. 矩池云上TensorBoard/TensorBoardX配置说明
  12. 每日一拍:linux升级python2.x到python3.x
  13. java jama_java矩阵包jama的简单操作
  14. 聚类(1)-- k-means clustering
  15. linux脚本编写乘法口诀,shell脚本编写乘法口诀
  16. 2022年电工(初级)国家题库及在线模拟考试
  17. 你可能不知道的关于Oracle Rac的事...
  18. 百度paddlepaddle《青春有你2》技术打卡五天学习总结与创意赛参加
  19. 企业级计算机储存容量,家用NAS与企业级NAS功能大比拼
  20. WPF x:Key标签

热门文章

  1. 我的程序人生以及一些杂项
  2. 千亿级别数字的人民币读法
  3. HDU 3062 Party
  4. Loadrunner中socket协议中的三个关联函数
  5. ViewPager+Fragment实现TabHost,Fragment动态添加、删除,Tab选项卡跟随滑动
  6. 如果拿到私钥的话,https会被攻击吗?
  7. [PLL][PM]锁相环模拟相位解调
  8. 关于Unable to execute dex: Java heap space 解决办法
  9. Android Handler.removeCallbacksAndMessages(null)的作用
  10. extjs 表单验证实例