在.Net Core中需要注意的几点

.net core 是用来创建能够在windows,linux,mac系统环境下运行的应用程序和服务的快速的,轻量级的,模块化的,开源的框架

.net core包括.net core编译器roslyn,.net core运行时Core CLR,.Net Core Framework即CoreFX以及Asp.net Core

Asp.net Core是.net core sdk的一部分,Asp.net Core是.net Core的一部分

Asp.net Core最初叫Asp.net 5,后来重命名为asp.net core

Asp.net Core的版本:1.0,1.1,2.0

要开发.net core应用程序,需要安装

  1. .NET Core SDK
  2. Integrated Development Environment (IDE)

1.Startup类和传统的global.asx的作用类似,是.net core应用程序启动时第一个执行的类

2.Startup类必须包含configre方法,相对来说ConfigureService方法是可选的

3.ConfigureService是用来建立依赖服务或者叫做依赖类的,确切的来讲是用来在内置的IOC容器中建立依赖来

   供其他类进行构造注入来使用

4..net core中的依赖类和依赖服务在语义上一般是一致的

5.Configure 方法默认包含IApplicationBuilder, IHostingEnvironment, 和 ILoggerFactory三个参数,与他们相对的服务被作为

   框架服务注入到内置的容器当中

6.运行时ConfigureService方法是先于Configure方法运行的

7.Configure方法用于配置应用程序的请求管道,并在每次执行请求时被调用执行,这有助于提升应用程序的性能

8.Kestral仅仅是一个内部的Web服务器,因为他目前尚未成熟,通常由外部的web服务器或者反向代理来将外部请求调度给Kestral

   来进行执行

9. .net core项目实际上是一个控制台项目,通过控制台项目来建立自定义的宿主运行.net core应用程序,而且宿主是可以通过继承IWebHost自主实现

10.WebHostBuilder可以用来建立宿主,但是我们也可以建立自己的宿主通过实现IWebHostBuilder接口

11.UseContentRoot是将当前目录指派为项目的根目录即源码src的root目录

12.wwwroot文件夹被用来作为网站的root foler文件夹,默认情况下只有放置到web root文件夹的文件才能通过http协议对外服务,对网站其他资源的的外来http请求被默认阻塞或不对外服务

13.要提供静态文件的服务,需要在startup类中的configure方法中引入一个中间件

14. .Net Core编写的类库可以为.net framework4.x或者mono所使用

15. .Net Core比.net framework要小,在发布方面性能优越

16. .Net Core CLI可以用来创建,恢复,构建,运行和发布应用程序,默认vs已经提供了对CLI的支持

17. .Net Core CLI是和.net Core SDK一起安装的,不需要独立安装。通过在CLI的结尾敲入-h或-help可以获得该命令的帮助提示信息

18.在对IOC的支持方面,.NET CORE提供了大量OUT-OF-THE-BOX功能,但是若需要自动注册,扫描,拦截和修饰等功能,则需要借助第三方IOC框架

19. .net core提供了两种基本的服务即框架服务Framework service(内置)和应用服务(自定义)Application service

20.默认情况下,用户定制的Application Service都是单例模式Singleton

21.内置的IOC容器提供了对注册的服务进行三种类型的声明周期管理,即Singleton(单例),Transition(每次请求),Scoped(每个会话)

22. .net core调用执行middleware的顺序是按照中间件注册的顺序执行的

23. .net core通过环境变量ASPNETCORE_ENVIRONMENT来标明实际的运行环境,运行环境包括development,staging,production,环境变量的值在windows和mac环境不是大小写敏感的,但是在linux上是大小写敏感的,该值可以在工程的debug标签下的enviroment variables部分进行配置,修改后的配置项将会保存在launchSettings.json文件中,变量可以在运行时通过env.isenvironment("变量")判断或者通过env.IsDevelopment(),env.IsStaging(),evn.IsProduction()进行判断

24.默认情况下,.net core不能够服务处理对于静态文件static files的请求处理,要处理这类文件必须安装并包含Microsoft.AspNetCore.StaticFiles中间件到项目中,该中间件已经包含在Microsoft.AspNetCore.All元数据包中被安装,不需要单独安装

25.只有在项目中通过在configure方法中配置app.UseStaticFiles()才能让.net core处理静态文件

26.对于不在wwwroot文件夹外的静态文件如果需要处理,则需要配置指定的物理文件夹路径,如:app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(
                            Path.Combine(Directory.GetCurrentDirectory(), @"Images")),
                            RequestPath = new PathString("/applicationimages")
    });

RequestPath指定的是相对于static静态文件夹的相对路径

27.在.net core中设置默认的主页文件如 default.html, default.htm, index.html or index.htm,需要借助DefaultFile中间件,它是StaticFiles中间件的一部分,使用中需要使用app.UseDefaultFiles()方法配置,并且需要注意该方法必须在app.UseStaticFiles()方法的前面

28.FileServer中间件可以通过app.UseFileServer()方法进行配置,该方法可以等同于UseFileServer = UseDefaultFiles + UseStaticFiles方法,简化了配置管理的书写方式

29. .Net Core应用程序分为Portable Application便携式和Self-contained application自包含两种类型,便携式需要CoreCLR的支持,而自包含则不需要.net core运行时

30.配置是否是便携式应用程序可以在project.json中通过配置dependencies节点的"type":"platform"来进行设定,移除该配置则设定为自包含应用程序类型,可惜的是为了和MSBuild保持兼容,.net core 2.0版本已经启用project.json,回归到.csproj

31.通常基于一种framework只能运行在当前的平台或环境中,要实现code sharing即共享同一套代码在多个framework框架运行平台和环境中,可以通过配置.csproj工程文件中的 <TargetFrameworks>netcoreapp2.0;net45;net46</TargetFrameworks>,通过;符号分隔多个framework名称,保存再次加载后即可实现针对多个framework环境的运行支持,代码中可以运用条件编译代码如#if,#else等进行特定框架运行时代码的编辑

32.Win10要在IIS上运行.net core 应用是需要IIS的module中安装了AspNetCoreModule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值