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

createh52个月前 (02-04)技术教程10

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和netbeans)

随着时代的变化,技术在不断发展,编程语言的重要性也在发生变化。所以,要我们在两门语言中二选一,通常很困难。在这篇文章里,我们要讨论的是 Java 和.NET 之间的“战争”。.NET 和 Java 是...

为什么说微软开源 .Net 也拼不过 Java?

.Net 服务器端源代码的开源对于微软而言是很重大的一步。然而这个动作的影响有限,也必须说 .Net 距离追上 Java 的开放源代码可能还要很长一段时间。 关于 .Net 开放源代码的计划,微软副总...

.NET Core/.NET5/.NET6 开源项目:工作流组件

前言开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激、尊重。请严格遵守每个项目的开源协议后再使用。尊重知识产权,共建和谐开源社区。ELSAElsa Co...

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

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

通过接口实现JAVA和.NET互调用-JNInterface

使用C#编程多年,也十分感激微软在语言架构、语法糖、编辑器等方面给自己带来的便利。但因为最近工作中有接触到JAVA,渐渐地发现的确像大家说的那样,JAVA的生态很好,要找点什么几乎都有现成的,于是自然...

java中的url 编码与解码(java urldecode解码)

在开始讨论编码解码之前,首先来明确一下问题。什么是application/x-www-form-urlencoded字符串?答:它是一种编码类型。当URL地址里包含非西欧字符的字符串时,系统会将这些字...