前端的话不一定实现,先考虑把,到时候有时间来个react全家桶或者vue全家桶,不立flag,不然老是心太大,不能脚踏实地
备注:我用的是windows10
系统,但是我安装了git bash
(安装git
的时候勾选的linux
风格),所以我cmd
能用大部分linux
命令,很简单就是环境变量Path
添加两个值C:\Program Files\Git\mingw64\bin
和C:\Program Files\Git\usr\bin
# 在要创建模板的目录打开cmd,个人不习惯powershell,毕竟直接在目录上输入三个字母和十个字母还是有区别的
# 创建模板列表文件夹,以后不止一个模板,我项目是准备打包成模板的
md temple
# 进入模板列表文件夹
cd temple
# 创建第一个模板文件夹SimpleApiTemple
md SimpleApiTemple
# 进入第一个模板文件夹SimpleApiTemple
cd SimpleApiTemple
# 创建解决方案文件夹content,当然下面几步也可以用visual studio等IDE工具去创建整个项目,我嫌太慢,直接命令
md context
# 进入解决方案文件夹
cd context
# 创建解决方案,请确保安装.net core sdk(visual studio 2019最新版安装web开发就自带了,没安装的也可以去微软官网下载安装)
dotnet new sln -n Nest
# 开始创建仓储三层
# webapi层,我的skd是.net 5(.net core 3.x的下一个版本就是.net 5,哈哈没有core了)
dotnet new webapi -n Nest.WebApi
# 业务访问层,我就不叫BLL了
dotnet new classlib -n Nest.Application
# 创建数据访问层,不对叫基础设施层好点,算了直接核心层
dotnet new classlib -n Nest.Core
# 把项目都加到解决方案里面,linux下记得把反斜杠改为斜杠
dotnet sln add .\Nest.WebApi\Nest.WebApi.csproj
dotnet sln add .\Nest.Application\Nest.Application.csproj
dotnet sln add .\Nest.Core\Nest.Core.csproj
visual studio
(后面全部简称vs
)打开Nest.sln
解决方案Nest.WebApi
引用Nest.Application
,直接双击Nest.WebApi
项目名,在Project
节点下添加ItemGourp
节点,再在添加的ItemGroup
节点下添加项目引用节点ProjectReference
属性为被引用项目的csproj
地址Nest.Application
引用Nest.Core
,操作同上nuget
安装依赖包,菜单栏找到工具
->Nuget包管理器
->程序包管理控制台
当然也可以直接点下面的管理解决方案的nuget程序包
去安装,这里直接控制台安装Nest.Core
Install-Package Microsoft.EntityFrameworkCore.Sqlite
Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson
Application
Install-Package AutoMapper.Extensions.Microsoft.DependencyInjection
Nest.WebApi
Install-Package Autofac.Extensions.DependencyInjection
Install-Package Autofac.Extras.DynamicProxy
最终三个项目的csproj后缀的项目文件如下(swagger在新建.net5的webapi已经自带):
Nest.Core
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="5.0.6" />
</ItemGroup>
</Project>
Application
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
</ItemGroup>
</Project>
Nest.WebApi
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="7.1.0" />
<PackageReference Include="Autofac.Extras.DynamicProxy" Version="6.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" />
</ItemGroup>
</Project>
现在把Nest.WebApi
运行测试一下,当然个人比较喜欢kestrel
方式启动,我会删了iis的配置,我的Nest.WebApi
项目下Properties
文件夹的launchSettings.json
文件内容如下
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"Nest.WebApi": {
"commandName": "Project",
"dotnetRunMessages": "true",
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
vs
菜单点击git
(新版本vs
才有,老版本在团队资源管理器,建议更新)->创建git存储库
,选择远程仓库,把上面的地址黏贴到远程仓库
后面的RemoteUrl
,点击创建推送,仓库地址:https://gitee.com/shuisen/simple-api-temple.git开篇总算完结,这里解释下为啥不直接git init
去创建git
版本控制,因为你要自己去写.gitignore
忽略文件去忽略比如生成的dll
啊什么的,我最不喜欢svn
的地方就是得自己管理忽略。
下篇预告:仓储三层实践:02swagger配置
原文:https://www.cnblogs.com/ShuiSen/p/14855247.html