最近在看砖头书 《C# 10 和 .NET 6 入门与跨平台开发,第六版》(.NET 8 那本太贵买不起),真是堪称废话大全,全是没用的八股和 IDE 截图,我甚至怀疑作者和译者都没有实际开发经验。有点看不下去,所以干脆直接动手吧,边重写这个博客,边学习吧。
首先需要安装 .NET8, 参考 Windows PowerShell 中通过 winget 命令行下载安装 .Net 8。
.NET 版本
> dotnet.exe --version
8.0.301
新建项目
WSL 下直接执行,或者 PowerShell 中也可以
> dotnet.exe new mvc -n BlogNet8
-n 是 --name 的缩写,即指定了项目名,也自动创建了项目目录。
如果想使用自带的用户管理功能,可以加上 auth 参数:
> dotnet.exe new mvc -n BlogNet8 --auth=Individual
这样,生成的项目相对不加 auth 参数的,会在默认首页右上角多了个注册和登录的功能,而且使用了 sqlite 数据库。
目录结构
.Net 8 MVC 默认生成的目录结构跟其他语言的 MVC 框架没有什么大的分别,比较好理解。 会看到内置了 bootstrap,跟 laravel 类似,其实挺方便。
> tree
.
├── BlogNet8.csproj
├── Controllers
│ └── HomeController.cs
├── Models
│ └── ErrorViewModel.cs
├── Program.cs
├── Properties
│ └── launchSettings.json
├── Views
│ ├── Home
│ │ ├── Index.cshtml
│ │ └── Privacy.cshtml
│ ├── Shared
│ │ ├── Error.cshtml
│ │ ├── _Layout.cshtml
│ │ ├── _Layout.cshtml.css
│ │ └── _ValidationScriptsPartial.cshtml
│ ├── _ViewImports.cshtml
│ └── _ViewStart.cshtml
├── appsettings.Development.json
├── appsettings.json
├── obj
│ ├── BlogNet8.csproj.nuget.dgspec.json
│ ├── BlogNet8.csproj.nuget.g.props
│ ├── BlogNet8.csproj.nuget.g.targets
│ ├── project.assets.json
│ └── project.nuget.cache
└── wwwroot
├── css
│ └── site.css
├── favicon.ico
├── js
│ └── site.js
└── lib
├── bootstrap
│ ├── LICENSE
│ └── dist
│ ├── css
│ │ ├── bootstrap-grid.css
│ │ ├── bootstrap.css
│ │ ├── bootstrap.css.map
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.rtl.css
│ │ ├── bootstrap.rtl.css.map
│ │ ├── bootstrap.rtl.min.css
│ │ └── bootstrap.rtl.min.css.map
│ └── js
│ ├── bootstrap.bundle.js
│ ├── bootstrap.js
│ ├── bootstrap.js.map
│ ├── bootstrap.min.js
│ └── bootstrap.min.js.map
├── jquery
│ ├── LICENSE.txt
│ └── dist
│ ├── jquery.js
│ ├── jquery.min.js
│ └── jquery.min.map
├── jquery-validation
│ ├── LICENSE.md
│ └── dist
│ ├── additional-methods.js
│ ├── additional-methods.min.js
│ ├── jquery.validate.js
│ └── jquery.validate.min.js
└── jquery-validation-unobtrusive
├── LICENSE.txt
├── jquery.validate.unobtrusive.js
└── jquery.validate.unobtrusive.min.js
20 directories, 80 files
运行
> dotnet.exe run
Building...
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5180
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:\work\BlogNet8
然后直接在浏览器里访问:
http://localhost:5180
即可。
注意,这里的端口号是随机分配的,并不是固定的。
修改端口
如果要改成自己习惯的端口,可以修改文件:
Properties/launchSettings.json
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5180",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7286;http://localhost:5180",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
将上面的 5180 改成 5000 即可。然后再次运行
> dotnet.exe run
访问 http://localhost:5000 就能看到效果。
命令帮助
new mvc 时,支持的参数还挺多的,可以通过下面命令查看具体的参数。例如,是否默认支持用户认证之类,选择 .NET 版本之类。
> dotnet.exe new mvc --help
ASP.NET Core Web App (Model-View-Controller) (C#)
Author: Microsoft
Description: A project template for creating an ASP.NET Core application with example ASP.NET Core MVC Views and Controllers. This template can also be used for RESTful HTTP services.
...
继续阅读
基于 ASP.NET Core in .NET 8 开发了一个在线二维码生成工具
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式