【译】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属于面向对象理论范畴,在使用面向对象思想编程的时候,常常需 ...
随机推荐
- 2021-03-07:在一个数组中,对于每个数num,求有多少个后面的数 * 2 依然<num,求总个数。比如:[3,1,7,0,2],3的后面有:1,0;1的后面有:0;7的后面有:0,2;0的后面没有;2的后面没有;所以总共有5个。
2021-03-07:在一个数组中,对于每个数num,求有多少个后面的数 * 2 依然<num,求总个数.比如:[3,1,7,0,2],3的后面有:1,0:1的后面有:0:7的后面有:0,2:0 ...
- Selenium - 元素操作(4) - alert弹窗处理
Selenium - 元素操作 alert弹窗 Alert弹出框由于不是html的页面元素,而是JavaScript的控件:所以不能右键检查,用传统的方法去操作. 例如这种弹窗: # 获取告警弹框的文 ...
- 初识volatile
案例1:是否存在我不是我的问题 flag==!flag flag是boolean类型 了解volatile 概念 1.volatile如何保证内存可见性 2.volatile如何禁止指令重排序 ...
- Hugging News #0602: Transformers Agents 介绍、大语言模型排行榜发布!
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- Linux 中多终端同步 history 记录
很多文章都是第一时间在语雀进行了更新和发布,公众号的文章只是在语雀平台的基础上进行同步的,而且更新频率也会比语雀要慢.最近弃坑简书,入驻语雀,欢迎阅读原文来语雀一起交流学习. 基本认识 Linux 默 ...
- 如何安装旧版本的 R 包
由于微信不允许外部链接,你需要点击文章尾部左下角的 "阅读原文",才能访问文中链接. 我们在安装 R 包的时候,经常会发现某个最新的包与当前 R 的版本不兼容. > inst ...
- 【原创】xenomai内核解析-xenomai实时线程创建流程
版权声明:本文为本文为博主原创文章,未经同意,禁止转载.如有错误,欢迎指正,博客地址:https://www.cnblogs.com/wsg1100/ 目录 问题概述 1 libCobalt中调用非实 ...
- Unity iOS Guideline 1.3 - Safety - Kids Category 被拒
解决办法: 不使用unity 的分析SDK //关闭unity信息收集服务 UnityEngine.Analytics.Analytics.enabled = false; UnityEngine.A ...
- 360OS张焰:AI视觉在教育中的应用
11月24日,由即构科技主办的2020GET大会教育科技分论坛在北京成功召开,来自叮咚课堂.小冰.360OS.蕃茄田艺术.即构科技的6位资深教育/科技大咖,在论坛上进行深度分享. 以下为360OSAI ...
- Map集合_HashMap_TreeMap_等_小记
Map是一种依照键值对数据存储元素的容器. Map中的元素是两个对象,一个对象作为键,一个对象作为值.一个键(key)和它对应的值构成map集合中的一个元素.Map集合的数据结构只跟键有关,键不可以重 ...