作为一个.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. NoneBot2插件——打印系统状态
  2. Minecraft Forge编程入门一 “环境搭建”
  3. 从 0 开始手写一个 Mybatis 框架,三步搞定!
  4. linux install用法
  5. 3、寻找三角形--百度2017春招
  6. 超越BI,数据产品的前途在哪里?
  7. 【Spring学习】01
  8. auto_ptr个人用
  9. 如何在Mac上的一个“预览”窗口中显示若干文件
  10. Allegro 铜皮分割 详解
  11. 第62次上IM课(IMO71:How to use Adverb)
  12. jMetal学习笔记(二)-NSGAii源码解读
  13. 阿里企业邮箱POP\SMTP\IMAP地址和端口信息
  14. java判断南北纬度的分界线_中国地理之南北分界线标志园,就在江苏淮安,是南是北一看便知...
  15. 论文阅读——A Comprehensive Study on Deep Learning-Based 3D Hand Pose Estimation Methods综述阅读2
  16. 【Mybatis】分页
  17. 二叉树的前序中序后序遍历图示
  18. php job框架,GitHub - zanphp/job-server
  19. ITE 在vs下可以模拟,在ite下无法编译
  20. impdp oracle 只导入表结构_Oracle数据导入导出(expdp impdp)

热门文章

  1. 解决dubbo中遇到HessianProtocolException: ‘xxxException‘ could not be instantiated的问题
  2. python画大象_[python实现设计模式]-2.模板方法模式---把大象关进冰箱.
  3. 怎么让html中的表格居中显示图片,如何让html中的表格左右居中显示
  4. 设计模式:模板方法模式
  5. 计算机硬件及应用评审,2018年东莞市计算机教育软件评审活动.docx
  6. centos7 ssh配置
  7. 王者荣耀攻略——典韦玩法
  8. python扫描文件代码
  9. sqlsever数据库用户管理
  10. 【转】[译] zram.txt