c#与webassembly

mirrorspace 2020-12-28 02:11:52
看了一下C#的web assembly,用vs2019建立了blazor assembly项目.
这个还是razor页面的,不过真的实现了在浏览器里跑C#代码了,感觉厉害啊

不知道能不能再简单些,不用razor页面,不管UI问题,只是将JS换成C#.
例如像js的方式在浏览器中使用C#

<script lang="c#">
Console.WriteLine("Hello World");
</script>

<script lang="C#" src="main.cs">
Console.WriteLine("Hello World");
</script>

...全文
8668 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
mirrorspace 2021-01-17
谢谢啊
引用 8 楼 以专业开发人员为伍 的回复:
[quote=引用 楼主 mirror030 的回复:]看了一下C#的web assembly,用vs2019建立了blazor assembly项目. 这个还是razor页面的,不过真的实现了在浏览器里跑C#代码了,感觉厉害啊 不知道能不能再简单些,不用razor页面,不管UI问题,只是将JS换成C#. 例如像js的方式在浏览器中使用C# <script lang="c#"> Console.WriteLine("Hello World"); </script> <script lang="C#" src="main.cs"> Console.WriteLine("Hello World"); </script>
你可以把 razor 页面里边的默认的代码全都删除,然后写一行类似
@inherits ViewModels.MyBaseClass
这样的代码,然后这个 ViewModel 可以不近几年做 VM,也直接Render内容,包括插入其它 component 实例、或者 html。[/quote]
  • 打赏
  • 举报
回复
引用 楼主 mirror030 的回复:
看了一下C#的web assembly,用vs2019建立了blazor assembly项目.
这个还是razor页面的,不过真的实现了在浏览器里跑C#代码了,感觉厉害啊

不知道能不能再简单些,不用razor页面,不管UI问题,只是将JS换成C#.
例如像js的方式在浏览器中使用C#

<script lang="c#">
Console.WriteLine("Hello World");
</script>

<script lang="C#" src="main.cs">
Console.WriteLine("Hello World");
</script>


你可以把 razor 页面里边的默认的代码全都删除,然后写一行类似
@inherits ViewModels.MyBaseClass
这样的代码,然后这个 ViewModel 可以不近几年做 VM,也直接Render内容,包括插入其它 component 实例、或者 html。
  • 打赏
  • 举报
回复
要预测部署到实际网站之后的效果,应该看看实际使用“发布”功能而发布出来的网站的 _framework 里边都有哪些压缩文件,实际测试一下有多少文件是在你的浏览器上自动被缓存的(仅需要下载一次而已)。
  • 打赏
  • 举报
回复
引用 4 楼 楠小南 的回复:
一个空项目 首次加载都要 6.7M,还已经优化过的,其他图片什么的还没算上,即一个1M的服务器打开要 20秒以上。做个cdn可能会好点
这个是最大的缺点, 还有就是浏览器的兼容问题,我知道安卓的前几年的旧机是有部分功能不能使用的。我现在的win10 EDGE 也不能用,也就谷歌比较好一点


首先,你要确定你使用的是不是 .net 5.0。

其次,要区分“开发调试环境”与“发布部署环境”的区别。因为为了支持 vs 调试 webassembly,运行时下载的内容自然是不一样。你说的只是开发调试环境而已!而且开发运行环境下,目前要让 chrome 或者 edge 的浏览器被 vs 接管(进程附加成功),这本身就要跨进程等待10秒钟以上的延迟时间,还有 vs 自带的应用 project web 服务环境配置启动初始化需要几秒钟,最终页面启动是可能需要10秒钟之后才刷新。不能说这个是部署到实际网站之后的效果!
  • 打赏
  • 举报
回复
mirrorspace 2020-12-29
哈哈,没错,是有这一系列缺点的... 只是实现了C#在浏览器里运行
引用 4 楼 楠小南 的回复:
一个空项目 首次加载都要 6.7M,还已经优化过的,其他图片什么的还没算上,即一个1M的服务器打开要 20秒以上。做个cdn可能会好点 这个是最大的缺点, 还有就是浏览器的兼容问题,我知道安卓的前几年的旧机是有部分功能不能使用的。我现在的win10 EDGE 也不能用,也就谷歌比较好一点
  • 打赏
  • 举报
回复
楠小南 2020-12-28
一个空项目 首次加载都要 6.7M,还已经优化过的,其他图片什么的还没算上,即一个1M的服务器打开要 20秒以上。做个cdn可能会好点
这个是最大的缺点, 还有就是浏览器的兼容问题,我知道安卓的前几年的旧机是有部分功能不能使用的。我现在的win10 EDGE 也不能用,也就谷歌比较好一点
  • 打赏
  • 举报
回复
引用 2 楼 mirror030 的回复:
噢.文档貌似说不是像silglight那种插件式的.而是编译成wasm格式的IL
引用 1 楼 icoolno1 的回复:
Razor页面是为了兼容,不是所有浏览器都支持Blazor的。Blazor的前端依旧是HTML+CSS+JS,C#的部分相当于浏览器的插件部分,而不是HTML的嵌入脚本。


相当于啊,以前需要自安装,现在不用了,浏览器可以直接运行。或者说,浏览器自带了虚拟机。
  • 打赏
  • 举报
回复
mirrorspace 2020-12-28
噢.文档貌似说不是像silglight那种插件式的.而是编译成wasm格式的IL
引用 1 楼 icoolno1 的回复:
Razor页面是为了兼容,不是所有浏览器都支持Blazor的。Blazor的前端依旧是HTML+CSS+JS,C#的部分相当于浏览器的插件部分,而不是HTML的嵌入脚本。
  • 打赏
  • 举报
回复
Razor页面是为了兼容,不是所有浏览器都支持Blazor的。Blazor的前端依旧是HTML+CSS+JS,C#的部分相当于浏览器的插件部分,而不是HTML的嵌入脚本。
  • 打赏
  • 举报
回复
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2020-12-28 02:11
社区公告

让您成为最强悍的C#开发者