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

在过去数年中,桌面应用开发人员一直处境艰难,因为人们的主要关注点聚焦于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.WasmOoui.Forms中。然后使用通常使用的dotnet去构建应用,就可以部署应用了。进而,通过使用dotnet-server,或是将dist目录中的文件拷贝到任何一种可提供静态文件的Web服务器,你就可以测试所用的代码。

相关文章:

原文地址:http://www.infoq.com/cn/news/2018/04/net-browser-ooui


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

640?wx_fmt=jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321496.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

5、play中的json数据处理

1、play中的json库 Play使用Jackson JSON库将对象转换为JSON和JSON之间的对象。play的操作使用JsonNode类型,play.libs.json包中有操作json数据的方法 2、java对象和json数据 将java对象转成play中的JsonNode类型: 将JsonNode格式的数据解析到java对象…

P2354,jzoj3757-[NOI2014]随机数生成器【贪心,暴力】

正题 题目链接:https://www.luogu.com.cn/problem/P2354 解题思路 以1∼n∗m1\sim n*m1∼n∗m的数字组成的n∗mn*mn∗m的矩阵,求一条路径使得路径上的数排序后字典序最小。 解题思路 考虑从小到大依次枚举来判断是否可行。 每次判断一个点是否可以经过然后加入一…

Detection of Extraterrestrial KMP匹配 重复k次子串 好题

一开始以为这道题是后缀数组,想了好久没想明白怎么做,后来发现暴力枚举起点,进行KMP就好了。 枚举起点以后,构建fail数组。 遍历fail数组,如果串s[l,r]是由串s[s,t]重复k次得到的,那么fail数组的样子一定…

【贪心】最大连续数列的和

最大连续数列的和最大连续数列的和最大连续数列的和 题目描述 求最大连续子序列的和 输入 第一行输入n(n<500),第二行为n个以空格分开的整数(-1000到1000之间) 输出 该序列中最大的连续子序列的和 输入样例 &#xff16; 1 2 -5 6 7 8 输出样例 21 解题思路 用…

农行基于TFS工具的敏捷转型实践

““春天工程”项目组是应用开发二部最早采用敏捷模式的项目组&#xff0c;项目组在项目推进过程中使用Scrum框架&#xff0c;结合“看板站会”形式&#xff0c;积极探索项目推进新措施。结合TFS工具逐步实现了电子工具与物理看板的有机融合&#xff0c;并在过程管理、版本管理…

6、XML数据处理

1、处理xml请求 两种方式&#xff0c;一是直接将请求体数据转成Document对象&#xff1a; 二是定义自己的解析格式将请求体进行解析&#xff1a; 2、返回xml格式数据响应 设置响应头格式为application/xml类型

.NET Core:新的快速开发平台

.NET Core 今年已经发布了 2.0 版本了。技术雷达最近将 .NET Core 从“评估”移到了“试用”阶段&#xff0c;意味着运用这项技术的风险在不断减小。本文将简要介绍基于 .NET Core 的快速开发的方式。.NET Core 产生于 2014年&#xff0c;是一个不折不扣的新开发平台。SmallTal…

Juice Extractor dp

题意&#xff1a; 水果忍者游戏&#xff0c;给出N个水果的出现时间和消失时间。 每次切可以清除该时刻中屏幕上的所有水果&#xff0c;只有combo>3的时候才得分&#xff0c;得分为combo的值。 题解&#xff1a; 可以把每个水果看成是一段时间区间。 然后把这些区间按照…

【动态规划】公共子串

公共子串公共子串公共子串 Description 设有A、B两个字符串&#xff0c;找出A、B共同子串&#xff0c;每个字符串无相同字符&#xff0c;可以不连续&#xff0c;但顺序不能颠倒。 Input 第一行字符串A 第二行字符串&#xff22; Output 最长公共子串的长度. Sample Inp…

P1117-[NOI2016]优秀的拆分【SA】

正题 题目链接:https://www.luogu.com.cn/problem/P1117 题目大意 长度为nnn的字符串&#xff0c;求所有子串有多少种分割成AABBAABBAABB的方式。 解题思路 aia_iai​表示以iii结尾的子串中有多少种分割成AAAAAA的方式 bib_ibi​表示以iii开头的子串中有多少种分割成AAAAAA的…

7、play中的文件上传

1、基本的文件上传处理 将form的类型设置成multipart/form-data&#xff0c;请求的方式必须是POST类型&#xff0c;实例如下&#xff1a; 请求发到controller&#xff0c;controller中处理&#xff1a; public Result upload() {MultipartFormData<TemporaryFile> bod…

分布式高性能消息处理中心HPMessageCenter

HPMessageCenter高性能消息分发中心。用户只需写好restful接口&#xff0c;在portal里面配置消息的处理地址&#xff0c;消息消费者就会自动访问相关接口&#xff0c;完成消息任务。&#xff08;其实HPMessageCenter有两个版本&#xff0c;这次开源的是第二个版本。在第一个版本…

codeforces Balanced Substring

B. Balanced Substringtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a string s consisting only of characters 0 and 1. A substring [l, r] of s is a string slsl  1sl  2... sr, and its l…

【动态规划】打砖块

打砖块打砖块打砖块 Description KXT是一个很无聊的小朋友&#xff0c;一天到晚都在打坐… 一天&#xff0c;被他发现了一个比打坐更无聊的事情——打砖块。很多块砖分布在一个mm的矩阵中&#xff0c;他可以消掉以他为左上角顶点的一个nn的矩阵里的所有砖块。 喜欢偷懒的他…

jzoj2292-PPMM【模拟,堆】

正题 题目链接:https://jzoj.net/senior/#contest/show/3008/0 题目大意 一个队列要求支持 队尾压入一个数队首弹出一个数队列里所有数取反求最大值 解题思路 开444个堆&#xff0c;存正数最大值最小值&#xff0c;负数最大值最小值&#xff0c;取反时打标记即可。 codecod…

8、play框架中持久层操作

1、使用jdbc连接数据库 1、1 简介 JDBC是一个阻塞操作&#xff0c;它将导致线程等待&#xff0c;直接使用JDBC进行查询将导致性能降低 1、2 配置数据源 play提供了一个用于管理JDBC连接池的插件&#xff0c;可以根据需要配置任意多个数据库&#xff0c;想要使用此插件&…

DBCHM-最简单、实用的数据库表列批注维护工具

DBCHM支持SqlServer/MySql/Oracle/PostgreSQL/Sqlite等数据库的表列批注维护管理。DBCHM有以下几个功能表&#xff0c;列的批注可以编辑保存到数据库。表&#xff0c;列的批注支持通过pdm文件导入的方式进行更新到数据库。基于数据库中的表列结构(列ID/列名/数据类型/长度/精度…

图书管理员【2017年普及组第二题】

图书管理员图书管理员图书管理员 题目描述 图书馆中每本书都有一个图书编码&#xff0c;可以用于快速检索图书&#xff0c;这个图书编码是一个正整数。 每位借书的读者手中有一个需求码&#xff0c;这个需求码也是一个正整数。如果一本书的图书编码恰好以读者的需 求码结尾&…

jzoj4012-Distinct Paths【搜索】

正题 题目链接:https://jzoj.net/senior/#contest/show/3008/1 题目大意 n∗mn*mn∗m的格子&#xff0c;kkk种颜色涂色&#xff0c;求有多少种方案使得没有任意一条只往右和下的路径经过相同颜色。 解题思路 显然如果nm−1>knm-1>knm−1>k就无解&#xff0c;所以nm−…

浅谈Log4net在项目中如何记录日志

一 引入背景在软件开发周期中&#xff0c;无论是开发中&#xff0c;或是测试中&#xff0c;或是上线后&#xff0c;选择合适的工具监控程序的运行状态至关重要&#xff0c;只有如此&#xff0c;才能更好地排查程序问题和检测程序性能问题等。本篇文章主要与大家分享&#xf…