本篇为Part II:Project Setup

查看第一篇《Part I:  Business Scenario

第一步,准备步骤。

准备步骤一,下载.NET Core 2.2 SDK;

官方网址是:https://dot.net (貌似会redirect去https://dotnet.microsoft.com/),选择Download .NET Core 2.2 SDK,并正确安装。

准备步骤二,下载SQL Server 2017 Express;

SQL Server的官方网址是:https://www.microsoft.com/en-us/sql-server/
数据库的选择因人而异,这里选择MS免费的SQL Server Express。虽然也有SQL Server 2019 Preview版本,但考虑Preview版本不是RC版本,稳定性上,不建议选择。

MySQL是另外一个选择。但是选择SQL Server Express 的优点是官方指代的Library就够用了。

注意,安装数据库时候,默认安装一个instance。

准备步骤三,下载Visual Studio Community OR Visual Studio Express

个人推荐Visual Studio Code。

虽然Visual Studio Community应该更合适,但是考虑到熟悉命令行显然更便于将来切换到non-Windows平台上。

另外,Visual Studio Community 2017的臭名昭著的卸载问题,也是放弃其的一个原因。

第二步,创建Project

ASP.NET Core 官方的Tutorial文档:https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.0&tabs=visual-studio-code

EF Core官方Tutorial:https://docs.microsoft.com/en-us/ef/core/get-started/?tabs=netcore-cli

OData官方Getting Started:https://docs.microsoft.com/en-us/odata/webapi/netcore

本文列出的创建步骤综合考虑了上述三大文档,得出整个项目设置流程如下命令(逐一执行)。

mkdir KnowledgeBuilderAPI
cd KnowledgeBuilderAPI
dotnet new sln
dotnet new webapi -o KnowledgeBuilderAPI
cd KnowledgeBuilderAPI
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.InMemory
dotnet add package Microsoft.AspNetCore.OData --version 7.3.0-beta
cd ..
dotnet sln add ./KnowledgeBuilderAPI/KnowledgeBuilderAPI.csproj
mkdir KnowledgeBuilderAPI.Test
cd KnowledgeBuilderAPI.Test
dotnet new xunit
dotnet add reference ../KnowledgeBuilderAPI/KnowledgeBuilderAPI.csproj
cd ..
dotnet sln add ./KnowledgeBuilderAPI.Test/KnowledgeBuilderAPI.Test.csproj
code -r ../KnowledgeBuilderAPI

注意, 上述步骤只适用.NET Core 3.0和OData 7.3.0 Beta。因为OData 之前的版本 (7.3.0以前的版本)不支持.NET Core 3.0 (Routing),在.NETCore 2.2版本下,两个csproj文件分别为:

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.OData" Version="7.2.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.2.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.2.0" />
</ItemGroup>
</Project>

Test project如下:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework> <IsPackable>false</IsPackable>
</PropertyGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="2.2.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
</ItemGroup> <ItemGroup>
<ProjectReference Include="..\knowledgebuilderapi\knowledgebuilderapi.csproj" />
</ItemGroup> </Project>

第三步,针对开发环境,使用Secret Manager tool

执行命令:

dotnet user-secrets init

这条命令会在当前目录下的项目文件(*.csproj)中加入一条。

<PropertyGroup>
<UserSecretsId>xxxxxxxxxx</UserSecretsId>
</PropertyGroup>

同时,可以查看文件:

%APPDATA%\Microsoft\UserSecrets\<user_secrets_id>\secrets.json

通过命令往其中增加内容,对这个项目来说,是增加Connection String。

dotnet user-secrets set "KnwoledgeBuilderAPI:ConnectionString" "Server=.\SQLEXPRESS;Database=knowledgebuilder;Trusted_Connection=True;"

如果想要删除该Connection String,调用命令:

dotnet user-secrets remove

另外两个有用的命令是:list - 显示当前所有值

dotnet user-secrets list

clear - 清除所有☞

dotnet user-secrets clear

至此,一个粗略的项目框架已经ready,可以跑

dotnet run

来运行了,也可以使用

dotnet test

来测试。

下一篇将讲述如何开发Model。

创建基于OData的Web API - Knowledge Builder API, Part II:Project Setup的更多相关文章

  1. 创建基于OData的Web API - Knowledge Builder API, Part IV: Write Controller

    基于上一篇<创建基于OData的Web API - Knowledge Builder API, Part III:Write Model and Controller>,新创建的ODat ...

  2. 创建基于OData的Web API - Knowledge Builder API, Part I:Business Scenario

    在.NET Core 刚刚1.0 RC的时候,我就给OData团队创建过Issue让他们支持ASP.NET Core,然而没有任何有意义的答复. Roadmap for ASP.NET Core 1. ...

  3. 创建基于OData的Web API - Knowledge Builder API, Part III:Write Model

    在前两篇文章<Part I: Business Scenario> 和<Part II: Project Setup>后,可以开始真正Model的创建. 步骤如下: 1. 创建 ...

  4. 使用 node-odata 轻松创建基于 OData 协议的 RESTful API

    前言 OData, 相信身为.NET程序员应该不为陌生, 对于他的实现, 之前也有童鞋进行过介绍(见:这里1,这里2). 微软的WCF Data Service即采用的该协议来进行通信, ASP.NE ...

  5. 基于SVG的web页面图形绘制API介绍

    转自:http://blog.csdn.net/jia20003/article/details/9185449 一:什么是SVG SVG是1999由W3C发布的2D图形描述语言,纯基于XML格式的标 ...

  6. Java Web学习系列——创建基于Maven的Web项目

    创建Maven Web项目 在MyEclipse for Spring中新建Maven项目 选择项目类型,在Artifact Id中选择maven-archetype-webapp 输入Group I ...

  7. 可能是最简单的方式:利用Eclipse创建基于Maven的Web项目

    1. 新建一个maven项目 2.在弹出框中选择创建一个简单项目 3. 然后输入参数,需要注意的是,在packagin中,选择war,web项目应该选择war 4. 点击finish后,基本项目结构就 ...

  8. idea创建基于maven的web项目

    1.点击create new project,选择maven,点击next 2.输入项目信息,点击finish 3.进入项目后,点击菜单File->Project Structure开始配置项目 ...

  9. maven-bundle-plugin插件, 用maven构建基于osgi的web应用

    maven-bundle-plugin 2.4.0以下版本导出META-INF中的内容到MANIFEST.MF中 今天终于把maven-bundle-plugin不能导出META-INF中的内容到Ex ...

随机推荐

  1. nm 命令能够显示目标文件中重载函数的名字改变(C++)

    #include <stdio.h> #include <iostream> using std::cout; using std::endl; //这里的两个不同的add函数 ...

  2. SpringBoot系列教程web篇之过滤器Filter使用指南扩展篇

    前面一篇博文介绍了在 SpringBoot 中使用 Filter 的两种使用方式,这里介绍另外一种直接将 Filter 当做 Spring 的 Bean 来使用的方式,并且在这种使用方式下,Filte ...

  3. 在web端使用html5访问远程桌面

    背景: 2019年12月5日,微软宣布放弃浏览器Edge,转而推出一款新的浏览器,而这款新浏览器将会采用谷歌的Chromium 内核... 好了,反正已经无力吐槽,微软烂尾的项目也不是一个两个了,之前 ...

  4. Linux低权限用户记录ssh密码

    0x01 场景 现在有个攻击场景,就是你拿到了linux外网服务器的webshell,要做内网渗透前肯定要收集信息.其中可以做的一个工作是重新编译ssh来记录管理员的密码信息,信息可以用来撞其他机器的 ...

  5. SpringBoot:2.SpringBoot整合Thymeleaf模板引擎渲染web视图

    在Web开发过程中,Spring Boot可以通过@RestController来返回json数据,那如何渲染Web页面?Spring Boot提供了多种默认渲染html的模板引擎,主要有以下几种: ...

  6. 从零开始把项目发布到NPM仓库中心

    从零开始把项目发布到NPM仓库中心 前期准备 注册账号 https://www.npmjs.com/signup 网易邮箱注册失败,用QQ邮箱成功 使用npm 命令注册(建议使用网页): npm ad ...

  7. java 实现基于opencv全景图合成

    因项目需要,自己做了demo,从中学习很多,所以分享出来,希望有这方面需求的少走一些弯路,opencv怎么安装网上教程多多,这里不加详细说明,我安装的opencv-3.3.0 如上图所示,找到相应的j ...

  8. 小白学 Python(12):基础数据结构(字典)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  9. django-Views之类视图 (六)

    book/urls.py from django.urls import path from . import views urlpatterns = [ path('',views.IndexVie ...

  10. django-URL匹配(二)

    1.新建django项目 django-admin startproject newwebsite 2.建立app 在newwebsite目录下:python manage.py startapp b ...