ASP.NET5应用程序默认使用.net core来构建应用程序,.net core是一个小的,优化过的.net运行时应用程序。

1. 什么是的.NET Core

.NET Core 5 是一由模块化的运行时和类库组成的。目前它在WIndows上面已经实现了,在Linx和OS x上面正在开发当中。.NET core包括一系列的类库,称作"CoreFX", 和一个小的优化过的运行时,叫"CoreCLR". .NET Core是完全开源的,你也可以去贡献你自己的代码进去。

CoreCLR 运行时和CoreFx类库通过NuGet可以获得, CoreFx可以根据具体的功能通过NuGet获得相应的dll, 如"System.[module]".

.NET Core一个关键的优点就是它的轻便性。 你可以方便地打包部署你的应用程序,而不需要像以前那样安装.NET 应用程序在你的Windows上面。你可以用不同版本地CoreCLR开发应用程序和升级应用在同一台机器上面,而不需要强制性地同时用一个新版本。

CoreFX集成了一个一个组件形式,每个dll依赖一组最小的在dll, 例如System.Collection只依赖System.Runtime, 而不需要System.Xml, CoreFx包含集合、console acess, diagnostics, IO, LINQ, JSON, XML, 和regular expression 支持, 另外一个优点是COreFx同一个dll可以支持不同的平台。

2. .NET Core背后的动机

当.net首次出现的时候是在2002年,它是一个单一的框架,不久推出了.net compact框架,它是一个小型的应用于移动设备上面的。多年来,一些共同的功能在两个不同的版本中重复的做着,以至于后来争对不同的平台有不同的.net版本。在linux, mac, android上面也有其它的.net版本,如mono和Xmarin. 对于每一个平台,他们各自都要开发运行时,框架和应用模型。.net core的首要目标之一就是提供一个单一的,模块化的,跨平台.net版本工作在不同的平台上面。.net core是完全开源的,Mono社区的人员可以从CoreFx的类库中获利。.NET Core不会取代Mono, 但是它允许Mono社区引用和共享它,并直接贡献代码到CoreFx当中。

除了能应用于不同的设备平台,服务来自一个方面的压力就是减少整体的架构,最重要的就是把CoreFx分解成一个一个功能模块,这样应用程序可以按需去拉取相应的dll, 减少之间的依赖。这样,反过来也能减少升级和打补丁的频次,以减少对应用程序的影响,一个小的应用程序的部署它是独立的,不同的版本的应用可以部署在同一个服务器上。

3. 利用.NET Core创建应用程序

.NET Core可以创建不同的应用程序,包括Web应用程序,控制台应用程序和本地化的移动应用程序。DNX提供一个跨平台运行时宿主,你可以用用它创建基于.net core的应用程序,它可以执行在windows, mac和linx上面,并且它是Asp.net应用程序运行的基础。运行在DNX的应用程序可以用.net框架或者.net core框架,DNX工程可以在一个工程当中同配置这两个构架。所以它在project.json中存在两个配置,如下 :

"frameworks":{

    "dnx451":{},

    "dnxcore50":{}

},

dnx451表示老的.net框架,dnxcore50表示.net core 5(5.0).你可以用预编译指令#if去测试关联了哪个框架:DNX451和DNXCORE50。例如:

#if DNX451

// utilize resource only available with .net framework

#endif

ASP.NET团队建议是两个框架都配置,如果你只想用其中一个,也可以把另一个删除。 注意ASP.NET4.6和早期的版本必须用.NET框架。

4. .NET Core和NuGet

利用NuGet可以很敏捷地获取每一个组成.net core的类库。意思是应用程序可以列出一个个包含系统、构架、第三方框架的NuGet包的集合。另外,第三方的框架也能显示它的依赖项,这样可以很容易地在开发或者创建的时候得到相应的版本的包。

尽管CoreFx是由一个一个单独的NuGet包组成,微软也会定期地推出一个完全的包,当然它的频次会比较低。

转载于:https://www.cnblogs.com/superkklot/p/5042426.html

.NET Core的介绍相关推荐

  1. 第一个,net core项目,.net core入门介绍来了

    开始搭建一个.net core项目.哈哈,这个相对老手来说,估计会觉得小儿科,没事,也就当一次分享总结罢了,希望对有帮助的小伙伴有点帮助就好. 环境准备: 为了开发.net core,微软已经明确终止 ...

  2. ASP.NET Core快速入门(第4章:ASP.NET Core HTTP介绍)--学习笔记

    点击蓝字关注我们 课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务22:课程介绍 1.HTTP 处理过程 2.WebHos ...

  3. Linux下core文件介绍与使用方法

    背景 有时当我们在Linux下编程,程序运行时会出现以下提示: Segmentation fault (core dumped) 然后,程序崩溃,退出运行.发生这一问题的原因往往是程序中指针不规范使用 ...

  4. 【52ABP实战教程】00-- ASP.NET CORE系列介绍

    为什么是.net core? 记得在半年前.NET CORE刚刚出了1.0,当时有朋友推荐我使用的时候,个人觉得还不成熟. 现在.NET Core已经到了2.0,.NET Standard 2.0 添 ...

  5. TEE Internal core API介绍(globalplatform)

    目录 一.TEE的API介绍 1.Cryptographic Operations API 加解密函数介绍() (1).Generic Operation Functions TEE_Allocate ...

  6. Core ML介绍 (Apple机器学习框架)

    概览 借助 Core ML,您可以将已训练好的机器学习模型,集成到自己的应用当中. 所谓已训练模型 (trained model),指的是对一组训练数据应用了某个机器学习算法后,所生成的一组结果.举个 ...

  7. (17万浏览量) .NET Core的介绍

    .NET Core基础理论 1..NET Core基础理论 1.1.重要工具 .NET FlatForm下的项目:https://github.com/dotnet/ 查看.NET Core源码:ht ...

  8. net core框架介绍

    什么是net core ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用.物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.ASP.NET Cor ...

  9. 【翻译+整理】.NET Core的介绍

    .NET Core 是一个通用开发平台,它由微软和开源社区共同管理(git hub的.NET开源社区): 他支持Windows,macOS和Linux,并且可以运行在硬件设备中.云平台上和物联网嵌入式 ...

最新文章

  1. php正则的练习(持续跟新)
  2. Tesseract-OCR 训练过程 V3.02
  3. idea 2019.2 版本更新(最顶部从白色边框变为黑色边框)
  4. (SQL语句)按指定时间段分组统计
  5. Pytest高级进阶之Fixture
  6. 论文浅尝 | Dynamic Weighted Majority for Incremental Learning
  7. C++学习之路 | PTA乙级—— 1055 集体照 (25 分)(精简)
  8. ONNX系列七 --- 在Python中使用可移植的ONNX AI模型
  9. bzoj 3156: 防御准备
  10. Windows 共享无线上网 无法启动ICS服务 解决方法
  11. 倒计时几秒_电影《时间规划局》时间就是货币,每天看着自己的生命在倒计时...
  12. python linkedlist,LinkedList在python中的实现
  13. IntelliJ IDEA设置--类代码模板自定义(注释)
  14. cd linux制作u盘启动盘,小编详解cdlinux u盘启动如何制作
  15. 一个字符串截取函数c语言
  16. html转pdf文件下载之最合理的方法支持中文
  17. 【深度学习】利用深度学习监控女朋友的微信聊天?
  18. 女性视角有利于人工智能平衡发展
  19. windows系统下完全卸载mysql数据库
  20. Python攻防-APK批量自动反编译与数据分析

热门文章

  1. winnet api 实现Get请求
  2. c语言中malloc、realloc与calloc 的区别以及联系
  3. 解决ImportError: cannot import name ‘imread‘ from ‘scipy.misc‘
  4. gimp教程:gimp界面介绍
  5. 最受Linux程序员欢迎的7个代码编辑器的介绍及下载地址
  6. c++11=default,=delete
  7. 算法,求1亿个数的中位数
  8. oracle distinct用法
  9. CVS Branch 和 Merge 在 Eclipse 中的使用
  10. 必看!互联网开发模式的经验之谈