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>

...全文
8351 点赞 收藏 9
写回复
9 条回复
mirrorspace 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 也不能用,也就谷歌比较好一点
回复 点赞
韩老骥 2020年12月28日
引用 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的嵌入脚本。
回复 点赞
韩老骥 2020年12月28日
Razor页面是为了兼容,不是所有浏览器都支持Blazor的。Blazor的前端依旧是HTML+CSS+JS,C#的部分相当于浏览器的插件部分,而不是HTML的嵌入脚本。
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告