基于.NET 5.0跨平台全栈开发福音来了

createh53个月前 (02-04)技术教程19

2020.11.10日DOTNET正式发布.NET 5.0,.NET 5.0 是 3.1 之后 .NET Core 的下一个主要版本,可以理解为.NET 5.0 = .net core vnext。为不叫 .NET Core 4.0 官网上描述主要有两个原因:

1. 跳过了版本号 4.x 以避免与 .NET Framework 4.x 混淆;

2. 从名称中删除了"Core",以强调这是 .NET 前进的主要方向。.NET 5.0 支持的应用程序类型和平台比.NET Core 和 .NET Framework更多。


.NET 5新特性

.NET 5 其中包括很多新特性以及性能优化,如C# 9更新、F# 5更新、Visual Basic 更新、单文件应用、应用程序修剪、Windows ARM64 和 ARM64 内部函数、转储调试的工具支持、性能改进(垃圾收集GC、json操作、正则表达式、异步值任务池、容器大小优化等)。

.NET 5下的全栈开发-B/S模式

我们知道.net下的web开发从最古老的asp.net WebForm-> asp.net mvc -> .net core mvc 然后再到现在流行的前后端分离(前端vue,angular,react + 后端微服务/RESTful 接口)。

以前纯后端的同学想进行B/S模式全栈开发不懂JS肯定是行不通的,现在从.net core 3开始到现在的.net 5发布,.net 下的WebAssembly框架Blazor完全可以让你进行全栈开发成为了可能。

Blazor简介:Blazor 是一个开放源代码和跨平台的Web UI框架,使用 .NET 代替 JavaScript 来创建丰富的交互式 UI。简单地说Blazor可以使用.NET代码(C#/VB.NET)来实现的网页交互功能,可以利用现有的 .NET 库生态系统,对.net开发者比较友好不需要重新学习React、Vue、Angular等框架。关于性能的更不能担心,Razor和HTML最终会编译成WebAssembly 运行在支WebAssembly 的浏览器上。

Blazor UI生态:框架有了,如果没有漂亮的UI组件还是很难做出精美的系统,这个不用担心Blazor自诞生到现在已经涌现出很多组件生态,Vue比如用的多的是elementui、ivies、Ant Design Vue,在Blazor也有开源社区和作者将他们移植过来。

目前有传统的.net控件厂商提供的Blazor商业组件,如大名鼎鼎的Telerik、DevExpress估计很多.net的小伙伴们都用过。另外开源的组件有:Ant Design Blazor(Ant Design大家应该很熟悉蚂蚁金服UI)、BlazorStrap(基于Bootstrap 4)、Blazui(基于Element UI CSS)、Blazor Extensions、bUnit、MatBlazor、Blazorise、Blazored等等。

我比较推荐的是Bootstrap Blazor、Ant Design Blazor,具体使用可以参考我前面的写的2篇文章里面有介绍到这2Blazor UI 框架。

Bootstrap Blazor

www.toutiao.com/i6892050494823334408/


Ant Design Blazor
https://www.toutiao.com/i6889673425065869837/



.NET 5下的全栈开发-C/S模式

现在虽然说是B/S模式的天下,传统C/S模式已经没落了,但是C/S模式还有很多应用场景的,比如很多工厂的工控软件、比如现在的手机app 也算的上是C/S模式的,还有很多网页游戏提供的微端也算的上C/S模式。目前的WPF和WinForm暂时只能在windows下运行,如果想制作跨平台大概有如下几种方式:

QT: qt是一个著名的C++跨平台GUI程序开发框架,它既可以开发GUI程序,也可用于开发非GUI程序,目前好像支持Python调用。

Mono + MonoDevelop(开发工具)
在Linux 下使用C#,基于Mono运行时+ MonoDevelop开发工具,新建GTK 项目(应该是基于GTKSharp,Linux上使用GTK等技术实现WinForm)。

Electron:

使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序,本文在此不多做阐述。

Java AWT/SWING:

Swing 是一个为Java设计的GUI工具包,包括了图形用户界面(GUI),至于AWT应该很少人使用了。使用awt/swing来编写跨平台的GUI客户端应用,本文在此不多做阐述。

.NET Multi-platform App UI (MAUI):

很遗憾的是.NET 5还没有将跨平台GUI(MAUI)加入到.NET 5里面来,MAUI将会在明年的10月份随着.NET 6.0一起发布。.NET MAUI 是Xamarin.forms 工具包的演变,在 dotnet/maui 的 GitHub上是开源的。MAUI发布时候将支持Android、iOS、Linux、macOS、Tizen、Windows等平台。

MAUI 发展线路图

当前开发在xamarin/xamarin.forms 中,明年将继续通过平稳和无缝过渡到 .NET MAUI 来。

.NET MAUI Preview 1 (将于2020年底发布 )

.NET MAUI Preview 2 (将于2021年年初发布)

大概经过多个版本的从.NET MAUI Preview 1~.NET MAUI Preview 5后将于2021年11月份正式发布,到时候小伙伴们便可体验MAUI,享受一次开发跨所有平台的app了。

相关文章

JAVA和.NET谁更优秀?你选择谁?(java和.net哪个简单)

Java和.NET都是现代流行的编程语言,它们在许多方面都有各自的优缺点和优势。下面我们将详细分析Java和.NET谁更优秀,并给出具体理由。性能:Java和.NET在性能上没有明显的区别。它们都是基...

谁说.NET没有GC调优,只改一行代码就让程序不再占用内存

经常看到有群友调侃“为什么搞Java的总在学习JVM调优?那是因为Java烂!我们.NET就不需要搞这些!”真的是这样吗?今天我就用一个案例来分析一下。昨天,一位学生问了我一个问题:他建了一个默认的A...

Avalonia:可信创.NET 跨平台UI,让JAVA失业者转.NET信创开发!

亲爱的读者们,今天我想与大家分享一个令人兴奋的主题 —— Avalonia,这个强大的.NET跨平台UI框架。作为一名曾经的JAVA开发者,我深知转换技术栈的挑战。然而,在当前快速变化的IT行业中,适...

.NET程序员学习JAVA的最佳开源项目RuoYi

随.NET生态的快速发展,以及跨平台产品.NET Core的出现,.NET的开源生态也变得越来越繁荣,.NET程序员终于可以扬眉吐气的说.NET跨平台了!基于.NET平台,可以快速开发Web程序、桌面...

工作日报 2021.10.20 OkHttp3错误异常:unexpected end of stream

2021.10.20问题澄清:Plugtest IDMS对接版本准备;蓝牙手咪适配问题配合定位;Mcdata http彩信上传,接口方案DT联调;河北联创项目联调;OkHttp3错误异常: java....

从0构建我的世界生电客户端(java版)

启动器下载官方启动器 https://www.minecraft.net/zh-hans/store/minecraft-java-edition?ref=launcher(去网易就算了,点下面的留在...