作为一个.Net 程序员,当别人跟你提到.Net的时候,如果你的第一反应还只是.Net Framework,那么你已经落伍了。由于Net的跨平台已经慢慢与趋向于完整,从最初的momo项目到现在.Net Core的,.Net的实现已经不仅仅是.Net Framework一种,它应该还包括:.Net Core 和 Xamarin。接下来,我们分别简单的谈谈这几种技术:

.Net Frameowrk

相对于这个大家应该都不陌生,像Windows Form, WPF, asp.net(包括MVC),Workflow等等的技术,都是属于这一大框架。

.Net Core

目前这一实现下,我们可以开发两种类型的项目一种是.Net Core Console App 和Asp .Net Core Web Application。这两种类型的程序都是跨平台的实现,也就是说当你开发者两种程序时,都是可以运行在Lunix平台上的。一种是控制台程序,一种是网站。其实在最新的官方博客中,把UWP(Universal Windows Platform)也归入到了.Net Core这个平台中。UWP能开发运行于所有Windows设备的应用程序,包括桌面,平板,手机(虽然微软已经宣布停止了Windows Phone这个项目),XBox等等,是一种基于Windows的跨设备统一平台

Xamarin

这个的前身其实就是momo,在2016年时候已经被微软收购并且随之开源。使用Xamarin我们可以开发运行于苹果设备上的程序包括手机和平板,也可以开发安卓手机以及其它安卓设备的程序。

基于以上三种.Net实现,我们应该能感受到微软在跨平台这方面做出的努力。从表现层Xamarin到后台的Asp.Net Core,微软在跨平台的布局也基本已经完成。但是也正是由于越来越多的.Net实现,他们都基于不同的API有了各自的实现拥有了不同的类库,对于一个开发者是极其不方便的。所以微软推出了.Net Standard。


.Net Standard

.Net Standard的目的是为了解决不同.Net实现之间的代码共用,因此.Net Standard拥有一个非常重要特点:.Net Standard定义了一系列的API,而所有的.Net实现都必须实现这些API,也就是说上面说到的三种.Net实现都必须实现这一套API,因此.Net Standard 的代码能够被共享。

为了能够更新的理解,我们可以看两张图。在.Net Standard推出之前,3个平台都是自己的类库,所以代码无法被共享:

值得一提的是,在.Net Standard推出之前,为了实现UWP和和Xamarin之间的代码共享,微软推出了Portable Class Libraries(PCL)。但是这种类型的类库最终会被.Net Standard取代,已有的PCL也可以有办法升级到.Net Standard。

而在推出.Net Standard以后,3种.Net平台可以代码共享:

以上就是目前.Net平台的三种实现和跨平台。

.Net三种实现以及跨平台相关推荐

  1. Java 基础入门随笔(1) JavaSE版——java语言三种技术架构

    1.java语言的三种技术架构: J2SE(java 2 Platform Standard Edition):标准版,是为开发普通桌面和商务应用程序提供的解决方案.该技术体系是其他两者的基础,可以完 ...

  2. Objective-C:三种文件导入的方式以及atomic和nonatomic的区别

    一.三种文件导入的方式比较:   类的前项声明@class.import.include: 1.采用@class 类名的方式,它会告诉编译器有这么一个类,目前不需要知道它内部的实例变量和方法是如何定义 ...

  3. 【Win 10 应用开发】文件读写的三种方案

    本文老周就跟伙伴们探讨一下关于文件读写的方法.总得来说嘛,有三种方案可以用,而且每种方案都各有特色,也说不上哪种较好.反正你得记住老祖宗留给我们的大智慧--事无定法,灵活运用者为上. OK,咱们开始吧 ...

  4. WinSock三种选择I/O模型

    在<套接字socket及C/S通信的基本概念>和<WinSock编程基础>中,我们介绍了套接字的基本概念和WinSock API的基本调用规范.我们讨论了阻塞模式/非阻塞模式和 ...

  5. mysql在计算机管理中的路径怎么修改_Rstudio中修改工作路径的三种方法

    原文链接: Rstudio中修改工作路径的三种方法_weixin_44370085的博客-CSDN博客_rstudio改变工作目录​blog.csdn.net Rstudio中修改工作路径的三种方法 ...

  6. .NET程序崩溃了怎么抓 Dump ? 我总结了三种方案

    一:背景 1. 讲故事 最近几天接到了几个crash的求助,可能这几个朋友没玩过怎么去生成dump,只能手把手教,感觉也不是一个办法,所以有必要总结一下,后续再有朋友咨询的话,我就可以把这篇文章丢过去 ...

  7. SQL Server与Oracle、DB2三种数据库比较

    开发数据库应用,选择一个好的数据库是非常重要的.本文从一些方面比较了SQL Server与Oracle.DB2三种数据库,为你选择数据库提供一些参考. 开放性 SQL Server 只能在Window ...

  8. 三种嵌入式操作系统的分析与比析

    1.1 嵌入式系统 嵌入式系统是以嵌入式计算机为技术核心,面向用户.面向产品.面向应用,软硬件可裁减的,适用于对功能.可靠性.成本.体积.功耗等综合性能有严格要求的专用计算机系统. 嵌入式系统应具有的 ...

  9. php三种web开发技术,三种WEB开发主流技术ASP-PHP-JSP的评价

    三种Web开发主流技术ASP-PHP-JSP的评价 [摘要]本文从程序开发者的角度,对现今社会盛行的WEB开发技术进行了分析,旨在让WEB 开发人员.使用者.准备学习的人对WEB开发技术有更加深入的了 ...

最新文章

  1. java.lang.Thread使用及总结
  2. 2020腾讯广告算法大赛十强名单出炉!
  3. i++ 和++i的区别
  4. 描述一下Spring框架的作用和优点?
  5. jmeter—操作数据库
  6. boot的几个依赖 spring_Spring boot依赖管理和数据库使用
  7. 笔记本电脑性价比排行2019_办公笔记本电脑排名2019 五款适合办公的笔记本电脑推荐...
  8. JQuery 总结(7) index() data() each() 选项卡 表单验证
  9. 英语学习笔记2019-11-15
  10. 腾讯、网易回应被约谈:严格落实未成年人防沉迷规定
  11. 容器中运行Fabric区块链网络
  12. 帝国cms清除html标签,帝国CMS如何删除清空旧数据让栏目文章ID从1开始起(一)...
  13. Excel word PDF导入导出 Easy POI
  14. window下c语言c s通信,c++ Windows Socket实现最简单的C/S网络通信(TCP)
  15. 学习编译原理的总结1
  16. 程序员 -- 黎明前凋零的奇葩
  17. 安卓平板微信和手机微信同时登陆_如何查看手机上的微信登陆记录
  18. python 点对点语音,Python(PyS60)实现简单语音整点报时
  19. 基于python的证件照_利用python自动生成证件照
  20. android ftp播放器,超强本地播放器一款支持samba、FTP/Windows共享服务-简单不折腾...

热门文章

  1. Leetcode50.Pow(x, n)剑指 Offer 16. 数值的整数次方--递归快速幂
  2. Linux命令之查找进程pgrep
  3. C语言中的malloc
  4. 专访比原链段新星:区块链一切性能指标均需代价
  5. 在不受Spring管理的类中注入spring 管理的对象
  6. [ 成为架构师系列 ] 5. Spring Bean 的生命周期 (the standard bean lifecycle)
  7. java线程同步的各种方法
  8. 苹果ios模拟器,电脑运行苹果ios应用
  9. 使用NI MAX创建模拟的NI-DAQmx设备
  10. QQ号交易必备常识 防止被骗