为什么要写这篇文章

写这篇文章有两个原因,第一个是因为新站点创建出来后一直空置着,所以写一篇文章放在这里。第二就是因为近来在做一些基于Asp.net core平台的项目开发,也遇到了一些问题,正好趁此机会写出来,一方面算是自己知识的一个备忘,另一方面也希望对其他朋友能有所帮助。

什么是Asp.Net core

我相信很多C# Developer已经对于.net core不算陌生了,就算没有正式使用相信也应该有所了解。微软在推出来.net core的同时为了方便一些原有的项目可以方便迁移,同时推出了Asp.net core。那么.net core和Asp.net core是不是同一个东西呢?如果不是又有什么区别呢?
    下面我们分别说明一下,首先Asp.net core和.net core肯定不是同一个东西(废话,如果是同一个东西还写这么多干啥!)。
     Asp.net core其实就是仍然基于.net Full Framework(最低要求Framework 4.6.2)的项目, 但同时保留了.net core一些新的设置理念,比如Asp.net core默认使用Kestrel作为Http请求的监听器,而不是使用原来庞大的Https.sys。Kestrel不仅仅是微软下一代的跨平台Http请求监听器,同时还提供了比Https.sys更轻量级以及更快速的Http请求处理。另除此之外,Asp.net core与原来的Web设计另一个最大的区别在于Asp.net core(及.net core)完全抛弃了原来的使用管道模式来接收以及处理HttpRequest。在Asp.net core中允许处理中间件(Middleware)来对所有的HttpRequest来进行请求,当请求被接收到时,Asp.net core会调用注册的中间件(按照注册的顺序)对HttpRequest进行处理。这样做相比与原来使用HttpApplication的管道方式而言,其优势在于完全由开发人员决定HttpRequest需要执行怎么样的处理,没有多余的其他步骤。而原来的方式既使开发人员不希望对一个HttpRequest进行任何处理,但HttpApplication仍然会按照管道的设置依次创建HttpModel -> 激活HttpHandler -> 处理Session等。据.net core团队给出来的性能测试数据来看,Asp.net core(.net core)相比与原来的Web(.net framework 4.6)程序性能提升了2300%.
    而.net core其实就是保留了上面所说的优势的同时支持跨平台运行。.net core的系统是可以真正运行在除Windows以外的其他平台的。轻量级、跨平台、模块化是.net core整体的设计理念,同时也是微软产品理念转变的一个体现。.net core虽然有千般好,但是我们当前仍然没有直接使用它,因为它现在有一个致使的“缺陷”那就是生态环境,由于.net core的API已经完全重写,虽然当前已经提供了.net farework 90%以上的API,但是仍然会造成一些开发上的不便,当然这还不是最大的问题,最大的问题在于一些第三方Nuget包仍然不支持.net core。这样就会造成一些项目无法直接迁移或是迁移成本太高的问题。

如何创建一个Asp.net core的项目

说了这么多,我们来看一下在创建项目时Asp.net core和.net core有什么不同吧,我们以Vistual studio 2017上创建项目为例,首先打开VS2017后点击创建项目-> Asp.net core web应用,这时会弹出模版选择的窗口。

在这个选择窗口中我们可以看到在左上角的那个下拉列表中可以选择.net framework以及.net core。当我们选择.net framewrok时创建出来的项目工程即为asp.net core。项目创建成功后可以在项目的属性中看到使用的Framework版本是4.6.2。但是项目文件的组织结构已经和.net core的项目结构一样了。

Asp.net core项目的"坑"

近期在对新的项目进行性能测试时发现系统的内存占用似乎只能使用到1.5G。经过多次测试以及代码检查终于发现新创建出来的Asp.net core的项目默认的目标平台是X86而不是AnyCPU。当尝试在VS中新目标平台改为AnyCPU时发现项目不能运行,抛出异常"无法加载 DLL“libuv”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。",无奈只能将项目的目标平台改为X64,然后发现在开发环境已经一切正常,但是当将代码部署到Azure App Service上时系统仍然不能访问,异常和上面的相同。最后无意在网上查到需要手动加一段代码在proj文件中,然后就可以将target Platform改为AnyCPU了

结尾

好了,今天这篇文章就先写到这里,都是一些简单的东西,对于熟悉的人来说不值一提,权当个人的一个总结吧。新的一年,新的开始。继续加油,我相信.net core会使.net这个平台的开发更具潜力,同时我也相信新的一年我们会越来越好。

转载于:https://www.cnblogs.com/itzhangxp/p/8322364.html

什么是Asp.net Core?和 .net core有什么区别?相关推荐

  1. 从博客园博问站点迁移ASP.NET Core展望.NET Core

    今年年初,博客园的博问系统就已经迁移到了 ASP.NET Core on Linux并发布上线发布. 我们看到博客园发表官方博客-- .NET跨平台之旅:博问站点迁移至ASP.NETCore on L ...

  2. ASP.NET 5 and .NET Core RC 准备投入使用

    微软最近发布了.NET Core 和ASP.NET 5 的发布候选版本,可运行在Windows,OS X和linux上.微软宣布 这个发布版已准备好投入使用,并将会支持它.两个发布候选版本都是经过深思 ...

  3. ASP.net core 使用UEditor.Core 实现 ueditor 上传功能

    ASP.net core 使用UEditor.Core 实现 ueditor 上传功能 首先通过nuget 引用UEditor.Core,作者github:https://github.com/bai ...

  4. 使用 ASP.NET Core, Entity Framework Core 和 ABP 创建N层Web应用 第二篇

    介绍 这是"使用 ASP.NET Core ,Entity Framework Core 和 ASP.NET Boilerplate 创建N层 Web 应用"系列文章的第二篇.以下 ...

  5. 手把手引进门之 ASP.NET Core Entity Framework Core(官方教程翻译版 版本3.2.5)

    以下是手把手引进门教程,基于 ASP.NET Core, Entity Framework Core ,ABP 框架 创建Web 应用, PS: 自带自动的测试模块哦. 样例下载 (上 github  ...

  6. Asp.net Core中SignalR Core预览版的一些新特性前瞻,附源码(消息订阅与发送二进制数据)

    前言 一晃一个月又过去了,上个月有个比较大的项目要验收上线.所以忙的脚不沾地.现在终于可以忙里偷闲,写一篇关于SignalR Core的文章了. 先介绍一下SignalR吧,如下: ASP.NET S ...

  7. 让我们Core在一起:ASP.NET Core amp; .NET Core

    Microsoft .NET 自 2002 年发行 v1.0 以来,已经过了近 14 个年头,在这 14 年里面,.NET 日渐成熟并成为 Microsoft 的重要开发平台之一,只要是在 Windo ...

  8. ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门

    ASP.NET Core 入门教程 8.ASP.NET Core + Entity Framework Core 数据访问入门 原文:ASP.NET Core 入门教程 8.ASP.NET Core ...

  9. ASP.NET Core 和 EF Core系列教程——CRUD

    ASP.NET Core 和 EF Core系列教程--CRUD (2 / 10) CRUD 为创建.读取.更新.删除的英文首字母的缩写 作者:Tom Dykstra和Rick Anderson Co ...

  10. [52ABP]ABP CORE 框架入门视频教程《电话薄》基于 Asp.NET Core2.0 EF Core

    ABP框架简介 ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...

最新文章

  1. 怎么给html页面添加网格线,html – 如何使用css制作网格(如图纸网格)?
  2. push、pop指令
  3. 仿麦包包首页table轮换图jQuery(转自www.jqueryba.com)
  4. 深度学习-超参数调整总结
  5. C#引用类型转换的几种方式
  6. java 发送附件_Java 基于javaMail的邮件发送(支持附件)
  7. avframe转byte数组_C# amp; VB6.0 图像与二维数组 互转
  8. 在恰当的地方使用MongoDB的WriteConcern.SAFE参数
  9. C语言方向键识别和字母识别,c语言中怎样输入和读取方向键
  10. vux在ISO中异常 this.$vux.confirm.show
  11. vb中WindowsMediaPlayer的常用属性和方法
  12. CMSSDK功能介绍和关联用户系统
  13. 主管已不安排代码工作,自己要明白问题所在
  14. MySql 表的分区介绍
  15. win7加快开机速度
  16. 教你提取图片中文字的四种方法
  17. 几个创业小故事的启示
  18. 4399积分小游戏刷分工具帮助
  19. npm 发布包遇到的问题
  20. 优锘科技:可视化加速“历史数据库”运转

热门文章

  1. python与人工智能编程-python学习(一)——python与人工智能
  2. python不能处理excel文件-别以为Python的pandas不能处理非规范Excel数据
  3. python电脑发音-Python之父发声:我们能为“996”程序员做什么?
  4. 用python画烟花-python 实现漂亮的烟花,樱花,玫瑰花
  5. python填写excel-python——向Excel读取或写入数据
  6. python画图-用Python画图
  7. python输出乘法口诀-【每日一练】python输出 9*9 乘法口诀表
  8. python脚本实例手机端-用Python实现自动化操作Android手机
  9. python和c语言有什么关系-Python与C语言有什么区别?
  10. python学习音频-Python学习笔记--音频处理