ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application
今天看了Scott關(guān)于ASP.NET Core的介紹視頻,發(fā)現(xiàn)用命令行一步一步新建項(xiàng)目、添加Package、Restore、Build、Run 執(zhí)行的實(shí)現(xiàn)方式,更讓容易讓我們了解.NET Core的運(yùn)行機(jī)制。
以下是這節(jié)課的課程的筆記,給大家分享。
課程準(zhǔn)備:
| C: | 打開C盤 | md supermva | 創(chuàng)建supermva文件夾 |
| color a | 命令行顏色改為綠色(更有逼格一些) | cd supermva | 打開supermva文件夾 |
| cls | 清除命令行 | dir | 查看文件目錄 |
| cd.. | 返回上級(jí)目錄 | notepad | 直接打開notepad |
| cd\ | 返回到跟目錄 | Tab | 自動(dòng)補(bǔ)全功能 |
| F7 | 查看歷史命令 | exit | 退出cmd |
一、CMD中查看dotnet core 信息
二、創(chuàng)建Console程序
1)以下步驟實(shí)現(xiàn)了Console輸出“Hello World”,也就相當(dāng)于我們?cè)赩S中 創(chuàng)建控制臺(tái)應(yīng)用程序 → 還原Nuget包 → Build → 運(yùn)行
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程序創(chuàng)建成功:生成了Program.cs和.csproj項(xiàng)目屬性文件:
build后生成了bin文件夾:
修改Program.cs保存,dotnet run 重新運(yùn)行程序:
三、創(chuàng)建Web Application
web應(yīng)用中,也就是用戶向服務(wù)器發(fā)出HTTP請(qǐng)求,服務(wù)器響應(yīng)然后返回給用戶請(qǐng)求結(jié)果。
項(xiàng)目類文件中,也就需要用到AspnetCore中處理HTTP請(qǐng)求的功能,引用(using)對(duì)應(yīng)的命名空間。
我們?cè)侔焉厦鎰?chuàng)建的Console應(yīng)用程序,修改為Web應(yīng)用程序。
1) ?添加Nuget包: Microsoft.AspnetCore
2)添加Startup.cs類 ,接收請(qǐng)求并返回?cái)?shù)據(jù)。
- > notepad Startup.cs
- > dotnet run
這時(shí)候運(yùn)行程序,還是剛才的Console輸出“Hello World”。這是因?yàn)槌绦虻娜肟谑荕ain方法,還不會(huì)執(zhí)行到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站點(diǎn)寄宿的地方。
Builder: ? ?創(chuàng)建、建置
?Kestrel : A web server for ASP.NET Core based on libuv. ?這個(gè)是GitHub上對(duì)于Kestrel的定義。
所以,對(duì)于這段代碼的翻譯就是:借助Kestrel 創(chuàng)建 Web Host , 把請(qǐng)求導(dǎo)向到Startup.cs類中進(jìn)行處理,然后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” 已經(jīng)顯示。
這樣,我們就完成了Web Application的創(chuàng)建。
?四、進(jìn)一步完善Web Application
上面的應(yīng)用,當(dāng)我們?cè)谛薷腟tartup.cs中的響應(yīng)輸出內(nèi)容的時(shí)候,“Hello Web”→“Hello ASP.NET Core.” 點(diǎn)擊保存,反復(fù)刷新瀏覽器,并沒有輸出我們剛剛修改的值。
這是因?yàn)閃ebHoster并不知道我們的源文件發(fā)生了變化。
現(xiàn)在我們添加一個(gè)Watcher工具,讓W(xué)ebHoster實(shí)時(shí)監(jiān)控源文件,如果變化則自動(dòng)重新Run一下,返回最新的響應(yīng)信息。
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) 重新運(yùn)行Web程序,在Startup.cs修改內(nèi)容即時(shí)反應(yīng)到了瀏覽器中
- >dot watch run
?
雖然沒有VS簡(jiǎn)單方便,但是這樣敲命令+記事本的方法新建一個(gè)Console和Web應(yīng)用,可以一步一步查看每一步命令實(shí)現(xiàn)的功能、帶來的變化。讀創(chuàng)建過程中,CMD窗口的提示、讀報(bào)錯(cuò)信息然后修正,這樣循序漸進(jìn)讓我們更容易了解本質(zhì)。
"慢即是快”, 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命令的參數(shù)修改為Cnblogs 的 Nuget地址: > dotnet restore -s https://nuget.cnblogs.com/v3/index.json
2, 如果命令行中提示錯(cuò)誤,看一下錯(cuò)誤基本上能找到問題在哪里。如果添加新的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.
?
?
參考網(wǎng)站:
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鏡像上線試運(yùn)行
?
本文地址:博客園 i-shanghai
?
轉(zhuǎn)載于:https://www.cnblogs.com/i-shanghai/p/Getting_Started_with_ASPNET_Core.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET Core:CMD命令行+记事本 创建Console程序和Web Application的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Elasticsearch 的一些关键概
- 下一篇: .NET遇上Docker - 使用Doc