.NET Core

news/2024/12/23 10:26:32

  **1,.NET 经历14年,在Windows平台上的表现已经相当优秀,

**但是“跨平台、开源”却是其痛点,从16年开始.NET Core的出现将迎来.NET的真正意义上的跨平台和开源序幕。

  .NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。

  .NET Core的源码放在GitHub上,由微软官方和社区共同支持。

  下面了解一下.NET Framework和.NET Core这两个分支的异同。

  2,NET Framework和.NET Core的结构体系

a.NET Framework 包含,Windows Form,WPF,ASP.NET

  b.NET Core 包含,UWP,ASP.NET Core

  c.Xamarin,新的.NET还包括第三个部分,即XAMARIN用于构建移动APP,包含iOS、 OS X 、Android等。

  即所谓的.NET三架马车,下面是最新的.NET生态体系图:

  从上图可以看出,.NET Framework和.NET Core及XAMARIN将是现在及未来.NET的三大部分,而它们三个都是独立于各自的,但都基于.NET标准库。

  3,NET Framework和.NET Core特点

.NET Core较之前的.NET Framework 从性能和开发效率上都有很大的提升。关键是首次实现了.NET的完全跨平台能力的基础技术栈。

  .NET Core 基于跨平台能力,并没有将与 GUI 高度相关的 API 移植到 .NET Core 内,因此像是 Windows Forms 或是 Windows Presentation Foundation (WPF) 并未移植到 .NET Core。

  .NET Core 支持控制台应用程序 (Console Application) 以及类库 (Class Library) 类型的项目。

  不过微软在其 Universal Windows Platform (UWP) 开发平台使用了 .NET Core,并且利用 .NET Native 技术将其性能提升至十分接近原生码的速度。

  ASP.NET Core 则以控制台应用程序驱动其托管环境 Kestrel Server 以支持 ASP.NET Core 程序的运行。

  a..NET Framework

  (1)Windows应用程序的王者框架:.NET Framework用于创建基于Windows系统的应用程序,包括Windows From、WPF、ASP.NET MVC等。在Windows框架下的开发。.NET Framework仍是强项,今后一段时间将继续更新升级。

  (2)开发语言选择:可选用C#,VB.NET,F#等众多语言开发。

  b..NET Core

  (1)跨平台 .NET Core 是微软推出的最新的跨平台的框架,用它可以创建的应用可以运行在MAC,Linux上 。 .NET Core 支持UWP 和 ASP.NET Core,UWP即Windows 10 中的Universal Windows Platform简称。即Windows通用应用平台,在Win 10 Mobile/Surface(Windows平板电脑)/PC/Xbox/HoloLens等平台上运行,uwp不同于传统pc上的exe应用也跟只适用于手机端的app有本质区别。它并不是为某一个终端而设计,而是可以在所有windows10设备上运行。

  (2)开源 .NET Core从属于.NET基金会,由微软进行官方支持。使用MIT和Apache 2开源协议,文档协议遵循CC-BY

  (3) 兼容性:从前面的图上看出.NET Core和.NET Framework基于.NET Standard Library。因此与.NET Framework,Xamarin,Mono等兼容。

  (4)灵活部署机制:第一种.Portable applications(便携式应用)这种部署机制和传统的.NET Framework相似,只要目标平台上存在.NET Core Runtime即可。

  第二种.Self-contained application(自宿主应用)顾名思义,这种部署机制将应用和运行时共同打包,即便目标平台上没有安装.NET Core Runtime也能正常使用第二种方式和.NET Native也是不一样的,仍然使用 CoreCLR,而.NET Native使用CoreRT作为运行时,详细信息请见dotnet/corert

  (5)命令行工具:.NET程序所有的运行脚本都可以用命令行工具执行(cmd,bash)。

  (6)语言选择:.NET Core 1.0版本中支持的编程语言仅有C#(F#和VB暂未实现)


http://www.niftyadmin.cn/n/3876810.html

相关文章

图像腐蚀与膨胀(用CImage处理),使用快速处理图像灰度值

1.用快速读写进行颜色转变 #include<iostream> #include<atlimage.h> using namespace std; int main() { const char *srcFilePath "21a.jpg", *destFilePath "21b.jpg"; CImage srcImage; srcImage.Load(srcFilePath); int width…

Laravel 中像Thinkphp中一样使用全局自定义函数

2019独角兽企业重金招聘Python工程师标准>>> 创建文件 app/helpers.php<?php // 示例函数 function foo() {return time();}2.修改composer.json。 {..."autoload": {"files": ["app/helpers.php"]}... }3.运行composer dump-aut…

【App】app中获取ro属性的方法

参看博客&#xff1a; https://my.oschina.net/chaselinfo/blog/213393?p1 String version SystemPropertiesProxy.get(this,"ro.mediatek.version.release");Log.d("QYC", "version " version);

pages/another/another 出现脚本错误或者未正确调用 Page()

出现该问题一定是js文件中忘了定义onLoad 可以温习一下页面生命周期知识 Page({ data: { }, onLoad: function () { }, })

译:SQL Server的Missing index DMV的 bug可能会使你失去理智---慎重看待缺失索引DMV中的信息...

注&#xff1a; 本文译自https://www.sqlskills.com/blogs/paul/missing-index-dmvs-bug-that-could-cost-your-sanity/  原文作者是在SQL Server 2008 SP1下面说的这个问题&#xff0c;本人在SQL Server 2014 SP2下测试仍有有这个问&#xff0c;因此记录了下来  本人原本打…

【App】蓝牙Bluetooth,app的编写总结

蓝牙四大必须任务&#xff1a;1.设置蓝牙2.查找局部区域内的配对设备&#xff0c;或可用设备3.连接设备4.再设备之间传输数据蓝牙权限&#xff1a;BLUETOOTH,ACCESS_FINE_LOCATION //android 9, API 28ACCESS_COARSE_LOCATION // < android9借助远程设备的已知 MAC 地址&a…

微信小程序selectable=‘true‘无复制效果解决

<text selectable></text>或<text selectable{{true}}></text>

20个高效正则表达式

2019独角兽企业重金招聘Python工程师标准>>> 1 . 校验密码强度 密码的强度必须是包含大小写字母和数字的组合&#xff0c;不能使用特殊字符&#xff0c;长度在8-10之间。 ^(?.*\\d)(?.*[a-z])(?.*[A-Z]).{8,10}$ 2. 校验中文 字符串仅能是中文。 ^[\\u4e00-\\u9f…