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>

...全文
8937 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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 也不能用,也就谷歌比较好一点
鸡窝里的毛 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的嵌入脚本。
下载方式:https://pan.quark.cn/s/a54168500fac BlazorHybridDesktop是一个项目,它阐述了如何运用Blazor技术来构建混合型桌面应用程序。 Blazor是一种由微软研发并整合于.NET生态系统中的框架,它采用C#WebAssembly技术,在浏览器内构建交互式客户端Web应用。 混合桌面应用的设计理念在于融合Web应用与桌面应用的特性,使得开发者能够借助统一的代码库,为不同的操作系统(例如Windows、macOS或Linux)开发应用程序。 在BlazorHybridDesktop项目中,开发者可以结合Web技术(包括HTML、CSS和JavaScript)以及.NET框架的强大功能,来设计用户界面并处理复杂的业务逻辑。 得益于Blazor运行在WebAssembly之上的特性,它能够在客户端浏览器环境中执行本地的.NET代码,从而显著提升应用的性能和用户交互体验。 以下是BlazorHybridDesktop项目中所涉及的关键知识点:1. **Blazor架构**:深入理解Blazor的基础架构,涵盖组件模型、路由机制、依赖注入以及生命周期管理。 Blazor应用通过可重用的UI组件构建而成,这些组件能够通过声明式模板进行定义,其形式类似于HTML。 2. **WebAssembly**:WebAssembly是Web平台所采用的一种低级二进制格式,旨在实现高性能的本地代码执行。 Blazor借助WebAssembly将.NET代码转化为可在浏览器中运行的形式。 3. **.NET Core**:BlazorHybridDesktop项目基于.NET Core,这是一个跨平台的开源框架,专门用于开发具有高度可移植性的应...

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧