我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何在JavaScript中运行.NET Core代码详情

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何在JavaScript中运行.NET Core代码详情

一、前言

在.NET Core中运行JavaScript代码,目前已经有很多实现方案。

但是,如果你希望在纯JavaScript环境中运行.NET Core代码呢?

那么,DotNetJS可能对你有所帮助。

二、DotNetJS

DotNetJS可以将C#项目编译为与任何环境兼容的单文件JavaScript库,无论是Web浏览器,Node.js还是自定义限制空间,如VS Code的Web扩展,都可以正常使用它。

该解决方案基于两个主要组件:

  • JavaScript/dotnet-runtime(npm)使用已编译的C#程序集和.NET运行时WebAssembly模块,以在JavaScript中提供C# 操作性层。该库与环境无关 - 它不依赖于特定于平台的API,如浏览器DOM或节点模块,并且可以作为CommonJS或ECMAScript模块导入,也可以通过浏览器中的脚本标记使用。
  • DotNet/dotNetJS(NuGet)在C#中提供JavaScript互操作性层,并通过MSBuild任务将项目输出打包到单文件JavaScript库中。生成的库包含使用项目程序集初始化的dotnet运行时,并准备用作打包的C#项目的互操作性层。

三、Demo

1. 创建项目

使用VS2022创建一个控制台项目,修改项目文件,文件内容如下:

<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<EmitSourceMap>true</EmitSourceMap>
<EmitTypes>true</EmitTypes>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DotNetJS" Version="0.4.0" />
</ItemGroup>
</Project>
  • 指定SDK为Microsoft.NET.Sdk.BlazorWebAssembly
  • 引用DotNetJS Nuget

2. 实现C#代码

实现Program.cs,代码如下:

using DotNetJS;
using Microsoft.JSInterop;
using System;
using System.Threading.Tasks;
namespace HelloDotnetJS;
public partial class Program
{
public static void Main()
{
Console.WriteLine($"HelloDotnetJS 初始化!");
}
[JSFunction]
public static partial string GetBaseAddress();
[JSInvokable]
public async static Task<WeatherForecast[]> Demo()
{
var uri = new Uri(GetBaseAddress());
Console.WriteLine(uri);
var json = await new System.Net.Http.HttpClient { BaseAddress = uri }
.GetStringAsync("weather.json");
var forecasts = Newtonsoft.Json.JsonConvert.DeserializeObject<WeatherForecast[]>(json);
return forecasts;
}
}

Demo方法的具体逻辑如下:

  • 获取网站根路径,使用[JSFunction]指定具体值来源于JS传入
  • 访问网站根路径下的weather.json文件
  • 反序列化json,调用Newtonsoft验证第三方库能否正常使用
  • 返回WeatherForecast集合

在终端窗口执行​​dotnet publish​​​,上述代码将会编译成JS代码文件​​dotnet.js​​。

3. 实现JS代码

创建demo.html,代码如下:

<meta charset="UTF-8">
<script class="lazy" data-src="dotnet.js"></script>
<script>
//定义GetBaseAddress实现
dotnet.HelloDotnetJS.GetBaseAddress = () => window.location.protocol + "//" + window.location.host;
window.onload = async function () {
//初始化
await dotnet.boot();
console.log("开始执行Demo");
const str = await dotnet.HelloDotnetJS.Demo();
console.log(str);
};
</script>

4. 运行效果

将所有文件部署到网站上,例如http://localhost:5678/: 

如何在JavaScript中运行.NET Core代码_.net_02

weather.json的文件内容如下:

[
{
"date": "2018-05-06",
"temperatureC": 1,
"summary": "My IO"
},
{
"date": "2018-05-07",
"temperatureC": 14,
"summary": "Bracing"
}
]

用浏览器访问​​http://localhost:5678/demo.html​​,在控制台窗口可以看到代码运行正常: 

如何在JavaScript中运行.NET Core代码_json

四、结论

DotNetJS目前还不完善,生成的JS代码文件​​dotnet.js​​尺寸较大,demo代码就有11M。

到此这篇关于如何在JavaScript中运行.NET Core代码详情的文章就介绍到这了,更多相关JavaScript中运行.NET Core内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何在JavaScript中运行.NET Core代码详情

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何运行javascript代码

Javascript是一种非常流行的编程语言,在网页开发和动态交互方面被广泛应用。本文将介绍如何在不同的环境中运行Javascript代码,包括浏览器、Node.js和命令行界面。一、在浏览器中运行Javascript代码在浏览器中运行Javascript代码是最常见的应用场景。一般来说,可以通过以下两种方式来运行Javascript代码。1. 内嵌式在HTML文件中,可以通过
2023-05-14

如何在Github上运行Python代码

Github是全球最大的开源社区之一,为开发者们提供了非常便捷的开源代码分享、协作交流平台。很多Python程序员在Github上分享了他们的Python代码,为Python社区的发展做出了积极的贡献。但是,对于新手来说,在Github上如
2023-10-22

C++中如何在main函数之前运行代码

这篇文章给大家分享的是有关C++中如何在main函数之前运行代码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在main函数之前运行代码通畅全局对象是在程序开始之前之构造的,这个函数也会在main()开始之前返回
2023-06-05

uniapp中如何判断代码是否只在App中运行

随着移动应用程序的快速发展,跨平台开发框架也越来越受到开发者们的欢迎。Uniapp作为一款基于Vue.js框架的跨平台开发框架,在目前的市场中备受瞩目。然而,在Uniapp中,我们有时需要判断代码是在Web浏览器中运行还是在App中运行。本文将介绍Uniapp中如何判断代码是否只在App中运行。第一种方法:利用导航栏显示与隐藏Uniapp中的导航栏分为两种方式,分别是App端导
2023-05-14

PyCharm中如何在运行状态下查看源代码

这篇文章主要介绍了PyCharm中如何在运行状态下查看源代码,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如何在运行状态下查看源代码?查看该函数的源代码,我们通常使用IDE来
2023-06-27

如何在docker中部署一个.NET 5 运行环境

如何在docker中部署一个.NET 5 运行环境?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、创建站点创建一个ASP.NET Core Web应用程序,选中启用Docke
2023-06-07

如何在ASP.NET Core中使用Session的示例代码

ASP.NET Core 是一个跨平台,开源的,轻量级,高性能 并且 高度模块化的web框架,Session 可以实现用户信息存储从而可以在同一个客户端的多次请求之间实现用户追踪,在 ASP.Net Core 中可以使用 Microsoft
2022-06-07

python如何在运行状态查看源代码

这篇文章将为大家详细讲解有关python如何在运行状态查看源代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何在运行状态查看源代码查看函数的源代码,我们通常会使用 IDE 来完成。比如在 PyChar
2023-06-27

Java代码是如何在机器上运行的

本篇内容介绍了“Java代码是如何在机器上运行的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概览计算机能识别的是机器指令码,简称机器码。机
2023-06-15

一文详解如何用GPU来运行Python代码

前几天捣鼓了一下Ubuntu,正是想用一下我旧电脑上的N卡,可以用GPU来跑代码,体验一下多核的快乐,感兴趣的小伙伴快跟随小编一起了解一下吧
2023-02-06

如何在阿里云服务器上运行代码

阿里云服务器租用是云计算技术的重要组成部分,它提供了虚拟化的计算资源,可以满足企业和个人的各种计算需求。在阿里云服务器上运行代码是一种常见的操作,它可以快速开发和部署应用程序,提高工作效率。在阿里云服务器上运行代码的步骤如下:创建阿里云服务器:首先,你需要在阿里云官网上创建一个阿里云服务器。在创建服务器时,你需要选择合
如何在阿里云服务器上运行代码
2023-11-02

编程热搜

目录