【1】Asp.Net Core2.2从环境配置到应用创建

做者:Eleven程序员

来源:公众号【软谋net】json

 

【前言】服务器

.Net Core开源&跨平台,已经肉眼可见将成为.Net平台的将来,在企业招聘需求上已经频频见到,接触到不少公司内部都已经开始尝试Core的项目了,尤为是腾讯的财付通所有是基于Core+微服务搭建的,让人倍感振奋!Eleven最近出个专题,以当下最新的Asp.Net Core 2.2 Preview3为版本,给你们来一套系统教程,但愿小伙伴儿们能多多关注!函数

 

【环境搭建】微服务

我这边使用的VisualStudio版本为2017企业版15.7.4(并非最新版本,专业版社区版也都是能够的)。以前安装是自带的Core是1.1版本,如今须要安装最新的sdk(dotnet-sdk-2.2.100-preview3-009430-win-x64.exe),以及最新的runtime(dotnet-runtime-2.2.0-preview3-27014-02-win-x64)。相关环境配置,须要的话能够关注底部公众号后,联系助教老师获取!测试

【项目创建】网站

下面开始动手创建Asp.Net Core2.2项目了,添加项目,选择Web,而后选择 ASP.NET Core Web应用程序模板,另外那个是原来的Framework版本的。ui

这里选择.NET Core,而后选择最新的ASP.NET Core2.2,选择下面的MVC应用程序,点击肯定便可完成建立!创建完后的项目以下,一个典型的MVC项目,可是跟Framework下的有明显差别,增长了Program和Startup,这二位将是本文的主角了!spa

 

 
【Program】对象

看到Program,应该有种很亲切的感受,包括里面的Main方法,这就是整个程序的入口。实际上,咱们创建的这个项目,本质就是个控制台程序而已,查看项目属性能够得知。但为啥这个Program能当成MVC网站呢?

秘密就是那个CreateDefaultBuilder方法,这里面是启动一个Kestrel的服务器来完成请求的监听和响应的,在之前Core版本里,这里还有不少的配置项,如今已经内置为一个Default了。而后这里简单理解下,就是初始化一个服务器,而后Run一下,咱们的Web服务器就算是启动了。其中在初始化服务器的时候,使用了一个Startup类,下面来详析一番!

 

【Startup】

 

在 ASP.NET Core 中,Startup 类提供了应用程序的入口,并且在全部应用程序中都有 Startup 类。ASP.NET 会在主程序集中搜索名为 Startup 的类(在任何命名空间下)。ASP.NET 并不关心 Startup 类是否是定义为 public,若是它符合命名规范,ASP.NET 将继续加载它。若是有多个 Startup 类,也不会触发异常,ASP.NET 将基于命名空间选择其中一个(匹配项目的根命名空间优先,不然使用第一个按字母排列的命名空间中的类)。

 

打开Startup类,大概分三块,这个是典型的构造函数注入,完成了一个叫IConfiguration类型变量的注入,至因而怎么注入的,后文中会讲到。这个变量是用来读取配置文件的,跟之前Framework下那个System.ConfigurationManager类差很少的。

 

 而后是ConfigureServices方法,上面的注释描述的很清楚,是交给运行时环境调用的方法,而后用来给容器注册服务的(跟刚才说到的注入一致)。在Asp.Net Core里面,IOC容器是直接内置了的,也就是这个IServiceCollection。感兴趣的小伙伴儿能够去尝试下,直接nuget就能够下载Microsoft.Extensions.DependencyInjection,跟常见的容器用法几乎同样的,后面单独开文章再讲这个。这里完成所有须要依赖注入对象的初始化。

最下面是Configure方法,也是由运行时环境调用的,用来配置HTTP请求的处理管道的。Web的本质就是对Http请求的处理,最终获得一个响应结果,而这个方法,清晰的描述了,该如何去处理请求。 


【内置服务和启动】

下面我就能够启动网站了,之前在作网站开发测试的时候,习惯性的去指定一下网站的端口和默认页,可是如今项目类型是控制台项目,相关的配置如今转移到项目的Properties--->launchSettings.json文件里面,能够在这里修改生效!顺便说一下,由于创建项目的时候,勾选了SSL支持,那么这里启动的会是https的Url,并且这个sslPort好像只能是以443开头,不然可能会没法访问。

而后一个彻底没有作任何修改的Asp.Net Core2.2的项目就运行起来啦!

【结语】

本篇只介绍了最基本的环境搭建和项目创建过程,解释了一番项目结构,下一篇文章中将带你们尝试一些简单的功能开发尝试了!在这里应该感慨一下,Asp.Net Core的项目,外表看上去和以前,就是至关的不同,而在本质上,变化可能会更多的。可是这些变化都是向着更优秀的方向的,但愿你们能敞开心胸,拥抱变化!欢迎关注公众号,欢迎讨论,欢迎转发,愿天下有需求的人都能看到!

 

 

想了解更多干货,欢迎关注公众号【程序员在职场】

                     程序员在职场