在过去数年中,桌面应用开发人员一直处境艰难,因为人们的主要关注点聚焦于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服务器,你就可以测试所用的代码。

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

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-04/152024.htm

Ooui.Wasm:浏览器中的.NET

 

小型.NET Web框架Ooui作为Web程序集(WASM)在浏览器中完全运行 – 不需要服务器端的交互,涉及的所有文件都直接从浏览器执行,.NET Web框架Ooui可以作为其开发人员Frank A. Krueger承诺Xamarin.Forms应用程序在浏览器中完全运行。.NET开发人员获得更多选择来交付他们的应用 作为一个小型的演示,Krueger将XAML编辑器在线,这是使用Xamarin.Forms创建的

基于mono团队的工作,OOui可以使用.NET Standard 2.0的库进行编程,并且完成的应用程序可以在所有现代浏览器中运行,包括移动设备中的浏览器。OOui开发人员Frank A. Krueger 在这篇博文中了解更多信息

Ooui:在浏览器中运行.NET应用 Ooui.Wasm:浏览器中的.NET的更多相关文章

  1. 应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户

    这是安装biztalk server 2013出现的问题,很多天了没解决,下边这个解决办法也搜到过类似的,但上次实验时出现设置组件权限时发现都是按钮都是灰的,无法操作. 这次设置好了.谢谢ibg. 文 ...

  2. 程序日志-应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\SYSTEM SID (S-1-5-18)授予针对 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520

    应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITY\SYSTEM SID (S-1-5-1 ...

  3. 应用程序-特定 权限设置并未向在应用程序容器不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户...的 COM 服务器应用程序的 本地 激活 权限。此安全权限可以使用组件服务管理工具进行修改。

    很久以前发现我们的业务服务器上出现一个System的系统严重错误,查找很久都没有找到解决办法,今日再次查看服务器发现报错更频繁,于是就搜集各种资料进行查找解决办法,终于找到了一个解决办法. 错误截图介 ...

  4. Nodejs的安装配置及如何在sublimetext2中运行js

    Nodejs的安装配置及如何在sublimetext2中运行js听语音 | 浏览:4554 | 更新:2015-06-16 11:29 Nodejs的安装配置及如何在sublimetext2中运行js ...

  5. 下载uboot的调试版本到开发板的sdram中运行

    开发环境:开发板:FriendlyARM Tiny6410 主机:CentOS release 6.4 (Final) 开发板与主机通过串口线连接 调试用的uboot源码为开发板光盘提供的u-boot ...

  6. sqlmap文件在tomcat7中运行报错原因及<![CDATA[ ]]>

    sqlmap在eclipse中运行,好好的.放到tomcat7中抛出如下异常: Caused by: java.lang.RuntimeException: Error occurred. Cause ...

  7. iOS-C文件添加到iOS项目中,运行报错

    iOS-C文件添加到iOS项目中,运行报错 问题: 往项目中添加一个空的c文件, 编译运行; 出现2,30个编译错误. 原因: 由于在项目中添加了Pch文件,在文件中所有代码还没有开始运行之前, pc ...

  8. Windows10下的docker安装与入门 (三) 创建自己的docker镜像并且在容器中运行它

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  9. 在Docker中运行EOS(MAC版)

    在Docker中运行EOS(MAC版) 在Docker中也可以简单快速的构建EOS.IO.笔者在Mac平台下参考官方文档躺了一次河.记录如下: 安装依赖 Docker 版本 17.05或者更高 tes ...

随机推荐

  1. 【点分治】【FFT】CDOJ1562 Amaz1ng Prime

    统计路径的时候,显然用母函数的思想,可以用FFT来方便统计. 注意!要减去路径两个端点相同的情况!然后再除以二!这样防止重复. 还有就是说啊,点分治的正确姿势还是应该用所有子树的答案减去各个子树分别的 ...

  2. python基础之函数对象,嵌套,名称空间和作用域

    函数对象: 函数是第一类对象的含义是函数可以被当作数据处理 函数可用于: def func(): print(‘func’) 1.引用  f = func  把内存地址赋值给f 2.当作参数传给一个函 ...

  3. [转]OpenSessionInView模式

    OpenSessionInView模式解决的问题:   * hibernate事物边界问题   * 因session关闭导致hibernate延迟加载例外的问题 事物边界:     一个事物的完成应该 ...

  4. 判断隐式Intent是否有响应

    PackageManager manager = getContext().getPackageManager(); if (manager.queryIntentActivities(intent, ...

  5. NServiceBus入门:发布事件(Introduction to NServiceBus: Publishing events)

    原文地址:https://docs.particular.net/tutorials/intro-to-nservicebus/4-publishing-events/ 侵删. 这个教程到目前为止,我 ...

  6. Visual Studio Image Library现在带矢量图标了

    Visual Studio Image Library是微软提供的一套不可多得的高质量图标库(Visual Studio中自己使用的),我在自己写的一些小程序中一直有用到它们.今天天想把之前的程序中的 ...

  7. cmd复制粘贴

    右击菜单栏,选择“快速编辑模式” 复制:选择文本后按回车,然后就可以去其他地方粘贴了 粘贴:右击鼠标就可以粘贴内容 简单到都不好意思发布出来了....

  8. SQL locate()函数

    LOCATE(substr,str), LOCATE(substr,str,pos) 第一个语法返回字符串str第一次出现的子串substr的位置. 第二个语法返回第一次出现在字符串str的子串sub ...

  9. Hive 内建操作符与函数开发——深入浅出学Hive

    第一部分:关系运算 Hive支持的关系运算符 •常见的关系运算符 •等值比较: = •不等值比较: <> •小于比较: < •小于等于比较: <= •大于比较: > •大 ...

  10. scala sbt 添加国内镜像

    FROM: http://www.4wei.cn/archives/1002417 sbt运行时经常需要下载大量的jar包,默认连接到maven官网,速度通常比较慢.在`~/.sbt/`下添加一个`r ...