[031] 实战:书大师网站开发准备
.NET大牛之路 ? 王亮@精致碼農(nóng) ? 2021.10.19
前面我們花了二十篇左右的文章講 C# 基礎(chǔ)和高級知識點。由于后面要講的東西還有很多,所以 C# 的內(nèi)容沒辦法做到講得細而全,只能走馬觀花一掃而過。在后面的內(nèi)容中如果有遇到 C# 高級知識點,我們再稍帶講一下。
從今天開始我們進入 ASP.NET Core 知識的學(xué)習階段。介于羅列知識點教科書式的講解有些枯燥,所以本階段使用實戰(zhàn)示例的方式進行講解,即在開發(fā)實際 Web 應(yīng)用的時候把用到的知識點展開講解。
1最小化可行產(chǎn)品
在《精益創(chuàng)業(yè)》一書中,作者提出了 MVP(Minimum Viable Product,最小化可行產(chǎn)品)理念,得到了很多人認可。MVP 理念核心就是通過不斷挖掘用戶的需求,不斷做迭代增量開發(fā),逐步將一個原型產(chǎn)品演變成滿足用戶需求的產(chǎn)品。
圖片來源:bit.ly/3DKyY6W我們也踐行 MVP 這個理念,先開發(fā)并發(fā)布一個最小化可行的網(wǎng)站,后面會隨著課程的推進而不斷迭代和增量開發(fā)。也就是說后面每節(jié)課程都會完成此網(wǎng)站的一個或多個功能模塊,或者完成一次優(yōu)化或重構(gòu)。
本階段課程實戰(zhàn)項目選的是一個電子書分享網(wǎng)站。該網(wǎng)站取名為Bookist,中文可以叫書大師,域名為 bookist.cc。在學(xué)習過程中,大家可以通過訪問該域名查看示例效果,與自己完成的成果進行對比。
在我們邊學(xué)習邊實戰(zhàn)的過程中,有時候為了補充知識點的講解和演示,可能會在項目中穿插一些產(chǎn)品不需要的臨時功能。
我們知道在軟件開發(fā)方法中有原型法開發(fā)方法,原型法又分為拋棄式和演化式。由于我們現(xiàn)在并不知道最終的網(wǎng)站要做成什么樣子,所以整個過程我們將采用演化式原型開發(fā)方法。
2環(huán)境準備
在本文編寫時,.NET 6 RC2 剛發(fā)布,RC 版本是官方認為可以在生產(chǎn)環(huán)境運行的版本,而且 .NET 6 正式版也即將發(fā)布了,所以我們也改用 .NET 6 來開發(fā)。我的 VS 版本是 2022,安裝時默認安裝了 .NET 6 SDK。如果你用的是 VS 2019 或 VS Code,則可能要單獨安裝一下 .NET 6 SDK,請根據(jù)自己的需要到官網(wǎng)下載并安裝:
https://dotnet.microsoft.com/download/dotnet/6.0除了使用 .NET 6 這一要求,對于開發(fā)環(huán)境的其它工具方面大家根據(jù)自己喜好選擇就行。為了照顧到使用非 Windows 操作系統(tǒng)的同學(xué),我在課程中選用 VSC (Visaul Studio Code)作為代碼編寫工具。關(guān)于如何使用 VSC 開發(fā) .NET 應(yīng)用請參閱第 009 篇文章。
3開始開發(fā)
先創(chuàng)建一個名為 bookist 的項目文件夾,并用 VSC 打開該文件夾。
通過快捷捷 ctrl+` 打開 VSC 的命令行面板。用命令行創(chuàng)建一個解決方案(sln)文件,取名為 Bookist.sln:
# 創(chuàng)建一個名為 Bookist 的解決方案 $ dotnet new sln -n Bookist 已成功創(chuàng)建模板“解決方案文件”。注意:在本課程中,以 $ 開頭的表示手動在終端輸入的命令行,以 # 開關(guān)的代表注釋,其它是運行命令后的輸出。終端我用的是 Windows 中的 PowerShell,如果你用的是 Bash,注意目錄操作的區(qū)別。
你可以到官方文檔了解所有 dotnet 命令行工具的介紹:
https://docs.microsoft.com/en-us/dotnet/core/tools/然后使用 ASP.NET Core 空模板(代號為 web)創(chuàng)建一個 Web 項目,取名為 Bookist.Web,并將該項目添加到解決方案:
# 創(chuàng)建一個空的 Web 項目 $ dotnet new web -o Bookist.Web 在 D:\bookist\Bookist.Web\Bookist.Web.csproj 上運行 “dotnet restore”...正在確定要還原的項目…已還原 D:\bookist\Bookist.Web\Bookist.Web.csproj (用時 69 ms)。 已成功還原。# 將 Bookist.Web 項目添加到當前解決方案 $ dotnet sln add Bookist.Web 已將項目“Bookist.Web\Bookist.Web.csproj”添加到解決方案中。命令執(zhí)行后,項目的目錄結(jié)構(gòu)如下:
這里暫且不介紹各個目錄和文件,后面講到相關(guān)知識點的時候再介紹。
現(xiàn)在,切換到 Bookist.Web 目錄,使用下面命令運行項目:
$?cd .\Bookist.Web\ $ dotnet run 正在生成... info: Microsoft.Hosting.Lifetime[14]Now listening on: https://localhost:7269 info: Microsoft.Hosting.Lifetime[14]Now listening on: http://localhost:5296 info: Microsoft.Hosting.Lifetime[0]Application started. Press Ctrl+C to shut down. info: Microsoft.Hosting.Lifetime[0]Hosting environment: Development info: Microsoft.Hosting.Lifetime[0]Content root path: D:\MyGitHub\bookist\Bookist.Web打開瀏覽器訪問命令行提示的任意一個網(wǎng)址(比如這里的 http://localhost:5296,你的端口號可能和我的不一樣,你也可以使用 ctrl + 鼠標單擊 直接打開)。看到如下頁面說明一切正常:
如果你使用的是 VS 開發(fā),則直接通過可視化窗口即可完成上面的命令行操作。
4小結(jié)
這節(jié)課主要讓大家了解 MVP 迭代增量開發(fā)的理念,并準備好 .NET 6 開發(fā)環(huán)境,和了解基本的 dotnet 命令行工具的使用。
一個電子書分享網(wǎng)站,最重要的功能就是電子書的展示并能夠讓用戶下載。為了快速上線,我們的網(wǎng)站第一個版本將只展現(xiàn)一本電子書的分享,前期不考慮架構(gòu)設(shè)計和數(shù)據(jù)庫設(shè)計,首要目的先把從開發(fā)到上線的流程走通。
所以,下一篇我們將實現(xiàn)書大師網(wǎng)站的最小基礎(chǔ)功能,并部署到生產(chǎn)環(huán)境,快速完成第一個版本的上線。
總結(jié)
以上是生活随笔為你收集整理的[031] 实战:书大师网站开发准备的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何让组织的KPI成为敏捷转型的推手而不
- 下一篇: SingnalR 开发到生产部署闭坑指南