<sub id="gqw76"><listing id="gqw76"></listing></sub>
      <sub id="gqw76"><listing id="gqw76"></listing></sub>

    1. <form id="gqw76"><legend id="gqw76"></legend></form>
    2. 使用 .NET CLI 構建項目腳手架

      前言

      在微服務場景中,開發人員分配到不同的小組,系統會拆分為很多個微服務,有一點是,每個項目都需要單元測試,接口文檔,WebAPI接口等,創建新項目這些都是重復的工作,而且還要保證各個項目結構的大體一致,這時就需要一個適用于企業內部的框架模板,類似于前端的腳手架,可以做到開箱即用,注重業務功能開發,提升工作效率。

      簡介

      NET 命令行接口 (CLI) 工具是用于開發、生成、運行和發布 .NET 應用程序的跨平臺工具鏈。

      本次主要介紹的是 dotnet new 命令,可以通過這個命令創建我們的自定義模板,我們安裝完.NET SDK后,本身自帶了一些項目模板,可以通過 dotnet new --list 查看已經安裝的模板。

      接下來,我會介紹如何構建自定義的項目模板。

      準備工作

      首先,我們需要準備一個簡單的項目模板,我們希望以后可以通過腳手架,自動為我們生成這些項目和文件,這里面可能包含了單元測試項目,WebAPI項目等。

      你也可以在這里找到項目源代碼,https://github.com/SpringLeee/Dy.Template

      在本地創建 Dy.Template 文件夾,并在文件夾內創建 templates 文件夾(后邊所有的模板文件都在這里), 這里我創建了一個解決方案,里面包含了3個項目,WebAPI,Test 和 Task,項目結構如下:

      構建模板

      在 templates 文件夾內,創建一個名為 ".template.config" 的文件夾(可以通過命令 mkdir .template.config 創建, 然后進入該文件夾,再創建一個名為 "template.json" 的新文件, 文件夾結構應如下所示:

      然后修改配置文件如下:

      {
        "$schema": "http://json.schemastore.org/template",
        "author": "SpringLee",
        "classifications": [ "Template" ],
        "name": "Dy.Template",
        "identity": "Dy.Template", 
        "shortName": "dy-template",
        "tags": {
          "language": "C#" 
        },
        "sourceName": "Template" 
      }
      

      上面是一些基本的描述信息,需要注意的是 "sourceName" 屬性,它相當于一個變量,我們通過這個屬性,可以創建 Dy.Order.WebAPI, Dy.User.WebAPI 這樣的項目,后邊我會進行詳細介紹。

      打包模板

      基礎工作已經準備完成,我們還需要把項目打包,發布到Nuget.org 或者是公司的內部 Nuget Server,這樣其他人才可以下載和安裝這個模板。

      你可能很熟悉在.NET 中對單個項目進行打包,比如類庫,可以在VS中直接對項目使用右鍵打包,也可以使用dotnet pack命令,不一樣的是,我們需要打包的是整個項目結構,而不是單個項目。

      我們在 Dy.Template 文件夾下,創建 template-pack.csproj 文件

      修改內容如下:

      <Project Sdk="Microsoft.NET.Sdk">
      
        <PropertyGroup>
          <PackageType>Template</PackageType>
          <PackageVersion>1.0.0</PackageVersion>
          <PackageId>Dy.Template</PackageId>
          <Title>Dy.Template</Title>
          <Authors>SpringLee</Authors>
          <Description>Dy.Template</Description>
          <PackageTags>dotnet-new;templates;Dy.Template</PackageTags>
      
          <TargetFramework>netstandard2.0</TargetFramework>
      
          <IncludeContentInPack>true</IncludeContentInPack>
          <IncludeBuildOutput>false</IncludeBuildOutput>
          <ContentTargetFolders>content</ContentTargetFolders>
          <NoWarn>$(NoWarn);NU5128</NoWarn>
        </PropertyGroup>
      
        <ItemGroup>
          <Content Include="templates\**\*" Exclude="templates\**\bin\**;templates\**\obj\**" />
          <Compile Remove="**\*" />
        </ItemGroup>
      
      </Project>
      

      我們指定了程序包的基礎信息,版本ID, 描述信息,包含了 templates 文件夾下的所有文件,然后排除了 bin\ obj\ 文件夾的dll文件。

      然后,運行 dotnet pack 命令進行打包, 你可以在 /bin/nuget/ 文件夾找到 生成的 nupkg 文件

      在win10的應用商店(Microsoft Store)安裝 Nuget Package Explore

      我們把生成的 nupkg 文件 丟到 Nuget Package Explore 里查看,結構如下,包含了我們的 .config 配置文件,各個項目,解決方案。

      最后,你可以把程序包推送到 nuget 服務器。

      安裝并使用

      在終端中運行 dotnet new --install Dy.Template 命令安裝,安裝成功后,應該可以看到下邊的輸出,里邊包含了我們的自定義模板

      運行 dotnet new Dy.Template --name=Order,--name 指定了變量值,它會自動幫我們生成 Order 項目,這很棒!

      歡迎掃碼關注我們的公眾號 【全球技術精選】,專注國外優秀博客的翻譯和開源項目分享。

      posted @ 2021-03-09 19:45  SpringLeee  閱讀(458)  評論(1編輯  收藏  舉報
      最新chease0ldman老人|无码亚洲人妻下载|大香蕉在线看好吊妞视频这里有精品www|亚洲色情综合网

        <sub id="gqw76"><listing id="gqw76"></listing></sub>
        <sub id="gqw76"><listing id="gqw76"></listing></sub>

      1. <form id="gqw76"><legend id="gqw76"></legend></form>