如何使用BlazorLinux平台下运行Desktop程序

本文将讲解如何使用Blazor运行跨平台应用,应用到的技术有以下几点

用于验证跨平台性,并且是否提高开发效率,Blazor和Photino一块使用的技术称为Blazor Hybrid

Blazor的优点

Blazor是一种使用.NET和C#构建客户端Web应用程序的新兴技术。它允许开发者在浏览器中直接运行.NET代码,而无需依赖JavaScript。Blazor的技术优点主要表现在以下几个方面:

  1. 单一语言栈:Blazor允许开发者使用C#和.NET进行全栈开发。一种语言用于前端和后端可以大大简化开发过程,减少错误并提高效率。不再需要在JavaScript和C#之间来回切换,这减少了上下文切换的复杂性和出错的可能性。相比之下,传统的Web开发需要使用JavaScript、HTML、CSS等多种语言,而且JavaScript并不具备强类型特性,因此更容易出错。

  2. 运行在WebAssembly:Blazor利用WebAssembly(Wasm)技术,在浏览器中运行.NET代码。WebAssembly是一种在现代浏览器中运行的低级语言,它比JavaScript更接近机器语言,所以运行速度更快。而且,WebAssembly在浏览器中的执行环境是沙盒化的,这意味着它可以在不影响其他系统资源的情况下安全地执行。

  3. 强类型检查:Blazor使用C#,这是一种强类型语言。相比于JavaScript,强类型语言可以在编译时捕获更多的错误,降低运行时出错的可能性。同时,强类型语言可以提供更好的自动完成、重构和智能提示功能,这些都可以大大提高开发效率。

  4. 复用代码和库:由于Blazor使用.NET,你可以在前端和后端共享相同的数据模型和业务逻辑代码,避免了因为同步前后端代码而产生的大量重复工作。此外,.NET的库生态系统非常丰富,这意味着你可以在Blazor应用中直接使用大量现有的库和框架,无需对其进行修改。

  5. 组件化架构:Blazor采用了组件化的设计模式,这使得你可以创建可复用的UI组件,提高代码的可读性和可维护性。组件化架构也使得测试变得更加容易,因为每个组件都是独立的,可以单独进行测试。

  6. 与现有技术的兼容性:Blazor并不排斥其他Web技术。你可以在Blazor应用中使用JavaScript和JavaScript库,也可以将Blazor组件嵌入到现有的MVC或Razor Pages应用中。这种兼容性使得Blazor更加灵活,可以适应各种复杂的需求。

  7. 现代化的开发体验:Blazor支持热重载,这使得你可以在保存代码更改后立即在浏览器中看到效果,无需手动刷新页面。这大大提高了开发效率,让开发者可以快速迭代和调试。此外,Blazor还支持使用SignalR实现实时通信,使得创建实时Web应用变得更加简单。

  8. Microsoft的支持:Blazor作为Microsoft推出的一项技术,得到了强大的技术支持。Microsoft为Blazor提供了完善的文档,使得开发者可以快速学习和掌握这项技术。此外,Microsoft还定期发布更新,以增强Blazor的功能、改进性能和修复问题。强大的社区支持也是Blazor的一大优势,开发者可以在社区中寻求帮助、分享经验或参与到项目的贡献中。

  9. 跨平台支持:Blazor应用可以在任何支持WebAssembly的浏览器上运行,这意味着它具有出色的跨平台兼容性。你可以使用Blazor开发桌面、移动和Web应用,而无需针对不同平台编写不同的代码。

  10. 安全性:Blazor支持ASP.NET Core Identity和OAuth 2.0等安全认证和授权机制。你可以方便地为你的应用程序添加安全措施,以保护用户数据和应用程序资源。

  11. 可扩展性:Blazor的设计允许开发者创建自定义组件、中间件和服务,以满足特定需求。这使得Blazor具有很高的可扩展性,可以适应各种复杂的应用场景。

  12. 渐进式Web应用(PWA)支持:Blazor支持创建渐进式Web应用(PWA),这意味着你可以创建可离线运行、具有原生应用般表现的Web应用。PWAs在性能、可访问性和用户体验方面具有很多优势,使得它们越来越受到开发者和用户的青睐。

  13. Server-Side Blazor(Blazor Server):Blazor还提供了一种服务器端渲染模式,称为Blazor Server。在这种模式下,Blazor应用的所有逻辑都在服务器上运行,浏览器只负责显示UI。这使得应用的启动速度更快,同时减轻了客户端的负担。Blazor Server通过SignalR实现实时通信,确保UI与服务器状态同步。

    总之,Blazor作为一种使用.NET和C#构建客户端Web应用程序的技术,具有许多显著的优点,包括单一语言栈、WebAssembly支持、

开始使用Masa Blazor

开始我们的第一步,安装Masa Blazor的模板,请注意模板版本1.0.0-rc.2,只有1.0.0-rc.2才有新的项目模板

dotnet new install Masa.Template::1.0.0-rc.2

安装完成以后,我们发现Masa Blazor提供了.NET 的基本上所有平台的模板了,当然我们这篇只讲解Photino

好了继续我们创建项目模板。打开vs我们会发现在MASA下面出现了很多项目的模板,我们创建第一个Masa Blazor Photino App(MASA),然后默认选项创建项目,然后启动项目。

这是提供的一个默认的模板

在win下正常运行了,然后我们想要在Linux下尝试是否能正常运行,准备发布项目,右键我们的项目=>发布=>文件夹

由于我的Ubuntu系统是没有安装SDK的所以我就发布独立模式!然后将部署文件移动到Ubuntu

然后在当前目录下打开控制台

给予程序可执行权限,然后运行项目

sudo chmod +x MasaBlazorApp1
./MasaBlazorApp1

这是运行的效果。这是最简单的方式,下面我把Masa Pro提供的代码迁移到当前Demo中并且在Linux中运行

下面是移植在Window运行的效果

,然后继续之前的操作,发布Linux应用,然后运行

一个超好看的Linux桌面程序就写好了,非常简单,项目地址放在最下面

来自token的分享

技术交流群:737776595

项目地址:https://github.com/239573049/Photino.Masa.Blazor.Pro

Masa Blazor赞助(快乐肥宅水)

原来.NET写的Linux桌面这么好看?的更多相关文章

  1. Linux 桌面玩家指南:04. Linux 桌面系统字体配置要略

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  2. Linux 桌面玩家指南:03. 针对 Gnome 3 的 Linux 桌面进行美化

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  3. Linux 桌面玩家指南:02. 以最简洁的方式打造实用的 Vim 环境

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  4. Linux 桌面玩家指南:12. 优秀的文本化编辑思想大碰撞(Markdown、LaTeX、MathJax)

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  5. Linux 桌面玩家指南:09. X Window 的奥秘

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

  6. [转载]打造自己喜欢的Linux桌面----archlinux

    原文地址:打造自己喜欢的Linux桌面----archlinux作者:三尺椴 打造自己的Linux桌面----Archlinux 2011-01-16  文/s_cd ( 常用桌面组合:Archlin ...

  7. 浅谈Linux桌面(发行版及桌面环境)

    Part I: 前言 笔者2018年接触Linux(当时还是学校机房的Ubuntu 14.04 LTS),至今已经有4个年头了. 折腾了至少十几个Linux发行版,包括但不限于: ubuntu.Deb ...

  8. Linux 桌面美化那点事儿

    各个 Linux 桌面发行版刚拿到手的时候,或多或少都有点儿不满意,对它们进行一些改造是必须的.网上不乏各种 Linux 桌面美化的教程和经验贴,对我们这些 Linux 爱好者来说都是很好的参考资料. ...

  9. 新手选择使用 Linux 桌面的七个注意点

    导读 刚接触Linux桌面的用户该如何选择一款合适的Linux桌面环境呢?如果你习惯使用Windows或OS X,那么一想到要选择就让人犯难,那么你又该如何在十几个主要的Linux桌面.几十个次要的当 ...

  10. Linux 桌面玩家指南:18. 使用 Docker 隔离自己的开发环境和部署环境

    特别说明:要在我的随笔后写评论的小伙伴们请注意了,我的博客开启了 MathJax 数学公式支持,MathJax 使用$标记数学公式的开始和结束.如果某条评论中出现了两个$,MathJax 会将两个$之 ...

随机推荐

  1. 区块链技术与应用:02-BTC-密码学原理

    本文为个人整理笔记,知识点来源于北京大学肖臻老师的<区块链技术与应用>公开课视频:https://www.bilibili.com/video/BV1Vt411X7JF?from=sear ...

  2. salesforce零基础学习(一百二十二)通过 excel / csv创建 object

    本篇参考: https://help.salesforce.com/s/articleView?id=sf.dev_objectcreate_task_lex_from_spreadsheet.htm ...

  3. 大数据面试——Flink

    一.公司怎么提交的实时任务,有多少 Job Manager.TaskManager 是多少 我们使用 yarn session 模式提交任务:另一种方式是每次提交都会创建一个新的 Flink集群,为每 ...

  4. SpringBoot——自定义start

    更多内容,前往 IT-BLOG 一.Mybatis 实现 start 的原理 首先在写一个自定义的 start 之前,我们先参考下 Mybatis 是如何整合 SpringBoot:mybatis-s ...

  5. Web请求与响应(SpringBoot)

    Web请求与响应 Web的工作原理可以分为以下几个步骤: 输入URL:Web客户端使用Web浏览器输入所需访问的URL(统一资源定位符). 建立连接:Web浏览器与Web服务器之间建立TCP/IP连接 ...

  6. 淘宝商品页面的爬取.py(亲测有效)

    import requests def getHTMLText(url): try: r = requests.get(url,timeout=30) r.raise_for_status() #如果 ...

  7. ChatGPT3.5使用体验

    优点 1.ChatGPT 能颠覆现有的搜索引擎(百度.谷歌). 2.ChatGPT 的交互体验非常好,满足"智能助手"这种工具. 3.如何使用好ChatCPT? 回到一个经典的问题 ...

  8. 谁能真正替代你?AI辅助编码工具深度对比(chatGPT/Copilot/Cursor/New Bing)

    写在开头 这几个月AI相关新闻的火爆程度大家都已经看见了,作为一个被裹挟在AI时代浪潮中的程序员,在这几个月里我也是异常兴奋和焦虑.甚至都兴奋的不想拖更了.不仅仅兴奋于AI对于我们生产力的全面提升,也 ...

  9. 【过滤器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

    简介 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern),是一种结构型模式.这种模式允许使用不同的标准条件来过滤一组对象,并通过逻辑运算的方式把各条件连接起来,它 ...

  10. 华为人工智能atlasA800-9000物理服务器离线安装及CANN安装和MindSpore安装和Tensorflow安装

    目录 华为人工智能atlas A800-9000 物理服务器全程离线安装驱动以及CANN安装部署和MindSpore安装部署和Tensorflow安装部署 A800-9000 物理服务器安装驱动 使用 ...