以WebAPI方式实现了一个简单的用户系统,包括用户的注册、登录、获取或更新用户信息等功能。
- 以用户系统为例的增改查操作(EF,数据库使用Sqlite)
- API文档生成使用Swagger
关于.NET core的详细资料,建议看看.NET Core官方文档, 以及Introduction to ASP.NET Core。
此项目完全使用vs code开发。
安装如下扩展(一般打开过C#文件的话,前两个扩展应该安装好了)
- C#
- C# Extensions
- C# FixFormat
- C# XML Documentation Comments
- Rest Client 使用RestClient提交API请求
注意:
- 微软已发布dotnetcore 2.1,需要从2.0升级到2.1版,因为2.0并不是长期支持版本。
- dotnet build貌似不会拷贝appSettings.json等配置文件到生成目录,需要用dotnet publish
如何使用dotnet cli可以参考官方文档
- 创建核心类库
dotnet new classlib -f netstandard2.0 -o SimpleUsers.Core
- 创建webapi项目
dotnet new webapi -o SimpleUsers.WebAPI
- 添加引用关系(WebAPI引用Core)
dotnet add SimpleUsers.WebAPI/SimpleUsers.WebAPI.csproj reference SimpleUsers.Core/SimpleUsers.Core.csproj
- 在项目文件中添加如下代码(以SimpleUsers.WebAPI项目为例),为项目启用XML的注释功能(方便Swagger制作API文档)
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <DocumentationFile>bin\Debug\netcoreapp2.1\SimpleUsers.WebAPI.xml</DocumentationFile> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <DocumentationFile>bin\Release\netcoreapp2.1\SimpleUsers.WebAPI.xml</DocumentationFile> </PropertyGroup>
- 为VS添加sln文件(可选)
dotnet new sln dotnet sln SimpleUsers.sln add SimpleUsers.Core/SimpleUsers.Core.csproj SimpleUsers.WebAPI/SimpleUsers.WebAPI.csproj
- 添加EF Core
dotnet add SimpleUsers.Core/SimpleUsers.Core.csproj package Microsoft.EntityFrameworkCore
- 添加dynamic支持
dotnet add SimpleUsers.Core/SimpleUsers.Core.csproj package Microsoft.CSharp
- 添加EF Core & Sqlite
dotnet add SimpleUsers.WebAPI/SimpleUsers.WebAPI.csproj package Microsoft.EntityFrameworkCore.Sqlite
- 添加Swagger.net
dotnet add SimpleUsers.WebAPI/SimpleUsers.WebAPI.csproj package Swashbuckle.AspNetCore
- 若EF版本与Core不一致,可以添加EF
dotnet add SimpleUsers.WebAPI/SimpleUsers.WebAPI.csproj package Microsoft.EntityFrameworkCore
.net core 相比.net framework更加模块化。
- 自带依赖注入(IServiceCollection)
- 全新的程序配置方式(IConfiguration),支持多种文件格式配置以及环境变量配置等
步骤:
- 创建单元测试文件夹
mkdir SimpleUsers.Tests
- 添加单元测试项目以及引用Core类库
cd SimpleUsers.Tests dotnet new xunit dotnet add reference ..\SimpleUsers.Core\SimpleUsers.Core.csproj
- 添加单元测试类
- 执行单元测试
cd .. dotnet test
- EF数据库迁移(DbMigration)
- 使用Autofac依赖注入,可以参考我在读一本书时的示例
- 使用razor pages制作页面
- 使用IdentityServer4实现OAuth及第三方登录