本篇为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. 使用ipython %matplotlib inline

    首先讲讲这句话的作用,matplotlib是最著名的Python图表绘制扩展库,它支持输出多种格式的图形图像,并且可以使用多种GUI界面库交互式地显示图表.使用%matplotlib命令可以将matp ...

  2. Web前端学习,需用了解的7大HTML知识点

    HTML是web前端开发基础,关于HTML,这里有几个很重要的知识点,在日常开发常常用到,并且在大家面试的时候也会问的,记住这7个重要知识点,助你在面试时优先录用. 1.网页结构 网页结构一般都包含文 ...

  3. jquery的返回顶端的功能实现

    页面很长的时候,读到最下面,需要返回顶端,则在页面最下面布局一个返回顶部的图标很有用. 具体功能是,jquey控制,向下滚动出现返回顶部图片,若滚动返回顶部或点回顶部,则图标消失. 实现效果如下图:

  4. Git推送到多个远程仓库

    Git推送到多个远程仓库 Grey 原文地址 准备工作 在码云和Github上分别新建两个不包括任何文件的空仓库(若是两个已经有文件的仓库,请参见关联已经存在的项目) https://github.c ...

  5. Java NIO之Java中的IO分类

    前言 前面两篇文章(Java NIO之理解I/O模型(一).Java NIO之理解I/O模型(二))介绍了,IO的机制,以及几种IO模型的内容,还有涉及到的设计模式.这次要写一些更贴近实际一些的内容了 ...

  6. 向net core 3.0进击——项目发布与部署

    目录 前言 发布 测试 小结 前言 在经历过好多折腾后,总算是把部署走通了一遍,之前只是简单创建个工程在linux下部署,后来一直将这件事搁置,直到最近刚好团队入手一个小服务器,很显然是linux的, ...

  7. IDEA+docker,进行远程漏洞调试(weblogic)

    用于学习java漏洞debug. 以weblogic为例. cve-2017-10271 weblogic:10.3.6 环境搭建 拿docker为例 https://github.com/vulhu ...

  8. unity5.6.1 videoPlayer

    unity5.6开始增加了videoPlayer,使得视频播放相对比较简单,项目需求进行了一下研究应用,也遇到很多坑,Google 百度一下发现确实有这些问题,一些简单问题如下: 1)播放无声音 2) ...

  9. ArangoDB简单实例介绍

    数据介绍: 2008美国国内航班数据 airports.csv flights.csv 数据下载地址:https://www.arangodb.com/graphcourse_demodata_ara ...

  10. Java 生成在线二维码 以Base64返回前端、或者写入到本地磁盘

    思路 现阶段遇到这样一个问题,在原有的产品上加入线下优惠券模式,用户领取优惠券以后,获取到一个唯一的ID作为领取凭证,但是在线下用扫码枪进行扫码的时候,总不能让人手动输入吧 于是乎就想出了一个办法,后 ...