简单介绍C#(.NET)

1.阐述.NET/.NET Framwork/.NET Core(.NET5/6/7/8...)

对于初学者来说,不知道什么是.NET?什么是.NET Framwork?什么是.NET Core?

它们直接有什么区别?有什么联系?

1.1 .NET简介

.NET 是一个开发平台,或者叫开发者平台。使用 .NET 你可以创建不同类型的应用程序,使用多种开发语言、编辑器和工具库创建网页、手机、桌面以及AI等应用。其核心特点是:跨平台。

Microsoft.NET(简称.NET)是微软公司推出的面向网络的一套完整的开发平台,从程序员的角看,.NET是一组用于生成Web服务器应用程序、Web应用程序、Windows应用程序和移动应用程序的软件组件,用该平台建立的应用程序可以在公共语言运行库的控制下运行。

1.1.1 语言和平台

简单说,开发平台就是为应用软件开发提供的一个工作平台。.NET 开发平台主要包括公共语言运行时(Common Language Runtime,CLR)和框架类库(Framework Class Library, FCL)。其中 FCL 包含基础类库(Basics Class Library, BCL)和 ASP.NET (Core)、ADO.NET、WPF、WinForm 等框架类库。

经常有人拿 .NET 与 Java 对应。严格来说是不对的,与 Java 对应的是 C#,与 JVM 对应的是 (CLR),与 JDK 对应的是 .NET Framework/.NET Core/.NET SDK。JVM 上有多种语言,(CLR)上也有多种语言。比如 JVM 上有 Java、Scala、JPython 等,CLR 上有 C#、F#、IronPython 等。

有人把 .NET 等同于 .NET Framework 或 .NET Core。准确的来说也是不对的,.NET 是开发平台,.NET Framework 是在 .NET 平台上针对 Windows 系统实现的开发框架,.NET Core/.NET 是在 .NET 平台上实现的支持多操作系统的跨平台开发框架。

1.1.2 主要特点

前面说到了 .NET 的核心特点是跨平台。开源协议是最开放的 MIT 协议,允许在任何商业环境中使用。它的跨平台特性使得它可以它可以运行于任何环境,如 Windows、Linux、macOS、iOS、watchOS 和 Docker 等。

1.1.3 多语言支持

你可以使用多种语言来编写 .NET 应用程序,主流的语言有:C#, F# 和 Visual Basic。

1.1.4 多开发工具

你可以使用多种工具来进行 .NET 编程,有强大的 Visual Studio、轻小的 Visual Studio Code 。

Visual Studio:Windows 上功能齐全的集成开发环境(IDE),用于构建各种类型的 .NET 应用程序。还有专为 MacOS 打造的兄弟款:Visual Studio for Mac。
Visual Studio Code:可在 Linux、macOS 或 Windows 上开发,建立跨平台网站和服务,需安装 C# 扩展。

1.2 .NET Framework简介

在.NET Core出现之前, 微软的应用开发主要运行载体是自家的操作系统, 也就是WIndows操作系统.

2002年时, 微软发布了.NET框架的早期版本, 那时只有一个框架, 就是.NET Framework. 不久后微软又发布了.NET精简版框架(.NET Compact Framework), 这是.NET框架的一个子集, 适用于更小的设备, 特别是Windows移动设备(Windows Mobile).这个精简版的框架是一个独立于.NET框架的代码库. 它包括了真个运行时的垂直结构: 运行时、框架和顶部的应用程序模型.

.NET Framework是微软为开发应用程序而创建的主要运行在Windows操作系统的软件框架. 它包含了大量的FCL框架类库并且提供了多种语言之间的跨语言互操作. .NET Framework平台的应用程序在公共语言运行时(CLR)中执行, CLR 是一个应用程序的虚拟机, 它提供安全、内存管理和异常处理等服务. 因此使用.NET Framework编写的计算机代码称为"托管代码". 框架类库(FCL)和公共语言运行时(CLR)一起构成了.net Framework.

1.3 .NET跨平台 --- .NET Core

早期(.NET Core之前)的.NET应用程序是不跨平台(操作系统的),它只能运行在Windows操作系统上,并且操作系统中还必须安装.NET Framework环境。

为了实现跨平台运行的目标,Microsoft推出了.NET Core,其核心.NET Core Framework是参考.NET Framework重新开发的.NET实现。它支持Windows、macOS、Linux等操作系统,可以用于嵌入式或物联网解决方案中。为了使.NET应用程序能在诸如智能手机之类的设备之上运行,微软启动了mono项目(它可以运行在Linux和Mac OS系统上)。该项目可以看作是.NET Framework的开源实现。

2011年5月,Mono开发者为了使用C#开发跨平台的移动设备应用,成立并发布了Xamarin后于2016年被微软收购,但这只是微软跨平台的第一步,毕竟Xamarin只适合开发移动端应用。

随意移动设备迅速占领市场,Windows平台的大势已去。直到.NET Core,.NET才算真正的跨平台,这也是微软重大的战略转变。2014年12月,微软拥抱开源社区,宣布开源了.NET Core的核心代码,也是.NET跨平台迈出的最重要的一步。

经过不断地迭代,2016年6月发布和.NET Core 1.0,2017年3月发布.NET Core1.1.1。

.NET Core是一种模块化实现,可用于各种垂直领域,从数据中心扩展到基于触摸的设备,它是开源的,跨平台的,能在Windows、LinuxMac OSX等操作系统上运行,同时还支持Docker等容器化环境安装和部署。

1.3 .NET 5

微软为了统一.NET平台,计划将所有的.NET运行时统一为一个.NET平台,并为所有应用程序模型(如:.NET Core, Windows Forms, WPF, UWP, Xamarin, Blazor)提供统一的基类库(BCL)。在2019年5月6日宣布了.NET 5将是.NET Core 3.0的下一个主要版本。

2020年3月,微软发布了.NET 5的第一个预览版,并在同年的11月10日发布了.NET 5的第一个正式版。

1.4 .NET生态

生态图

从上面的图表中可以看出,.NET生态系统有三个主要的高级组件——.NET Framework、.NET Core和Xamarin组成。

.NET Framework:支持Windows和Web应用程序。现在,你仍然可以使.NET Framework作为目标框架来构建运行于Windows操作系统的Winform、WPF和UWP等桌面应用程序,以及基于ASP.NET MVC的Web应用程序。

.NET Core:是一个新的、开源的、跨平台框架,它用于构建适用于跨操作系统的应用程序,包括Windows、Mac和Linux。结合C#,它的应用场景也相当广泛,比如:

  • 用一套代码开发基于Xamarin的支持多端(Windows,Android,iOS)的应用程序;
  • 可以开发基于Blazor的桌面应用;
  • 跨平台的网站应用,Web API应用,微服务;
  • 跨平台的游戏开发Unity,目前应用得非常广泛,像【王者荣耀】这类大型的手游都是使用Unity开发出来的;
  • 基于WPF的桌面应用程序,使用WPF你可以自定义完成超酷的用户交互界面;
  • 物联网
  • 人工智能
  • 机器学习

java眼中的C#

JavaC#
编译器IDEAVisual Studio
运行环境JDK.NET(Framework/Core)
第三方仓库MavenNuget
顶层框架Spring.NET

结论

  • XAMARIN 主要用来构建APP的(包括IOS,Android Windows)主要用的是C#语言
  • .NET Framework 这个是我们现在经常用的,用这个可以创建windows应用程序还有web applications ,现在你可以用它创建Winform ,UWP ,wpf 等等相关的应用程序 ,web 方面就是Asp.net MVC
  • .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设备上运行。

  • 24
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值