网站大师内容管理系统(MVP开发先创建一个电子书分享网站Bookist分享)
优采云 发布时间: 2021-12-11 02:06网站大师内容管理系统(MVP开发先创建一个电子书分享网站Bookist分享)
我们也践行了MVP的理念,首先开发并发布了一个最小绑定可行的网站,然后我们会随着课程的进行不断迭代和增量开发。也就是说,后续的每一门课程都会完成这个网站的一个或多个功能模块,或者完成一个优化或者重构。
本阶段课程的实际项目是电子书分享网站。网站名为Bookist,中文可称为Book Master,域名为bookist。在学习过程中,您可以通过访问域名查看示例效果,并与您完成的结果进行比较。
在学习和实战过程中,有时为了补充知识点的讲解和演示,项目中可能会穿插一些产品不需要的临时功能。
我们知道软件开发方法中有原型开发方法,原型方法分为放弃型和进化型。由于我们不知道现在最终的网站会是什么样子,我们将在整个过程中采用进化的原型开发方法。
环境准备
在撰写本文时,.NET 6 RC2 刚刚发布。RC版官方认为可以在生产环境下运行,.NET 6正式版即将发布,所以我们也使用.NET 6进行开发。我的VS版本是2022,安装时默认安装.NET 6 SDK。如果您使用 VS 2021 或 VS Code,则可能需要单独安装 .NET 6 SDK。请根据需要从官网下载安装:
dotnet.microsoft/download/dotnet/6.0
除了使用.NET 6 的要求外,您还可以根据自己的喜好选择开发环境中的其他工具。为了照顾使用非Windows操作系统的同学,我在课程中选择了VSC(Visaul Studio Code)作为代码编写工具。如何使用VSC开发.NET应用,请参考009章文章。
开始开发
首先创建一个名为 bookist 的项目文件夹,并用 VSC 打开该文件夹。
通过快捷键ctrl+`打开VSC的命令行面板。使用命令行创建解决方案 (sln) 文件并将其命名为 Bookist.sln:
# 创建一个名为 Bookist 的解决方案
$ dotnet new sln -n Bookist
已成功创建模板“解决方案文件”。
注意:本课程中,$开头的代表终端手动输入的命令行,#开关代表注释,其他为运行命令后的输出。我使用的终端是 Windows 中的 PowerShell。如果使用 Bash,注意目录操作的不同。
可以去官方文档了解所有dotnet命令行工具的介绍:
docs.microsoft/en-us/dotnet/core/tools/
然后使用 ASP.NET Core 空模板(代号 web)创建一个 Web 项目,命名为 Bookist.Web,并将项目添加到解决方案中:
# 创建一个空的Web项目
$ dotnet new web -o Bookist.Web
在 D:\bookist\Bookist.Web\Bookist.Web.csproj 上运行“dotnet restore”...
正在确定要恢复的项目...
D:\bookist\Bookist.Web\Bookist.Web.csproj 已恢复(耗时 69 毫秒)。
成功恢复。
# 将 Bookist.Web 项目添加到当前解决方案中
$ dotnet sln 添加 Bookist.Web
项目“Bookist.Web\Bookist.Web.csproj”已添加到解决方案中。
命令执行后,项目的目录结构如下:
各种目录和文件这里暂不介绍,后面讲到相关知识点的时候再介绍。
现在,切换到 Bookist.Web 目录并使用以下命令运行项目:
$ cd .\Bookist.Web\
$ dotnet 运行
正在生成...
信息:Microsoftingtime[14]
现在收听:本地主机:7269
信息:Microsoftingtime[14]
现在收听:本地主机:5296
信息:Microsoftingtime[0]
应用程序启动。按 Ctrl+C 关闭。
信息:Microsoftingtime[0]
托管环境:开发
信息:Microsoftingtime[0]
内容根路径:D:\MyGitHub\bookist\Bookist.Web
打开浏览器访问命令行提示的任意网址(比如这里的localhost:5296,你的端口号可能和我的不一样,你也可以直接ctrl+鼠标点击打开)。看到如下页面说明一切正常:
如果使用VS开发,可以直接通过可视化窗口完成上述命令行操作。
概括
本课主要让大家了解MVP迭代增量开发的概念,准备.NET 6开发环境,了解基本的dotnet命令行工具的使用。
一个电子书分享网站,最重要的功能就是展示电子书,让用户下载。为了快速上线,我们网站的第一个版本只会显示电子书的分享。早期不考虑架构设计和数据库设计。主要目的是让从开发到上线的过程都经过。
因此,在下一篇文章中,我们将实现书主网站的最低限度的基本功能,并部署到生产环境中,快速完成第一版上线。
本文选自【.NET大牛路】星球,更完整的专栏请关注我。