【译】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属于面向对象理论范畴,在使用面向对象思想编程的时候,常常需 ...
随机推荐
- 爆肝一周,我开源了ChatGPT 中文版接口,官方1:1镜像支持全部 官方接口
这里实现我之前文章承诺承接上文 人人实现ChatGPT自由,手把手教你零撸部署自己聊天私服 现在ChatGPT 提供了api接口 可以让我自己对接去实现我们自己想要gpt应用,但是由于一些原因,国内也 ...
- 百度飞桨(PaddlePaddle) - PaddleOCR 文字识别简单使用
百度飞桨(PaddlePaddle)安装 OCR 文字检测(Differentiable Binarization --- DB) OCR的技术路线 PaddleHub 预训练模型的网络结构是 DB ...
- Django-5:前端模板路径设定TEMPLATES DIRS和调用
前端模板路径设定:'DIRS': [BASE_DIR / 'templates'] TEMPLATES = [ { 'BACKEND': 'django.template.backends.djang ...
- OData WebAPI实践-与ABP vNext集成
本文属于 OData 系列文章 ABP 是一个流行的 ASP. NET 开发框架,旧版的的 ABP 已经能够非常好的支持了 OData ,并提供了对应的 OData 包. ABP vNext 是一个重 ...
- 洛谷 P8742题解
简单版(P2347)传送门 原题传送门 有一道类似的题目(P2347),先扯一扯~ 1.P2347 题目分析 动态规划入门题(01背包可行性问题)~ 我们设 \(dp_j\) 为能否用砝码称出 \(j ...
- 神经网络初步(Neural Network)——思想 具体实例以及代码实现
在前面我们详细的讨论过softmax损失函数以及SVM损失函数,以及应用了支持向量机进行图片分类的任务,不妨先复习一下支持向量机相关的思想内核:支持向量机想要寻求一组映射关系f(x)=wx+b,先将每 ...
- django:有关移除数据库出错问题
执行: 最终,通过执行迁移文件,我们将Django项目中创建的模型转化为MySql中的数据表. 执行迁移文件的两条命令: python manage.py makemigrations python ...
- Java二维数组以及多维数组的定义及应用
一.二维数组以及多维数组 1.二维数组的定义: 在一维数组中定义每一个元素也是一个数组元素,这样的数组称为"二维数组" 多维数组就是在一维数组上再次定义二维数组或三位数组等 ...
- 【webpack系列】从核心概念到上手配置
前言 作为前端开发者,相信大家或多或少都接触过webpack,现如今webpack已经渗透在了前端的各个方面,所以我们有必要来了解并学习webpack,webpack 是一种用于构建 JavaScri ...
- 前端热力图组件heatMapGD中国地图 中国热力地图 广东省热力地图 广东省地图 地市选择
快速实现前端中国热力地图 广东省热力地图 广东省地图, 请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12407 # china 广东省热力 ...