用c# 开发html5的尝试,试用bridge.net

Javascript交叉编译方案很多了,工业级品质的也不是没有,但前两年我从事html5 3d引擎开发时,做过一圈评估,没有可用的。

作为一个c#爱好者,我自然是很希望能最大限度的利用c#的生产力,之前经过评估,我们选择了typescript 作为开发工具,确实也产生了一些收效。

时过境迁,虽然很久不做h5方面的开发,但任然关注,偶然发现bridge.net的发展速度相当的不错,今日观之,社区已经相当成熟。就手痒,又评估了一把。

先上源码

https://github.com/lightszero/bridge.net.study

也直接有生成的页面

https://lightszero.github.io/bridge.net.study/webapp/webapp/index.html

先说结论

Bridge.net成熟度很高,我尝试了一些c#的语法,都可以正常工作。

也发现了一些小小的问题,懂一些js一对比很容易解决。

会带入一个bridge.js 1M多,压缩版800k

Bridge采取的方案是直接将c#代码编译为js,准确的说是IL代码。而且采用的方法比较暴力,对无法直接对应的一些c#常用功能,直接写了一套js底层类库来支撑。

这就是那1M的来历,好处是编译过程就会相对比较简单,越简单的机制越容易稳定。

对比typescript方案主要有3个优点

1. 有整数,在语法表达方面会更清晰

2. 有struct,这个我就不多言战术价值了

3. C#,这就仁者见仁了

主要有两个缺点

1. 多了1M的依赖库

2. 生成的代码多了一层包装,没有typescript生成的代码干净。

老有人拿untiy的webgl方案说事,我只说一条。

Unity的webgl方案是构筑在webassembly基础上的,微信小游戏不支持。

现在来说说bridge.net 怎么用

0. 首先你得是个Visual studio 用户,不是当我没说

1. 根本不用安装,因为他的原理就是一个c#dll 和 编译相关的dll,只需要dll和csproj的相关配置,这个工作nuget就可以完成。

你随便建立一个c#项目,然后nuget 安装 bridge.net 就行了

我是用一个asp.net项目做模板,然后nuget安装bridge.net,因为asp.net 项目 按F5 就可以直接启动页面呀,就这么简单。

2. 然后只要build项目的时候bridge.net就会自动给你生成js了,他会使用bridge.js来做一些配置选项

3. 关于功能

前面安装的briage.net 只是安装环境,首先要使用html5自己的接口,就是访问 window 呀这些,需要再nuget安装 bridge.html5.

我要开发个webgl接口来试试,就nuget安装bridge.webgl

4. 关于调试

浏览器调试,略。

因为html 有map文件标准,所以你浏览器调试也是可以看到c#的,而且可以下断电,观测值

你要确认的事情就是bridge.json打开了map的输出

不过bridge.net有一点不好,他提供的功能,对命名做了修改

就比如这个GetContext,在js里是getContext

因为这个修改,对调试造成了一些小小的麻烦,浏览器调试工具是针对js的,还要用原来的名字才能找到。因为浏览器的map文件只有js和源文件行数的映射,没有变量名函数名这些。

但问题不大,我们知道它主要就改了大小写而已,调试的时候多敲一下的问题

那么可不可以直接在vs里面下断点调试呢,也是可以的。因为bridge输出的map文件用的相对路径,只要把bridge.json的输出路径改一下,就行

然后打开vs的脚本调试功能

注意vs2017才有google chrome的调试功能(印象中),vs2015只能调试ie去

然后就可以直接在vs里面断点了,需注意因为他做了一个改名的动作,调试的时候对监视器产生了影响

原文地址:https://www.cnblogs.com/crazylights/p/9780308.html

时间: 2024-11-01 18:06:23

用c# 开发html5的尝试,试用bridge.net的相关文章

JAVASCRIPT开发HTML5游戏--斗地主(网络对战PART4)

继之前用游戏引擎(青瓷引擎)做了斗地主单机版游戏之后,这里分享下使用socket.io来实现网络对战,代码可已放到github上,在此谈谈自己整个的开发思路吧. 客户端代码 服务端代码 (点击图片进入游戏体验) 前文链接: javascript开发HTML5游戏--斗地主(单机模式part1) javascript开发HTML5游戏--斗地主(单机模式part2) javascirpt开发HTML5游戏--斗地主(单机模式part3) 本文章为网络对战第一部分内容.主要内容如下: 简介 服务端项

html5开发手机打电话发短信功能,html5的高级开发,html5开发大全,html手机电话短信功能详解

在很多的手机网站上,有打电话和发短信的功能,对于这些功能是如何实现的呢.其实不难,今天我们就用html5来实现他们.简单的让你大开眼界. HTML5 很容易写,但创建网页时,您经常需要重复做同样的任务,如创建表单.在这...有 HTML5 启动模板.空白图片.打电话和发短信.自动完成等等,帮助你提高开发效率的同时,还带来了更炫的功能.好了,我们今天就来做一做看看效果吧!! 看代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitio

JS开发HTML5游戏《神奇的六边形》(四)

近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容太多,为方便大家阅读,所以分成四部分来讲解. 本文为第四部分,主要包括: 16.分数往上飘动画 17.形状飞入动画 18.其他动画表现添加 19.游戏结束界面 20. 添加LOGO 21. 渲染优化 若要一次性查看所有文档,也可点击这里. 十六. 分数往上飘的动画 在表现加分时,分数会有个缩放的效果,然后往上

HTML5移动开发之路(49)——HTML5开发神器HBuilder 今天给大家介绍一款开发HTML5的神器——HBuilder.

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(49)--HTML5开发神器HBuilder 今天给大家介绍一款开发HTML5的神器--HBuilder. 下载地址:http://www.dcloud.NET.cn/ 一.新建文件 可以看到支持web app开发和普通网站前端开发,我们首先建立一个移动App项目 注释:Html5+规范是基于HTML5的扩展规范,用于弥补HTML5和原生应用功能之间的差距.HTML5+规范是一个开放的规范,在W3C中国的指

第一章 1.3 谁在开发 HTML5

我们都知道开发 HTML5 需要成立相应的组织,并且肯定需要有人来负责.这正是下面这三个重要组织的工作.WHATWG:由来自 Apple.Mozilla.Google.Opera 等浏览器厂商的人组成,成立于 2004年.WHATWG 开发 HTML 和 Web 应用 API,同时为各浏览器厂商以及其他有意向的组织提供开放式合作. W3C:W3C 下辖的 HTML 工作组目前负责发布 HTML5 规范.IETF(Internet Engineering Task Force,因特网工程任务组):

使用Visual Studio 2012 开发 Html5 应用

Visual Studio 一直以来是开发微软旗下应用的利器,只要是开发微软相关的应用无论是Windows程序,WPF,Asp.Net,WinRT Surface,WindowsPhone 等微软旗下的应用都可以使用Visual Studio 来开发.如果您已经非常习惯了Visual Studio 的UI和操作,是不是有时候也想使用Visual Studio 像DreamWeaver 一样来开发纯浏览器的Html5的应用呢? 后端您可以用Asp.Net,也可以使用非微软的技术如: Ruby on

广州创龙TMS320C6748 DSP 开发板免费申请试用

1.广州创龙TMS320C6748 DSP开发板免费申请试用,历史上例程最丰富的C6000 DSP开发板,不容错过. 申请链接:http://bbs.ickey.cn/group-topic-id-57928.html 申请时间截至:2015年11月30日 申请型号:TL6748-EasyEVM,市场价1450元 申请数量:20套 2.创龙最新推出TMS320C6655.TMS320C6657开发板,C66x单核.双核高端DSP,例程丰富,适用于高速数据采集.通信.音视频.中高端数控等大数据处理

广州创龙TMS320C6748 DSP开发板免费申请试用

1.广州创龙TMS320C6748 DSP开发板免费申请试用,历史上例程最丰富的C6000 DSP开发板,不容错过. 申请链接:http://bbs.elecfans.com/try_Tronlong.html#trialimg 申请时间截至:2015年9月30日 申请型号:TL6748-EasyEVM,市场价1450元 申请数量:50套 2.创龙最新推出TMS320C6655.TMS320C6657开发板,C66x单核.双核高端DSP,例程丰富,适用于高速数据采集.通信.音视频.中高端数控等大

C#跨平台手机应用开发工具Xamarin尝试 与Eclipse简单对比

Xamarin 支持使用C#开发基于Android.IOS.WindowsPhone应用开发,最大特点C#+跨平台,详细说明问度娘. 安装 研究 想体验研究的点击查看页面 Xamarin For Visual Studio 3.0.54.0 完整离线破解版 我也下载了研究下,破解有时候有问题,一登陆就变成试用版,需要重新生成License,挺烦人,于是写了段批处理,放入记事本中另存为crack.bat执行,则可再次生成License. @Entitlements.bak为破解后生成的Entitl