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

createh55个月前 (02-04)技术教程31

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在性能上没有明显的区别。它们都是基...

Net7/JDK19/Delphi10性能对比(续)

很多老哥说不公平、索要代码,亦有delphi大佬直接不相信。性能强弱是多方面的,我这里只测试内存分配及运算速度,C#圈的大佬各种不相信也是正常,毕竟可能C#其他方面吊打java,大家可以show co...

15个令人对读书产生敬畏之感的图书馆,这些才是真正的知识殿堂,不得不看!

图书馆里珍贵的不只有书,有的图书馆本身就是一件艺术品。意大利摄影师Massimo Listri花了10年时间造访全世界约70间图书馆,用镜头记录下最美丽的瞬间。今天就带你逛一逛世界上最美的图书馆。Pa...

微信小程序后端开发用什么语言好(微信小程序后端的作用)

微信小程序的发展增加了更多的流量入口,让用户与商家的沟通更娱乐更便捷,让商家宣传更多元化。小程序也是各个商家需要增加的渠道,那么在微信小程序后端开发用什么语言好呢?PHP/JAVA语言开发对于微信小程...

支付基础名词(5种基本支付模型)

T+1 T是交易(Trade)的意思。交易日通常都是工作日,因此T+1一般用于指工作日,比如股市T日交易,T+1资金交割。在支付里,需要确定结算是T+1日结算还是D+1日结算,如果是T+1日结算,一般...

动态方法拦截(AOP)的N种解决方案(拦截器和动态代理)

AOP的本质是方法拦截(将针对目标方法调用劫持下来,进而执行执行的操作),至于方法拦截的实现方案,不外乎两种代码注入类型,即编译时的静态注入和运行时的动态注入,本篇文章列出了几种常用的动态注入方案。这...