終於開始了,微軟的野心將通過全場景開發平臺dotnet 5體現得淋漓盡致!
本文已經同步到微信公眾號「極客起源」 。
現在都在談論全場景開發,也就是用一套開發工具,可以開發包括但不限於桌面、移動、IOT、遊戲、Web等平臺的應用。這樣對於開發人員是非常爽的。本文將介紹微軟推出的開發平臺:.net 5,這個開發平臺將完美地滿足我們的各種開發需求。.net 5也是.net家族的下一代產品。
我們只需要使用.net 5,就可以為Windows、Linux、macOS、iOS、Android、tvOS、watchOS、Web等平臺開發應用,是不是很酷呢?本文會介紹一下.net 5的一些新特性。並親手開發我們的第一個基於.net 5的程式。從.NET Core專案開始以來,微軟已經向該平臺添加了大約五萬個.NET Framework API。 .NET Core 3.0為了縮小與.NET Framework 4.8的功能差距,添加了Windows Forms,WPF、Entity Framework6等功能。.NET5在此基礎上,利用.NET Core和Mono的優勢建立了一個單一平臺,你可以將其用於所有的現存的.net程式碼,一個完整的與.net framework平齊的跨平臺開發平臺終於誕生了。
Visual Studio Code一開始並不支援.net 5開發,需要安裝各種外掛。現在開啟Visual Studio Code,切換到外掛頁面(點選左側第5個按鈕),並在外掛搜尋欄中輸入C#,會列出如下圖所示的外掛。第1個是必須安裝的,其他一些包含C#的外掛,大家能安裝就安裝一下吧,多多益善,反正我是大多數都安裝了。右側顯示綠色“安裝”按鈕的是還未安裝的外掛,沒有該按鈕的是已經安裝的外掛,點選外掛,會在右側顯示外掛的詳細資訊。
Visual Studio Code的工程是以資料夾形式管理的。第1次開啟Visual Studio Code,是如下圖這樣的。點選“開啟資料夾”按鈕開啟一個資料夾,就相當於開啟一個工程了,如果是個空資料夾,那麼就是空工程。也可以先建立一個空資料夾,然後再開啟該資料夾
這裡新建立一個名為first的資料夾,然後開啟該資料夾,如下圖所示。當滑鼠放到資料夾上時,右側會顯示4個按鈕,其中第2個是新建子資料夾。
現在在first下新建一個名為src的子資料夾,並且在該資料夾的右鍵選單中點選“在整合終端中開啟”,如下圖所示。
這時會在右下角開啟一個終端,在終端輸入dotnet new console命令,會建立一個控制檯.net工程,如果輸出如下圖所示的資訊,說明建立.net工程成功了。
這時應該在src目錄中生成一堆檔案和目錄,如果Visual Studio Code左側工程樹沒有重新整理,重啟一下就出來了。在生成的若干檔案中有一個Program.cs檔案,是.net 應用的入口檔案,因為該檔案中有一個Main方法。已經有一行輸出文字的例子了,如下圖所示。
接下來在終端輸入dotnet run命令,系統就會編譯和運行當前的.net 工程,並輸出如下圖所示的結果。
不過現在都是通過命令列執行應用,非常不方便。其實Visual Studio Code也有直接通過IDE執行和除錯的功能。現在切換到“執行”頁面,如下圖所示。
然後點選“建立launch.json檔案”連結,會彈出如下圖的選項列表,選擇第1個(.NET Core)。
這時會建立一個如下圖所示的launch.json檔案。
還需要重新開啟一下first工程,然後再次切換到“執行”頁面,會看到上方有一個執行按鈕,如下圖所示。
現在點選“執行”按鈕,會在終端輸出執行資訊,如下圖所示。
很明顯,程式的輸出資訊也在裡面。
下面我們來編寫一個用於計算階乘的C#程式,程式碼如下:using System; namespace src { class Program { static int factorial(int n) { if(n == 0) { return 1; } else { return n * factorial(n - 1); } } static void Main(string[] args) { Console.WriteLine("10! = " + factorial(10)); } } }執行程式,會輸出如下內容: 10! = 3628800 當然,Visual Studio Code同樣支援斷點除錯功能,只需要用滑鼠單擊需要設定斷點的程式碼行前面,就會顯示一個表示斷點的紅點,現在執行程式,程式就會停到斷點的位置,然後可以單步跟蹤程式碼了,如下圖所示。 本文是關於.net 5和C# 9的第1篇文章,後續將推出系列文章,詳細介紹如何用Visual Studio Code、Visual Studio 2019、.NET 5以及C# 9開發更復雜的應用。