在命令行下新建一个 .NET 8 MVC 项目

文章目录

    最近在看砖头书 《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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式