日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

[ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]

發(fā)布時間:2023/12/4 asp.net 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇] 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

微軟在千禧年推出 .NET戰(zhàn)略,并在兩年后推出第一個版本的.NET Framework和IDE(Visual Studio.NET 2002,后來改名為Visual Studio),如果你是一個資深的.NET程序員,相信傳統(tǒng)的.NET應(yīng)用的開發(fā)方式已經(jīng)深深地烙印在你的腦子里面。.NET Core帶來了全新的開發(fā)體驗(yàn),但開發(fā)方式的差異根本不足以成為你快速跨入.NET Core 世界的門檻,因?yàn)樵?NET Core在很多方面比傳統(tǒng)的.NET Framework應(yīng)用開發(fā)要簡單。為了消除很多尚未接觸過.NET Core的讀者對未知世界的恐懼,我們先通過幾個簡單的Hello World應(yīng)用讓大家感受一下在Windows上的.NET Core全新的開發(fā)體驗(yàn)。

一、安裝開發(fā)環(huán)境

.NET Core的官方站點(diǎn)介紹了在各種平臺下安裝開發(fā)環(huán)境的方式??偟膩碚f,我們在不同的平臺下開發(fā).NET Core應(yīng)用都需要安裝相應(yīng)的SDK和IDE。成功安裝SDK之后,我們在本地將自動擁有.NET Core的運(yùn)行時(CoreCLR)、基礎(chǔ)類庫以及相應(yīng)的開發(fā)工具。

dotnet.exe是.NET Core SDK為我們提供的一個重要的命令行工具,我們在進(jìn)行.NET Core應(yīng)用的開發(fā)部署的時候?qū)l繁地使用它。dotnet.exe提供了很多有用的命令,為了不“節(jié)外生枝”,我們就不對它們作系統(tǒng)介紹了,如果后續(xù)章節(jié)涉及到相關(guān)命令,我們再對它們作針對性的介紹。當(dāng).NET Core SDK安裝結(jié)束之后,我們可以運(yùn)行dotnet命令來確認(rèn)SDK是否安裝成功。如下圖所示,我們執(zhí)行dotnet --info命令查看當(dāng)前安裝的.NET Core SDK的基本信息,顯示的信息包含SDK的版本、運(yùn)行時環(huán)境以及本機(jī)按照的所有運(yùn)行時版本。

二、選擇IDE

高效的開發(fā)自然離不開一個優(yōu)秀的IDE,在這方面作為一個.NET開發(fā)者是幸福的,因?yàn)槲覀儞碛杏钪娴谝坏拈_發(fā)神器Visual Studio。雖然Visual Studio Code也不失為一個優(yōu)秀的IDE,如果Windows依舊是我們主要的開發(fā)環(huán)境,我個人還是推薦使用Visual Studio。當(dāng)我在敲這行文字的時候,Visual Studio的最新版本為2019。順便說一下,Visual Studio已經(jīng)提供了Mac版本。

Visual Studio Code是一個完全免費(fèi)并且提供全平臺支持(Windows、Mac和Linux)的IDE,我們可以直接在其官網(wǎng)(https://code.visualstudio.com/)上下載。Visual Studio 2019提供了社區(qū)版(Community)、專業(yè)版(Professional)和企業(yè)版(Enterprise),其中社區(qū)版是免費(fèi)的,專業(yè)版和企業(yè)版需要付費(fèi)購買。Visual Studio的官網(wǎng)地址為https://www.visualstudio.com/。

除了Visual Studio和Visual Studio Code,我們還可以使用一款叫做Rider的IDE來開發(fā).NET Core應(yīng)用。Rider是著名的JetBrains公司開發(fā)的一款專門針對.NET的IDE,我們可以利用它來開發(fā)ASP.NET、.NET Core、Xmarin以及Unity應(yīng)用。和Visual Studio Code一樣,Rider同樣也是個跨平臺的IDE,我們可以同時在Windows、Max OS X以及各種桌面版本的Linux Distribution上使用它。不過這不是一款免費(fèi)的IDE,對它感興趣的朋友可以在官方站點(diǎn)載30天試用版。

三、項(xiàng)目模板

dotnet .exe提供了基于 “腳手架(Scaffolding)”創(chuàng)建初始應(yīng)用的new命令。如果需要開發(fā)某種類型的.NET Core應(yīng)用,我們一般不會從第一行代碼寫起,而是利用這個命令幫助我們創(chuàng)建一個具有初始結(jié)構(gòu)的應(yīng)用程序。除此之外,在開發(fā)過程中如果需要添加某種類型的文件(比如各種類型的配置文件、MVC的視圖文件等),我們也可以利用該命令來完成,通過這種方式添加的文件具有預(yù)定義的初始內(nèi)容。.NET Core SDK在安裝的時候?yàn)槲覀兲峁┝艘幌盗蓄A(yù)定義的腳手架模板,我們可以按照如下圖所示的方式執(zhí)行命令行“dotnet new --list”列出當(dāng)前安裝的腳手架模板。

上圖列出的就是NET Core SDK安裝后提供的預(yù)定義的腳手架模板,這些模板大致分為Project Template和Item Template兩類,前者為我們創(chuàng)建一個初始項(xiàng)目,后者則在一個現(xiàn)有項(xiàng)目中針對某種項(xiàng)目元素添加一個或者多個對應(yīng)的文件。細(xì)心的讀者可以從圖2中看到dotnet new命令具有一個--type參數(shù),該參數(shù)具有三個預(yù)定義的選項(xiàng)(project、item和other),其中前兩個分別對應(yīng)著Project和Item這兩種模板類型。

如果這些預(yù)定義的腳手架模板不能滿足我們的需求,我們還可以創(chuàng)建自定義的Project或者Item模板,至于自定義模板該如何定義,有興趣的讀者朋友可以參考.NET Core官方文檔。自定義模板最終會封裝成一個NuGet包,我們可以通過執(zhí)行dotnet new -i或者dotnet new --install命令對其進(jìn)行安裝。除此之外,對于已經(jīng)安裝的模板,我們可以通過執(zhí)行dotnet new -u或者dotnet new --uninstall命令將其卸載。

四、創(chuàng)建一個控制臺程序

接下來我們利用dotnet new命令(dotnet new console -n helloworld)按照如下圖所示的方式創(chuàng)建一個名為“helloworld”的控制臺程序。和傳統(tǒng)的.NET Framework應(yīng)用一樣,一個針對C#的.NET Core項(xiàng)目依然由一個對應(yīng)的.csproj文件來定義,圖3所示的helloworld.csproj就是這么一個文件。

對于傳統(tǒng)的.NET Framework應(yīng)用來說,即使是一個空的C#項(xiàng)目,定義該項(xiàng)目的.csproj文件在內(nèi)容和結(jié)構(gòu)上都是很復(fù)雜的,因?yàn)檫@個.csproj文件的結(jié)構(gòu)并不是面向開發(fā)者設(shè)計的,我們也不會直接編輯這個文件,而是利用Visual Studio通過設(shè)置當(dāng)前項(xiàng)目的某些屬性間接地修改它。但是對于一個.NET Core應(yīng)用來說,這個.csproj文件的結(jié)構(gòu)變得相對簡單并清晰了一些,以至于作為開發(fā)人員的我們經(jīng)常會直接編輯它。對于前面我們執(zhí)行腳手架命令創(chuàng)建的控制臺程序,定義項(xiàng)目的helloworld.csproj文件的完整內(nèi)容如下。

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>

如上面的代碼片段所示,這個helloworld.csproj是一個根節(jié)點(diǎn)為<Project>的XML文件,與項(xiàng)目相關(guān)的屬性可以分組定義在相應(yīng)的<PropertyGroup>節(jié)點(diǎn)下。這個helloworld.csproj文件實(shí)際上只定義了兩個屬性,分別是通過<OutputType><TargetFramework>節(jié)點(diǎn)表示的編譯輸出類型和目標(biāo)框架。由于我們創(chuàng)建的是一個針對.NET Core 3.0的可執(zhí)行控制臺應(yīng)用,所以目標(biāo)框架為“netcoreapp3.0”,編譯輸出為Exe。

我們執(zhí)行的dotnet new命令行除了幫助我們創(chuàng)建一個空的控制臺程序之外,還會幫助我們生成一些初始化代碼,這就是項(xiàng)目目錄下的這個Program.cs文件的內(nèi)容。如下所示的代碼片段給出了定義在這個文件的整個C#代碼的定義,我們可以看到它定義了代表程序入口點(diǎn)的Main方法,并在這個方法中將字符串“Hello World”打印在控制臺上。

using System;
namespace helloworld
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}

通過執(zhí)行腳手架命令行創(chuàng)建出來應(yīng)用程序雖然簡單,但是它卻是一個完整的.NET Core應(yīng)用,它可以在無需任何修改的情況下直接編譯和運(yùn)行。針對.NET Core應(yīng)用的編譯和運(yùn)行同樣是利用這個dotnet.exe命令行來完成的。如下圖所示,在進(jìn)入當(dāng)前項(xiàng)目所在目錄之后,我們執(zhí)行dotnet build命令對這個控制臺應(yīng)用實(shí)施編譯,由于默認(rèn)采用Debug編譯模式,所以編譯生成的程序集會保存在\bin\debug\目錄下。除此之外,針對不同目標(biāo)框架編譯生成的程序集是不同的,由于我們創(chuàng)建的是針對.NET Core 3.0的應(yīng)用程序,所以最終生成的程序集被保存在“\bin\Debug\netcoreapp3.0\”目錄下。

如果查看編譯的輸出目錄,我們會發(fā)現(xiàn)兩個同名(“helloworld”)的文件,一個是helloworld.dll,另一個是helloworld.exe,后者在尺寸上會大很多。很明顯helloworld.exe是一個可以直接運(yùn)行的可執(zhí)行文件,而helloworld.dll僅僅是一個單純的動態(tài)鏈接庫,需要借助命令行dotnet.exe才能執(zhí)行。

如圖5所示,當(dāng)我們在項(xiàng)目目錄下執(zhí)行dotnet run命令后,編譯后的程序隨即被執(zhí)行,程序入口Main方法中指定的“Hello World”字符串被直接打印在控制臺上。其實(shí)當(dāng)我們執(zhí)行dotnet run命令啟動程序之前無需顯示執(zhí)行dotnet build對源代碼實(shí)施編譯,因?yàn)樵撁顣詣佑|發(fā)編譯操作。在執(zhí)行dotnet命令啟動應(yīng)用程序集的時候,我們也可以直接指定啟動程序集的路徑(dotnet bin\Debug\netcoreapp3.0\helloworld.dll)。

總結(jié)

以上是生活随笔為你收集整理的[ASP.NET Core 3框架揭秘] 跨平台开发体验: Windows [上篇]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。