写点什么

Ooui:在浏览器中运行.NET 应用

2018 年 4 月 23 日

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

在过去数年中,桌面应用开发人员一直处境艰难,因为人们的主要关注点聚焦于 Web 和移动应用。由于 Microsoft 未来 Windows 平台的计划未定,并且 UWP 应用也没有突破性进展,因此技术落伍的责任也不应由.NET 开发人员来承担。当前迫切需要解决的挑战,是提供一种可运用这些开发人员在 C#上知识积累的新方式。

这正是近期一些在浏览器上使用 C#的工作吸引关注之处。今年早期,Microsoft 宣布他们对 Blazor 的支持。最近,Frank A. Krueger 宣布开发完成 Ooui 软件库。Ooui 支持将 C#或 F#用于编写可运行在浏览器中的应用。Ooui 支持以 WASM 为编译目标,这样Xamarin.Forms应用就可以部署到 WebAssemly 中,无需应用服务器即可完全运行在浏览器中。

据 Krueger 介绍,WASM 并非唯一受支持的平台,其它可用的编译目标还包括使用 ASP.NET Core 的 Web DOM、WebAssembly 以及 Ooui 内建的 Web 服务器。技术的底层工作机制如下:对于 WebAssembly 项目,所有的 Web 浏览器与应用间通信发生在进程内。对于其它项目,则使用 WebSockets 进行“浏览器 - 应用”间通信,以保持 UI 和应用状态的同步。

Krueger 还给出了一些概念验证演示,有效地展示了上述理念。其中包括一个基本的 XAML 编辑器,演示了如何实现浏览器内的 XAML 编辑,并实时显示更改情况。此外,演示中还提供了一组样例代码,展示了 Xamarin.Forms和基本 Web 控件的使用。

上手 Ooui 开发非常简单。你首先需要在.NET Core 中新建一个 Console 应用,并添加对 Ooui.Wasm 和 Ooui.Forms 的引用。然后使用通常使用的 dotnet 去构建应用,就可以部署应用了。进而,通过使用dotnet-server,或是将dist目录中的文件拷贝到任何一种可提供静态文件的 Web 服务器,你就可以测试所用的代码。

查看英文原文: Running .NET in the Browser with Ooui

2018 年 4 月 23 日 19:001593
用户头像

发布了 376 篇内容, 共 93.8 次阅读, 收获喜欢 214 次。

关注

评论

发布
暂无评论
发现更多内容

LeetCode题解:322. 零钱兑换,动态规划,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

最值得期待的Python进阶宝典《Effective Python》第2版中文版来咯!

华章IT

Python 代码整洁 Python编程 EffectivePython Python进阶

区块链技术的价值传递

CECBC区块链专委会

区块链

菜单展示的递归与非递归形式实现 (go语言版)

我的腿腿

数据结构和算法

Python编程入门手记

吕湛全

产品训练营第五周作业

产品经理训练营

第二次书摘的微信视频号直播复盘

Sicolas Flamel

用户体验

云算力系统开发|云算力APP软件开发

开發I852946OIIO

系统开发

Linux Jenkins 自动打包vue部署到远程window服务器

三爻

Vue jenkins Win

作业5

赝品

产品训练营第五周作业

朱航

2021华为软件精英挑战赛正式开启,冠军奖金20万!

2021华为软件精英挑战赛

华为 软件 比赛 软件挑战赛

开源微服务运行时 Dapr 发布 1.0 版本

阿里巴巴云原生

开源 容器 微服务 开发者 云原生

2021 iOS底层提升计划

iOS底层

Your small business questions, answered

小韩

关于零售业数字化势在必行的一些杰出观点

小刘在学习

新零售

c语言函数与指针基础

赫鲁小夫

编程常见必备知识

梦醒了

编程 链表 函数

【转】阿秀:C++经典49问49答

杨明越

小结Spring中bean的作用域与生命周期

李楠

spring 生命周期 bean 作用域

危机还是机遇?我靠着这份算法笔记成功拿下字节offer

互联网架构师小马

Java 数据结构 面试 算法 数据结构与算法

区块链技术带来金融服务的信任变革

CECBC区块链专委会

金融

计算机内部的总线是什么

FishyFine

计算机结构

OAtuth2.0 知多少

圣杰

oauth2.0 dotnet

量化机器人APP开发|量化机器人软件系统开发

开發I852946OIIO

系统开发

量化炒币机器人软件系统开发|量化炒币机器人app开发

开發I852946OIIO

系统开发

Java 训练营第一周习题:02 加载字节码文件

现实中游走

Java

智能云网:从时代所需,到运营商所向

脑极体

助力文化荟萃,区块链或可打造“新”春晚?

CECBC区块链专委会

区块链 春晚

DB-Engines 2月数据库排名:三霸主集体“亮红灯”?小众数据库不可小觑

华章IT

数据库 Influxdb Clickhouse

链表指定位置插入,指定位置删除,逆置链表的练习

大忽悠

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

Ooui:在浏览器中运行.NET应用-InfoQ