前言

前面介绍了开发工具及net core版本,后端工程的框架结构开发工具及环境,因为是基础工程,所以没考虑太复杂的框架,如果有架构师请勿喷。

创建工程

废话不多说,撸起袖子干。

打开vs2019,左上角->文件->新建->项目



一般不需要检索,毕竟就几个,找到这个Web 应用程序,点击下一步。

自己起个名字,选个路径,点击创建。



基本上该标注的都标注了,启用HTTPS这个看自己需要,勾选了之后就可以通过https://访问,至于Docker支持这个,先挖个坑,后面鼓捣Docker的时候专门介绍,其实个人感觉跨平台主要得力于Docker这个说是虚拟机也不算,说是服务器也不算的工具。

创建完成后基本上都可以看到这个工程的大概东西了。

工程文件概述(个人理解)

  • Properties

    这下面有个launchSettings.json,这是个系统配置文件,iis的端口,请求地址,默认地址等等的配置。
  • Controllers

    你的所有控制器(搞过mvc的不用多说)都在这里,其实说白了就是你的接口API,至于Method,Router都是你自己在每个Api控制器里编辑,具体业务逻辑也是在对应接口实现。
  • appsettings.json

    这个是配置项文件,net core的web.config,用json来配置个人感觉还是比较舒服的,最起码看着方便,参数什么的也都清楚。
  • Program.cs

    入口文件,没啥说的,我鼓捣的也不多,说实话做了一个工程这个地方貌似没改动,这个地方可以选择使用哪个Startup(如果你有多个的话)。
  • Startup.cs

    这个文件就比较厉害了,后续做的Log,Swagger等等第三方类库或者其他有些配置还有你的Service,都需要(有些是最好)在这个文件下注册,先切出代码看下。

  • Startup
		public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
  • ConfigureServices

构造函数这块儿就不多说了,实例化Configuration,这个就是系统整体的Config,AppKey的具体参数是在appsettings.json里配置的(.netframework的AppSettings -,-||)

        public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}

在Configure前由主机调用执行,services主要用来注册服务以及定义一些系统的配置信息,后续使用Swagger,Quartz等服务都是需要在这个地方注册下。

  • Configure
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
} app.UseHttpsRedirection();
app.UseMvc();
}

这个Configure个人感觉是在services注册过后,这个地方要告诉管道我要用,所以基本上都是Use,并且在这里可以添加中间层。

运行

简单介绍了下创建的工程内容后,一通Ctrl+F5,不出意外的话你看不到欢迎界面,就只要一个字符串数组,这就是你的ValuesController的GET请求返回的结果,如果需要更改默认启动页面,可以在Properties下面的json文件修改launchUrl。

小结

工程创建完成,下一步就要引入一些第三方的类库来完成一个基础工程常规的使用了。

net core Webapi基础工程搭建(二)——创建工程的更多相关文章

  1. net core Webapi基础工程搭建(六)——数据库操作_Part 2

    目录 前言 开始 使用 小结 前言 昨天是写着写着发现,时间不早了,已经养成了晚上下班抽时间看看能写点儿啥的习惯(貌似),今天实在是不想让昨天没做完的事情影响,所以又坐下,沉下心(周末了),开始把数据 ...

  2. net core Webapi基础工程搭建(六)——数据库操作_Part 1

    目录 前言 SqlSugar Service层 BaseService(基类) 小结 前言 后端开发最常打交道的就是数据库了(静态网站靠边),上一篇net core Webapi基础工程搭建(五)-- ...

  3. spring原理案例-基本项目搭建 03 创建工程运行测试 spring ioc原理实例示例

    下面开始项目的搭建 使用 Java EE - Eclipse 新建一 Dynamic Web Project Target Runtime 选 Apache Tomcat 7.0(不要选 Apache ...

  4. net core Webapi基础工程搭建(七)——小试AOP及常规测试_Part 2

    目录 前言 引入 自定义属性 测试 小结 前言 前一篇讲到了中间层的使用,可能不是那么AOP,今天主要来说下一个轻量级的AOP第三方类库AspectoCore. 简单介绍下这个类库,AspectCor ...

  5. net core Webapi基础工程搭建(五)——缓存机制

    目录 前言 Cache Session Cookie 小结 补充 前言 作为WebApi接口工程,性能效率是必不可少的,每次的访问请求,数据库读取,业务逻辑处理都或多或少耗费时间,偶尔再来个各种花式f ...

  6. net core Webapi基础工程搭建(四)——日志功能log4net

    目录 前言 log4net 依然是,NuGet引用第三方类库 整合LogUtil 小结 前言 一个完整的项目工程离不开日志文件的记录,而记录文件的方法也有很多,可以自己通过Stream去实现文件的读写 ...

  7. 【Android】cocos2d-x-3.1.1环境搭建与创建工程( Win7 32位系统)

    参考资料: http://blog.csdn.net/wxc237786026/article/details/32907079 1.环境搭建 2.创建工程 2.1 VS2012运行 2.2 Andr ...

  8. Orleans学习总结(二)--创建工程

    通过第一篇Orleans学习总结(一)--入门认识我们大致知道知道是干嘛的了,下面我们来动手造一个传说中的神秘的高并发集群Orleans程序. 一.创建四个C#工程 1.IGrain工程,用来定义各种 ...

  9. 第十九节:Asp.Net Core WebApi基础总结和请求方式

    一. 基础总结 1.Restful服务改造 Core下的WebApi默认也是Restful格式服务,即通过请求方式(Get,post,put,delete)来区分请求哪个方法,请求的URL中不需要写方 ...

随机推荐

  1. Java编程思想:构建复杂模型

    import sun.nio.cs.Surrogate; import java.util.ArrayList; import java.util.Random; public class Test ...

  2. 网页内嵌html遇到的问题

    在项目中遇到个问题 充值功能是点击一个按钮这个按钮会弹出模态框,输入充值金额会执行一段脚本自动提交数据到https://openapi.alipay.com/gateway.do上 结果:本网页跳转到 ...

  3. Excel催化剂开源第37波-音视频文件元数据提取(分辨率,时长,采样率等)

    上一篇提到图片元信息Exif的提取,当然还有一类音视频文件,也同样存储着许多宝贵的元数据,那就开源到底呗,虽然自己找寻过程也是蛮艰辛坎坷的,大家看后有收获,只求多多传播下,让前人的工作可以更有价值. ...

  4. JVM(一):久识你名,初居我心

    聊聊JVM JVM,一个熟悉又陌生的名词,从认识Java的第一天起,我们就会听到这个名字,在参加工作的前一两年,面试的时候还会经常被问到JDK,JRE,JVM这三者的区别. JVM可以说和我们是老朋友 ...

  5. 我对微服务、SpringCloud、k8s、Istio的一些杂想

    一.微服务与SOA “微服务”是一个名词,没有这个名词之前也有“微服务”,一个朗朗上口的名词能让大家产生一个认知共识,这对推动一个事务的发展挺重要的,不然你叫微服务他叫小服务的大家很难集中到一个点上. ...

  6. burpsuit用法

    1. 学习Proxy首先看标红,intercept is on 为拦截状态  其对应的intercept is off 为非拦截状态,设置完代理后打开拦截状态 ,浏览器发起的请求会被burpsuite ...

  7. StringBuffer类的delete()方法和deleteCharAt()方法的区别

    引言 StringBuffer类的delete()方法和deleteCharAt()方法都是用来删除StringBuffer字符串中的字符 区别 1.对于delete(int start,int en ...

  8. STL 大法好

    #include <vector>  1.支持随机访问,但不支持在任意位置O(1)插入:    2.定义:  ```cpp      vector<int> a;  ```  ...

  9. maven-assembly-plugin 进行打包

    maven-assembly-plugin使用描述(拷自 maven-assembly-plugin 主页) The Assembly Plugin for Maven is primarily in ...

  10. 使用Minifly打造基于视觉感知的跟踪无人机

    前言:无人机和人工智能现在是非常热门的话题,将两者结合起来是一个比较好的创意,本文介绍一种可行的解决方案来实现基于视觉感知的跟踪无人机.从零开始搭建无人机系统工作量和难度(以及钱)都是非常大的,所以在 ...