ASP.NET Core:CMD命令行+記事本 創建Console程序和Web Application


今天看了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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM