.NET大牛之路 • 王亮@精致码农 • 2021.10.19

前面我们花了二十篇左右的文章讲 C# 基础和高级知识点。由于后面要讲的东西还有很多,所以 C# 的内容没办法做到讲得细而全,只能走马观花一扫而过。在后面的内容中如果有遇到 C# 高级知识点,我们再稍带讲一下。

从今天开始我们进入 ASP.NET Core 知识的学习阶段。介于罗列知识点教科书式的讲解有些枯燥,所以本阶段使用实战示例的方式进行讲解,即在开发实际 Web 应用的时候把用到的知识点展开讲解。

1最小化可行产品

在《精益创业》一书中,作者提出了 MVP(Minimum Viable Product,最小化可行产品)理念,得到了很多人认可。MVP 理念核心就是通过不断挖掘用户的需求,不断做迭代增量开发,逐步将一个原型产品演变成满足用户需求的产品。

图片来源:bit.ly/3DKyY6W

我们也践行 MVP 这个理念,先开发并发布一个最小化可行的网站,后面会随着课程的推进而不断迭代和增量开发。也就是说后面每节课程都会完成此网站的一个或多个功能模块,或者完成一次优化或重构。

本阶段课程实战项目选的是一个电子书分享网站。该网站取名为Bookist,中文可以叫书大师,域名为 bookist.cc。在学习过程中,大家可以通过访问该域名查看示例效果,与自己完成的成果进行对比。

在我们边学习边实战的过程中,有时候为了补充知识点的讲解和演示,可能会在项目中穿插一些产品不需要的临时功能。

我们知道在软件开发方法中有原型法开发方法,原型法又分为抛弃式和演化式。由于我们现在并不知道最终的网站要做成什么样子,所以整个过程我们将采用演化式原型开发方法。

2环境准备

在本文编写时,.NET 6 RC2 刚发布,RC 版本是官方认为可以在生产环境运行的版本,而且 .NET 6 正式版也即将发布了,所以我们也改用 .NET 6 来开发。我的 VS 版本是 2022,安装时默认安装了 .NET 6 SDK。如果你用的是 VS 2019 或 VS Code,则可能要单独安装一下 .NET 6 SDK,请根据自己的需要到官网下载并安装:

https://dotnet.microsoft.com/download/dotnet/6.0

除了使用 .NET 6 这一要求,对于开发环境的其它工具方面大家根据自己喜好选择就行。为了照顾到使用非 Windows 操作系统的同学,我在课程中选用 VSC (Visaul Studio Code)作为代码编写工具。关于如何使用 VSC 开发 .NET 应用请参阅第 009 篇文章。

3开始开发

先创建一个名为 bookist 的项目文件夹,并用 VSC 打开该文件夹。

通过快捷捷 ctrl+` 打开 VSC 的命令行面板。用命令行创建一个解决方案(sln)文件,取名为 Bookist.sln

# 创建一个名为 Bookist 的解决方案
$ dotnet new sln -n Bookist
已成功创建模板“解决方案文件”。

注意:在本课程中,以 $ 开头的表示手动在终端输入的命令行,以 # 开关的代表注释,其它是运行命令后的输出。终端我用的是 Windows 中的 PowerShell,如果你用的是 Bash,注意目录操作的区别。

你可以到官方文档了解所有 dotnet 命令行工具的介绍:

https://docs.microsoft.com/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 ms)。
已成功还原。# 将 Bookist.Web 项目添加到当前解决方案
$ dotnet sln add Bookist.Web
已将项目“Bookist.Web\Bookist.Web.csproj”添加到解决方案中。

命令执行后,项目的目录结构如下:

这里暂且不介绍各个目录和文件,后面讲到相关知识点的时候再介绍。

现在,切换到 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

打开浏览器访问命令行提示的任意一个网址(比如这里的 http://localhost:5296,你的端口号可能和我的不一样,你也可以使用 ctrl + 鼠标单击 直接打开)。看到如下页面说明一切正常:

如果你使用的是 VS 开发,则直接通过可视化窗口即可完成上面的命令行操作。

4小结

这节课主要让大家了解 MVP 迭代增量开发的理念,并准备好 .NET 6 开发环境,和了解基本的 dotnet 命令行工具的使用。

一个电子书分享网站,最重要的功能就是电子书的展示并能够让用户下载。为了快速上线,我们的网站第一个版本将只展现一本电子书的分享,前期不考虑架构设计和数据库设计,首要目的先把从开发到上线的流程走通。

所以,下一篇我们将实现书大师网站的最小基础功能,并部署到生产环境,快速完成第一个版本的上线。

[031] 实战:书大师网站开发准备相关推荐

  1. php网上实训指导书,PHP网站开发技术-实训指导书2016吐血制作

    PHP网站开发技术?实训指导书 (int)(true+true) $a=5>7?"对":"不对";echo $a; $x=5;echo(++$x) $x= ...

  2. php网站开发项目实战,PHP动态网站开发项目实战

    任务1 分析网站需求1 1.1 知识准备1 1.1.1 功能结构图1 1.1.2 用例图2 1.2 任务实现5 1.2.1 花公子蜂蜜网站项目功能结构分析5 1.2.2 花公子蜂蜜网站项目用例分析6 ...

  3. Java实战 SpringBoot 网站开发 留言管理、网站后台留言管理模块、后台网站用户运营数据管理开发。

    <QA不加班 > 前言 Java SpringBoot 网站实战开发 留言管理.网站后台留言管理模块.后台网站用户运营数据管理开发. Java 网站开发网站运营后台管理和用户留言板功能后端 ...

  4. 第11课:JSP指令 Include指令 Taglib指令 (JSP教程 JSP入门实战教程 黄菊华Java网站开发系列教程)

    Include指令 JSP include 指令用于通知 JSP 引擎在翻译当前 JSP 页面时,将其他文件中的内容合并进当前 JSP 页面转换成的 Servlet 源文件中,这种在源文件级别进行引入 ...

  5. 《Spark SQL大数据实例开发》9.2 综合案例实战——电商网站搜索排名统计

    <Spark SQL大数据实例开发>9.2 综合案例实战--电商网站搜索排名统计 9.2.1 案例概述     本节演示一个网站搜索综合案例:以京东为例,用户登录京东网站,在搜索栏中输入搜 ...

  6. 微软ASP.NET 电商网站开发实战 MVC6 +HTML5 +WCF+WebAPI+NoSQL+mongoDB+Redis+Core视频 代码 面试题...

    <微软ASP.NET 电商网站开发实战 MVC6 +HTML5 +WCF+WebAPI+NoSQL+mongoDB+Redis+Core 视频 代码 面试题 >下载网盘:https://y ...

  7. 经验之谈:10位顶级PHP大师的开发原则

    导读:在Web开发世界里,PHP是最流行的语言之一,从PHP里,你能够很容易的找到你所需的脚本,遗憾的是,很少人会去用"最佳做法"去写一个PHP程序.这里,我们向大家介绍PHP的1 ...

  8. python ai应用开发_AI应用开发实战 - 从零开始搭建macOS开发环境

    AI应用开发实战 - 从零开始搭建macOS开发环境 联系我们 OpenmindChina@microsoft.com 零.前提条件 一台能联网的电脑,使用macOS操作系统 请确保鼠标.键盘.显示器 ...

  9. 轻松学HTML+CSS网站开发

    2019独角兽企业重金招聘Python工程师标准>>> <轻松学HTML+CSS网站开发>一书共分5篇. "概述篇" 主要包括网站工作机制.网页构成. ...

最新文章

  1. 利用 Cloudera 实现 Hadoop (一)
  2. 漫步者煲耳机软件_它是苹果AirPods的“真香替身”——漫步者lolliPods开箱体验...
  3. MySQL设置数据库的字符编码为utf8
  4. ant用途及简单实现
  5. 经典 HTML5 Javascript 俄罗斯方块游戏
  6. 前端学习(2446):总页码的处理
  7. Python —— any()函数和all()函数
  8. 一种新的子波域滤波算法
  9. 极客大学架构师训练营 性能优化 进程 线程 锁 存储 分布式数据库 第14课 听课总结
  10. qDebug用法详解
  11. 验票证明怎么打印_发票真伪查询打印系统软件
  12. fpgrowth算法实战 mlib_Spark MLlib FPGrowth关联规则算法
  13. 教你一个小技巧给latex表格添加脚注 (非footnote)
  14. “前首富”牟其中:欠的人情太多,要留着命来还
  15. roaringbitmap java,BitMap与RoaringBitmap、JavaEWAH
  16. 移动机器人c语言程序设计,机器人辅助C程序设计
  17. vue使用高德地图-进行显示地图和查询天气
  18. 2019中国科大夏令营机试
  19. funcode小游戏暑假大作业,开源,新颖,游戏名:凿空,免费。
  20. 搞笑文章|如何瘫痪你的电脑

热门文章

  1. UITableView定制accessoryView出现的连带问题
  2. 正则基础之——神奇的转义
  3. phpMailer 配置 企业邮局 163
  4. python怎么模拟浏览器交互_干货分享:python爬虫模拟浏览器的两种方法实例分析(赶紧收藏)...
  5. 【转载】负数的二进制
  6. 石子归并 51Nod - 1021
  7. 篇三:访问JSON静态文件
  8. 算法导论--广度优先搜索和深度优先搜索
  9. linux top 命令---VIRT,RES,SHR,虚拟内存和物理内存(
  10. c# 类的基本知识,未完,待续