【译】Silverlight 不会消亡 XAML for Blazor 到来
Userware 正在使用早已消失的、令人怀念的微软 Silverlight Web 开发平台的遗留来支持其新的“XAML for Blazor”产品,该产品允许 .NET 开发人员在客户端 Blazor 应用程序中使用标记语言。
这家法国软件公司因推出开源软件 OpenSilver 而名声大噪。OpenSilver 是 Silverlight 被微软淘汰后的替代品。
Silverlight 是一个流行的框架,微软在2021年10月正式停止了对它的支持,尽管它早前的弃用导致了许多忠实的开发人员的焦虑,他们抱怨说,他们在这个框架上投入了太多,却只看到其退场。
Userware 和其他一些第三方一起,试图保持 Silverlight 技术的活力,最新的例子就是为 XAML for Blazor。这与 Blazor 的 Web 技术(HTML/CSS)相反,后者是微软青睐的方法。Daniel Roth 是 ASP.NET 的主要项目经理。他去年也说过:“我们知道 XAML 是一种流行的 UI 开发技术,但是对于 ASP.NET Core & Blazor 来说,我们的重点是基于 HTML 和 CSS 的 Web 开发。对于那些对基于 XAML 的 Web 开发感兴趣的人,我们建议他们加入各种基于 XAML 的社区:Uno, Avalonia, OpenSilver,. Net MAUI。”
因此,对于那些喜欢 XAML 方法(但显然不想使用以移动为中心的 .NET MAUI)的人来说, XAML for Blazor 通过 NuGet 包获取,该包允许开发人员并行地利用 XAML 文件和 Razor 文件,将 XAML 呈现为相同 DOM 中的纯 HTML。到目前为止,它只能与 Blazor 的客户端组件(称为 Blazor WebAssembly)一起工作。在 IDE 的市场中,相应的 Visual Studio 扩展可以将模板添加到 Visual Studio 的“add New Item”对话框中,从而方便在 Blazor 项目中创建新的 XAML 文件。
Userware 首席执行官 Giovanni Albani 在 Reddit 上宣布该工具时说:“我们为 XAML for Blazor 的目标是解决开发人员在将现有的基于 XAML 的应用程序与 Web 应用程序集成时面临的挑战,并帮助弥合桌面和 Web 开发之间的差距。”从许多评论来看,人们对该工具大多持怀疑态度。
Userware 列出了以下 XAML for Blazor 的好处和用例:
1 具有 XAML 偏好或专业知识的开发人员现在可以在 Blazor 应用程序中利用他们的技能。他们可以使用熟悉的 XAML 特性,如 MVVM、绑定、样式、模板、面板、自定义控件等。
2 从现有的基于 XAML 的应用程序(如 WPF、Silverlight、UWP 和WinUI 应用程序)中迁移或重用代码变得更加流畅,因为 Blazor 与 Silverlight 的特性几乎相同,并且与其他技术非常相似。
3 XAML for Blazor 提供了对强大的 XAML 控件的访问,如 DataGrid 和 DataForm,以及 OpenSilver 针对企业的特性,包括 RIA 服务、WCF SOAP、PRISM、MEF 等等。
Userware 本周表示:“我们从2014年开始构建 OpenSilver,从 Silverlight 迁移大型企业应用程序的经验,为我们在 HTML 中渲染 XAML 和处理复杂的互操作性场景方面提供了宝贵的洞察力。”
除了目前缺乏服务器端支持外,已知的限制还包括:
1 需要 .Net 7 或 .Net 8。目前仅在 Windows 上的 Visual Studio 2022 上测试。
2 开发人员可以将 XAML 文件和 Razor 文件并排放在同一个 Blazor 项目中,但不能在单个文件中混合和匹配 XAML 和 Razor 的片段。
3 XAML 主要支持的语言是 Microsoft Silverlight,它是 WPF 的一个浏览器友好的子集。从 WPF、UWP 或 WinUI 移植 XAML 片段相对容易。从 Xamarin Forms 或 .NET MAUI 进行移植需要更多的实质性工作。
XAML for Blazor 有一个免费版本,不允许商业使用,也有专业版和企业版,价格各不相同。
为了帮助开发人员开始使用新产品,Userware 在 GitHub 上发布了“入门”文档以及相关的示例应用程序。
该公司未来的计划包括扩展对 Blazor Server 的支持,丰富文档和示例,以及引入UI设计器。
原文连接:https://visualstudiomagazine.com/articles/2023/07/13/xaml-blazor.aspx
【译】Silverlight 不会消亡 XAML for Blazor 到来的更多相关文章
- Silverlight动态载入调用XAML资源
以多语言为例子: ResourceDictionary resourceDictionary = new ResourceDictionary(); //新建资源集合 var culture = ...
- silverlight visifire控件图表制作——silverlight 后台方法ControlChart.xaml.cs
一.构造方法ControlChart 1.前台页面控件赋值 //时间下拉框赋值,下拉框赋选定值 for (int ii = DateTime.Today.Year; ii ...
- silverlight 生产图表(动态图表类型,Y轴数量) .xaml.cs文件
silverlight 页面后台方法 .xaml.cs文件 public void CreateChart(Grid oGrid, ObservableCollection<ListItem&g ...
- 开源一个silverlight上的文本编辑器:SlEditor
控件设置三个状态:编辑.设计.查看. 控件的内容可以打包保存为zip格式,内容可以包含图片等元素(解决了silverlight RichTextBox控件xaml属性无法获取InlineUIConta ...
- SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现
原文:SQL Server 2008空间数据应用系列七:基于Bing Maps(Silverlight) 的空间数据展现 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft ...
- silverlight与wcf双向通讯 例子
本文将建立一个silverlight与wcf双向通讯的简单实例,以下是详细步骤: 新建Silverlight应用程序,名称WCFtest.解决方案中添加WCF服务应用程序,名称WcfServiceTe ...
- Prism 4 文档 ---第10章 Silverlight和WPF之间共享代码
本主题帮助你理解来自Prism的多目标和它的优缺点.多目标的代码针对两个不同的平台有大致相同的代码库.这允许同时保持代码尽可能多一样能够产生针对两种不同技术的二进制文件.在这种情况下,本节介绍 ...
- Xamarin.Forms之XAML
官网参考 XAML基础知识 XAML(eXtensible Application Markup Language)可扩展应用程序标记语言,允许开发者在Xamarin.Forms应用中采用标记而不是代 ...
- 【炫丽】从0开始做一个WPF+Blazor对话小程序
大家好,我是沙漠尽头的狼. .NET是免费,跨平台,开源,用于构建所有应用的开发人员平台. 本文演示如何在WPF中使用Blazor开发漂亮的UI,为客户端开发注入新活力. 注 要使WPF支持Blazo ...
- Attribute和Property
有时很容易对Attribute和Property混淆,因为中文翻译都是“属性”来解释的.其实这两个表达的不是一个层面的东西. Property属于面向对象理论范畴,在使用面向对象思想编程的时候,常常需 ...
随机推荐
- 2022-05-12:小歪每次会给你两个字符串: 笔记s1和关键词s2,请你写一个函数, 判断s2的排列之一是否是s1的子串。 如果是,返回true; 否则,返回false。 来自字节飞书团队。
2022-05-12:小歪每次会给你两个字符串: 笔记s1和关键词s2,请你写一个函数, 判断s2的排列之一是否是s1的子串. 如果是,返回true: 否则,返回false. 来自字节飞书团队. 答案 ...
- 2021-03-29:无序数组arr,子数组-1和1的数量一样多,请问最长子数组的长度是多少?
2021-03-29:无序数组arr,子数组-1和1的数量一样多,请问最长子数组的长度是多少? 福大大 答案2021-03-29: [1, -1, 2, 3, -4, -1, 9]变成[1, -1, ...
- 提高生产力的最佳免费开源终端:WindTerm
哈喽,大家好!我是程序视点的小二哥! 前言 自从当上程序员以来使用频率最多的不是vscode,也不是github,而是终端!!! 小师妹使用过很多的终端工具,什么Tabby,Putty,Wrap等等, ...
- Java(数组声明创建、初始化、特点、内存分析、边界)
数组的定义 数组是相同类型数据的有序集合 数组描述的是相同类型的若干数据,按照一定先后次序排序组合而成 其中,每一个数据称作一个数组元素,每个数组元素可以通过下标访问它们 1.数组声明和创建 声明 d ...
- OSPF路由控制
实验拓扑 实验需求 公司A使用OSPF路由协议实现公司设备全网互通,后来公司A扩张兼并了公司B,要求将公司B采用的IS-IS路由协议与公司A的OSPF协议互相引入,使得相应部门可以实现互通. Rout ...
- 一文搞懂V8引擎的垃圾回收机制
前言 我们平时在写代码的过程中,好像很少需要自己手动进行垃圾回收,那么V8是如何来减少内存占用,从而避免内存溢出而导致程序崩溃的情况的.为了更高效地回收垃圾,V8引入了两个垃圾回收器,它们分别针对不同 ...
- 记录部署Datax、Datax-web 过程碰到的问题
我的第一篇博客 datax在网络上部署的文档有很多,这里不重复阐述,只描述过程中碰到的些许问题,记录下来. 1. 1 ERROR RetryUtil - Exception when calling ...
- Mysql数据库体系化详细笔记(b站韩顺平)
Mysql数据库 一.数据库 使用命令行窗口连接MYSQL数据库 mysql服务启动,在cmd输入net start mysql 1.mysql -h主机名-Р端口-u用户名-p密码 2.登录前,保证 ...
- 利用生成式预训练Transformer实现智能问答与人机交互
目录 利用生成式预训练Transformer实现智能问答与人机交互 随着人工智能技术的不断发展,智能问答和人机交互已经成为了人工智能领域中的重要研究方向.在智能问答中,机器能够以自然的方式与人类进行对 ...
- 获取邮箱(QQ、126、163)的客户端授权码
获取QQ邮箱的客户端授权码 1.首先登录QQ邮箱(https://mail.qq.com),然后,点击"设置"按钮. 2.点击"账户"按钮,进入"账户 ...