使用Visual Studio Code開發.NET Core看這篇就夠了

来源:https://www.cnblogs.com/yilezhu/archive/2018/11/07/9926078.html
-Advertisement-
Play Games

作者:依樂祝 原文地址:https://www.cnblogs.com/yilezhu/p/9926078.html 在本文中,我將帶著大家一步一步的通過圖文的形式來演示如何在Visual Studio Code中進行.NET Core程式的開發,測試以及調試。儘管Visual Studio Cod ...


作者:依樂祝
原文地址:https://www.cnblogs.com/yilezhu/p/9926078.html

在本文中,我將帶著大家一步一步的通過圖文的形式來演示如何在Visual Studio Code中進行.NET Core程式的開發,測試以及調試。儘管Visual Studio Code的部分功能還達不到Visual Studio的水平,但它實際上已經足夠強大來滿足我們的日常開發。而且其輕量化,插件化以及跨平臺的特性則是VS所不具備的。而且Visual Studio Code還可以通過社區來創建一系列的擴展來增強其功能,且社區已經足夠活躍。我們可以期待更多很酷的擴展和功能來增強VS Code,這將使在這個輕量級,跨平臺編輯器中的開發.NET Core應用程式更加流暢和有趣。趕緊跟著博主一起開始今天的文章吧!

為什麼要寫這篇文章?

因為上篇文章也說了,.NET Core已經全面跨平臺了,而且我們也在嘗試使用Linux了,但是上篇CentOS開發ASP.NET Core入門教程 中使用的CLI進行.NET Core開發的話,感覺很不適應。畢竟從.net過度過來的我們已經習慣了使用Microsoft的Visual Studio進行開發。那麼有沒有一款媲美Visual Studio的開發工具可以讓我們能夠在Linux系統上進行高效的.NET Core開發呢?答案是肯定的,因為微軟已經開發了一個名為Visual Studio Code的跨平臺和開源的文本編輯器。Visual Studio Code是如此強大和令人驚嘆,因為它提供了內置的智能提醒,調試功能和Git支持。而且Visual Studio Code提供了強大的插件擴展功能。使得你可以在插件擴展庫裡面找到滿足你需求的插件。如果你沒有在他們的擴展庫中找到它,那麼你還可以自己創建一個插件並使用它。很酷,對嗎?那就開始吧!

安裝

這部分,我們將講解如何進行Visual Studio Code的安裝,配置以便進行.NET Core的開發

準備工作

  1. 安裝.NET Core SDK。具體的安裝方式大伙可以點擊這裡進行查看併進行安裝。因為微軟的東西都比較傻瓜式,所以這裡就不演示了。

  2. 安裝Visual Studio Code。您可以從此處 然後根據您的操作系統進行選擇下載,不同操作系統的安裝過程可能會有所不同 您可以在此處 查看Visual Studio Code的安裝說明。還是 因為微軟的東西都比較傻瓜式,所以這裡就不演示了。1541339022729

  3. 在Visual Studio Code 中安裝C# 擴展以便讓Visual Studio Code 支持C#的開發,當然你也可以安裝其他語言的擴展來進行其他編程語言的開發,比如說python,go等等。為了安裝c#的擴展,你可以通過Visual Studio Code左側工具欄中的Extensions圖標或使用鍵盤快捷鍵Ctrl + Shift + X打開Extensions視圖。在搜索框中搜索C#並從列表中安裝擴展程式。如下圖所示: 1541339435927

    這裡需要註意下,安裝完成之後,需要重啟下Visual Studio Code才能夠使用C#擴展功能。1541339538011
    重啟之後會出現如下的界面,表示已經安裝好了C#擴展1541339685496

    使用Visual Studio Code開發基本的.NET Core程式

    既然環境都已經準備好了,那麼現在我們就開始使用Visual Studio Code開發一個.NET Core應用程式吧!
  4. 在電腦上一個位置創建一個名為DotNetCoreSample的空文件夾,然後右鍵單擊該文件夾,從彈出的菜單中選擇“使用Visual Studio Code打開”。這將打開Visual Studio Code,並將選定該文件夾作為工作區。當然也可以通過下圖所示的步驟來打開這個文件夾,這個按照你的習慣來操作就好。1541340456205

  5. 使用`Ctrl+Shift+`` 快捷鍵在 Visual Studio Code 中快速打開終端,如下圖所示:

    1541590018735

  6. 接下來我們使用dotnet new console --name DotNetCoreSample 命令來在這個打開的終端裡面創建一個基礎的控制台程式併進行restore。如下圖所示

    1541590248007

  7. 接下來我們打開生成的Program.cs 文件,Visual Studio Code會安裝OmniSharp插件,然後會在右下角彈出如下圖所示的是否需要生成用來構建以及調試的資產文件的詢問視窗,這裡點擊“是”就會幫我們生成“launch.json”以及“task.json”文件,這些文件將有助於使用Visual Studio代碼構建和調試應用程式 。

    1541590405069

    1541590667259

  8. 下麵我們修改下Program.cs 文件中的內容,添加下麵這行代碼。然後保存文件,並把滑鼠移動到終端,然後終端cd到我們的項目目錄cd DotNetCoreSample。輸入dotnet run 然後按下Enter鍵,可以看到如下所示的內容:

    1541591036238

Visual Studio Code中vscode-solution-explorer解決方案管理器插件的使用

可能很多.neter朋友們剛開始使用Visual Studio Code的時候很不適應各種命令行dotnet命令來創建項目以及解決方案。幸運的是,Visual Studio Code擴展中提供了類似於Visual Studio的解決防範資源管理的插件來解決這個問題。下麵我們一步一步的看下如何使用此插件吧!

  1. 打開Visual Studio Code擴展,然後輸入vscode-solution-explorer,然後如下圖所示進行安裝。

    1541591973934

  2. 安裝後插件後,VS Code Explorer左側欄中將多了一個顯示名為“SOLUTION EXPLORER”的新窗格。

    1541592290514

  3. 接下來我們使用它來創建解決方案,併在解決方案中添加項目吧。我們按下快捷鍵Ctrl + Shift + P

    然後選擇“Create a new empty solution ” VS Code 將提示我們輸入一個解決方案的名稱。我們輸入一個SimpleCalculator 作為解決方案的名稱。

    1541592847941

  4. 現在,VS Code將使用我們提供的名稱創建一個空的解決方案。在後臺,我們安裝的擴展將執行dotnet new sln  命令。您可以在“SOLUTION EXPLORER”窗格中看到空白解解決方案。然後此擴展程式將詢問你是否創建模板文件夾請參見下圖。如果允許,它將在.vscode / solution-explorer 目錄中添加一些模板。

    1541593203311

  5. 現在,讓我們向這個空白的解決方案中添加類庫和控制台應用程式。右鍵單擊解決方案(在Solution Explorer窗格中),然後從上下文菜單中選擇Add new project選項。這將列出.NET CLI提供的可用項目類型(請參見下圖)。選擇“類庫”選項。

    1541593412253

    1541593430198

  6. 系統將詢問您將使用哪種語言。選擇C#,編輯器將提示輸入項目名稱。 像我們之前給出的那樣給出MathOperations的名稱。類庫已添加到解決方案中。

  7. 重覆相同的步驟並添加名為“Calculator ”的控制台應用程式。請記住從項目模板中選擇控制台應用程式。

  8. 現在我們需要在控制台應用程式中添加類庫項目的引用。右鍵單擊控制台應用程式項目,然後從上下文菜單中選擇“添加引用”選項。由於解決方案中只有兩個項目,擴展程式將自動添加另一個項目的引用。如果有兩個以上的項目,我們需要從列表中選擇項目。

    1541593786278

  9. 導航到類庫目錄MathOperations。將Class1.cs  類文件重命名為MathOperations.cs。在類中添加一個兩個數字的簡單簡單加法的方法,代碼如下:

        public static class MathOperation    
        {    
            public static int Add(int num1, int num2) => num1 + num2;
        }  
  10. 修改導航到Calculator控制台程式併在Program.cs文件中使用類庫中的方法。這裡大家可以使用Shift + Alt + F快捷鍵格式化代碼。如下所示:

    static void Main(string[] args)
            {
                int num1 = 10;
                int num2 = 20;
                int sum = MathOperation.Add(num1, num2); // Method from class library    
                Console.WriteLine($"{num1} + {num2} = {sum}");
                Console.ReadLine();
            }
  11. 現在,右鍵單擊解決方案資源管理器樹中的控制台應用程式項目,然後從上下文菜單中選擇“運行”選項。您可以看到.NET CLI將在後臺運行應用程式。併在Output視窗中輸出結果,如下圖所示。

    1541594980618

    1541594999015

Visual Studio Code在.NET Core應用程式中運行測試插件

單元測試是軟體開發不可或缺的一部分。這裡我不打算詳細解釋單元測試,因為有很多線上資源。我只給大家介紹如何在.NET Core應用程式中包含單元測試以及可用於運行單元測試的Visual Studio Code的擴展。

  1. 首先讓我們該寫下數學運算的類庫方法
 public static class MathOperation
    {
        public static int Add(int num1, int num2) => num1 + num2;
        public static int Subtract(int num1, int num2) => num1 - num2;

        public static int Multiply(int num1, int num2) => num1 * num2;

        public static int Divide(int num1, int num2) => num1 / num2;
    }
  1. 現在,我們需要在解決方案中添加一個單元測試項目。

我們可以使用.NET CLI或上面提到的Solution Explorer擴展來添加單元測試項目。要通過Solution Explorer擴展添加項目,請右鍵單擊解決方案,然後 從上下文菜單中選擇“ 添加新項目 ”。從項目模板中選擇xUnit Test Project 並命名為 MathOperationTests。創建測試項目後,將MathOperations類庫的引用添加到測試項目中。

如果您使用的是.NET CLI,則需要運行以下命令。

dotnet new xunit -n MathOperationTests  
dotnet add MathOperationTests\MathOperationTests.csproj reference MathOperations\MathOperations.csproj  
dotnet sln SimpleCalculator.sln add MathOperationTests\MathOperationTests.csproj
  1. UnitTest1.cs重命名為OperationTests.cs。也要在代碼中更改類名。現在我們將為類庫方法添加一些測試。

    public class OperationTests
        {
            [Fact]
            public void AddTwoNumbers_ReturnsSum()
            {
                var num1 = 10;
                var num2 = 20;
                var result = MathOperation.Add(num1, num2);
                Assert.Equal(30, result);
            }
    
            [Fact]
            public void SubtractTwoNumbers_ReturnsDifference()
            {
                var num1 = 20;
                var num2 = 10;
                var result = MathOperation.Subtract(num1, num2);
                Assert.Equal(10, result);
            }
    
            [Fact]
            public void MultiplyTwoNumbers_ReturnsProduct()
            {
                var num1 = 10;
                var num2 = 20;
                var result = MathOperation.Multiply(num1, num2);
                Assert.Equal(200, result);
            }
    
            [Fact]
            public void DivideTwoNumbers_ReturnsQuotient()
            {
                var num1 = 20;
                var num2 = 10;
                var result = MathOperation.Divide(num1, num2);
                Assert.Equal(2, result);
            }
        }
  2. 現在,我們需要運行我們創建的測試。我們為此使用.NET CLI。打開終端。導航到MathOperationTests目錄。輸入dotnet test命令。我們將獲得以下輸出。

    1541596760373

  3. 如您所見,輸出信息量較少。如果我們在Visual Studio中有類似於Test Explorer的東西來執行我們的單元測試並查看結果,那將會很好。好消息是有一個名為.NET Core Test Explorer的Visual Studio Code插件。下麵按照下圖所示在Visual Studio代碼中安裝此擴展吧。這裡不過多說明瞭

    1541597219891

  4. 安裝擴展程式後,您可以在左側活動欄中看到一個燒杯圖標。單擊該圖標,您將看到測試的側欄面板,其中列出了項目中發現的單元測試。測試項目將顯示在按命名空間和類分組的樹視圖中。您還可以看到每個測試的“運行”按鈕和頂部的“全部運行”按鈕。單擊Run All按鈕,您可以看到正在執行的所有測試及其結果。

    1541597348658

  5. 我們可以看到所有測試都已通過,併在測試資源管理器窗格中標有綠色勾號。現在讓我們讓測試失敗。我將更改Add方法的邏輯以使測試失敗。

     public static int Add(int num1, int num2) => num1 - num2;//這裡有bug
  6. 現在再次運行測試。我們可以看到我們對Add方法的測試失敗,併在test explorer窗格中用紅色符號標記。

    1541597509689

  7. 如果我們導航到我們編寫的測試方法,我們可以看到它現在在Assert方法中有一個紅色的波浪下劃線。如果我們將滑鼠懸停在該波浪線上,將顯示一個信息框,顯示測試的實際值和預期值。VS代碼的底部面板(終端所在的面板)的“ 問題”選項卡中顯示相同的信息。這可以在下圖中看到。

    1541597599699

  8. 修複錯誤並再次運行測試,以便所有測試都通過,我們可以再次看到綠色標記。

Visual Studio Code中順暢的調試.NET Core應用程式

在這部分,我們將瞭解如何在Visual Studio Code中順暢的調試.NET Core應用程式。為了在Visual Studio Code中調試.NET Core應用程式,我們需要為VS Code安裝C#擴展。(上面我們已經安裝過了)

  1. 我們首先在Calculator控制台程式的Program.cs文件中加入斷點。與Visual Studio類似,我們可以通過單擊源代碼文件的左邊距,或者將游標放在一行代碼上並按F9,在源代碼中設置行斷點。斷點在編輯器的左邊緣顯示為紅點。

  2. 要開始調試,請按F5。這將自動將調試器附加到我們的Calculator應用程式來啟動應用程式。我們可以看到執行在我們設置的斷點處停止,這有助於我們在調試時瞭解當前的程式狀態。

    1541598520046

    這裡需要註意下,需要修改launch.json中的對應路徑以及項目名稱為Calculator。

    1541598690693

  3. 我們可以看到VS Code的Debug視圖在編輯器的左側打開。Debug視圖顯示與調試相關的所有信息。我們還可以註意到編輯器頂部出現了一個調試工具欄。調試時,調試工具欄可用於代碼導航選項。這裡調試試圖的大部分功能跟vs2017差不多,因此這裡不做過多地闡述了。

總結

在本文中,我已經為大家一步一步的通過圖文教程解釋瞭如何在Visual Studio Code中進行.NET Core程式的開發,測試以及調試。趕緊下載一個試試吧!你會發現你會越來越喜歡他的!
本文參考:https://www.c-sharpcorner.com/article/create-a-net-core-development-environment-using-visual-studio-code2/


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • TCP三次握手階段 三次握手總述 第一階段: 概念:半連接池 三次握手正常狀態 三次握手異常狀態syn_rcvd TCP四次揮手階段 四層揮手總述 UDP與TCP的區別 示例:如下圖訪問如下網址就會出現下麵的信息https://www.cnblogs.com/huwentao/p/9845379.h ...
  • 1.原因現在還不知,試了幾個地方可以和不可以 ...
  • 一、變數 1、實例變數(又叫欄位、屬性) 創建對象時給對象賦值 形式: self.xxx = xxx 訪問: 對象名.xxx 只能由對象訪問 1 class Person: 2 def __init__(self,age,name): 3 self.name = name #實例變數 4 self. ...
  • 步驟: 點擊Project->Properties->Libraries->Add External Class Folder.. ->選擇你的文件路徑->確定 1.點擊擊Project->Properties 2.選擇Libraries後點擊Add External Class Folder 3. ...
  • 本篇主要分享的是springboot中結合aop方式來記錄請求參數和響應的數據信息;這裡主要講解兩種切入點方式,一種方法切入,一種註解切入;首先創建個springboot測試工程並通過maven添加如下依賴: 先來說方法的切點方式,需要創建個名為LogAspect的組件類,然後用@Aspect註解修 ...
  • 1. Java鎖的種類 在筆者面試過程時,經常會被問到各種各樣的鎖,如樂觀鎖、讀寫鎖等等,非常繁多,在此做一個總結。介紹的內容如下: 樂觀鎖/悲觀鎖 獨享鎖/共用鎖 互斥鎖/讀寫鎖 可重入鎖 公平鎖/非公平鎖 分段鎖 偏向鎖/輕量級鎖/重量級鎖 自旋鎖 以上是一些鎖的名詞,這些分類並不是全是指鎖的狀 ...
  • 2018 11 07日記 概覽 今日立冬, 信息時代帶來的焦躁讓學習無法深入, 所以打算以寫日記的形式戒掉焦躁, 重拾醉心學習的狀態. Synchronized與SyncRoot技術同步線程數據 Serializable特性作用 RPC(遠程方法調用) 數據同步 在多個線程中共用數據, 很容易出現 ...
  • osgi.net是一個動態的模塊化框架。它向用戶提供了模塊化與插件化、面向服務構架和模塊擴展支持等功能。該平臺是OSGi聯盟定義的服務平臺規範移植到.NET的實現。 簡介 尤埃開放服務平臺是一個基於.NET平臺的動態的模塊化中間件,它主要向用戶提供了模塊化與插件化、面向服務架構和模塊擴展三大功能,適 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...