async修改一个方法,表示其为异步方法。而await表示等待一个异步任务的执行。js方面,在es7中开始得以支持;而.net在c#5.0开始支持。本文章将分别简单介绍他们在js和.net中的基本用法。 一、在js中的实现 js中的异步,还是基于Promise实现的。没有Promise就办法谈异步了。并且await只能出现async修改的方法中;以及reject会触发catch(异常)。 class AsyncTest{ //simple example async run(){
小伙伴都知道,使用 JS 的坑在于执行效率过低,速度过慢。如果是在客户端中,还开启一个浏览器,整个应用程序就会特别重。有没有什么方法可以让 dotnet 作为容器,执行 JScript 代码而不需要浏览器?其实有的,因为 VBScript 和 JS 代码都很好解析,所以有 ClearScript 支持使用 dotnet 解析代码执行
零、准备 1. 到官网(http://jurassic.codeplex.com/releases)下载最新版本的Jurassic.ScriptEngine Dll。 2. 确保项目是4.0框架及以上,引入dll。 3. 添加"using Jurassic;"语句。 一、宿主调用脚本 0. 最开始要创建一个脚本对象 ScriptEngine sc = new ScriptEngine(); 1. 下面的例子演示了如何计算表达式: int i = sc.Evaluate<int>("1 + 1"); Console.WriteLine(i); 结果为: 2 2. 下面的例子演示了如何获取脚本中的全局对象: 对于没有返回值或者舍弃返回值的语句,可以用Execute方法执行 sc.Execute("var i = 1;"); int i = sc.GetGlobalValue<int>("i"); Console.WriteLine(i); 当然也可以这样执行 sc.Execute("var i = 1;"); int i = sc.Evaluate<int>("i"); Console.WriteLine(i); 结果为: 1 3. 下面的例子演示了如何调用脚本中的函数 sc.Execute("function add(a,b){return a+b;}"); int i = sc.Evaluate<int>("add(1,2);"); Console.WriteLine(i); 结果为: 3 4. 调用函数时动态传入参数 add函数同上 int i = sc.CallGlobalFunction<int>("add", 1, 2); Console.WriteLine(i); 结果为: 3 二、脚本调用宿主 1. 调用宿主的方法 sc.SetGlobalFunction("ConsoleWriteln", new Action<string>(Console.WriteLine)); sc.Execute("ConsoleWriteln('hello');"); 结果为: hello 2. 调用宿主的对象 ConsoleWriteln同上 sc.SetGlobalValue("hello", "hello"); sc.Execute("ConsoleWriteln(hello);"); 结果为: hello 要注意delegate不能转换为js的function对象 所以两个函数不能写错 如果要传入js基本类型之外的对象 请开启"sc.EnableExposedClrTypes = true;"
项目需求 最近在开发一个 electron 程序,其中有用到和硬件通讯部分;硬件厂商给的是 .dll 链接库做通讯桥接, 第一版本使用 C 写的 Node.js 扩展 😁;由于有异步任务的关系,实现使用了 N-API 提供的多线程做异步任务调度, 虽然功能实现了,但是也有些值得思考的点。 纯 C 编程效率低,木有 trycatch 的语言调试难度也大 (磕磕绊绊的) 编写好的 .node 扩展文件,放在 electron 主进程中运行会有一定的隐患稍有差错会导致软件闪退 (后来用子进程隔离运行) 基于
从程序集获得类型 先说点题外话,现在技术真的发展太快了。我这边还很多东西半生不熟 呢,那边又出现了好多有趣的新东西让你眼红不已。学还是不学这还真是 个问题。Node.js 、bootstrap,我最近刚发现的新技术,其实他们已经 存在很久了,只是没有接触过而已。昨天晚上看Node.js一下子看到两点 多,感觉真是太有意思了^,有兴趣的可以去看看,大家多交流交流. 好了不废话了,在前面的示例中,几乎全部的MyClass信息都是通过反射得到的,但是有一个例外: MyClass类型本身。虽然前面的示例可以
经常需要创建新项目,然而项目结构,一些初始代码等往往是相同的,这个时候可以制作模板来解决,为了更方便创建模板项目,甚至可以控制远程同步创建GitHub仓库,自动配置CI/CD等,于是我选择开发一个CLI工具来加快日常开发效率,之前有使用过Node.js开发CLI(moq就是其作品),但效果不佳,总的说来其实还是对Node.js不熟悉,如果过多的花费时间在工具的开发上就得不偿失了,于是便有了使用熟悉的C#来开发CLI工具。注:本文只是记录如何使用C#开发一个简单的CLI工具。
Nethereum基本上是目前唯一可用的.NET平台下的web3.js移植包。在这个教程中,我们将首先编写并部署一个简单的智能合约,然后创建一个简单的.NET应用,并使用Nethereum来访问以太坊上的智能合约。Nethereum是通过以太坊节点旳标准RPC接口访问智能合约,因此使用Nethereum可以对接所有的以太坊节点实现,例如geth或parity。
先定义一个类Utils,在该类中定义了一个string类的扩展方法_IsNull using System; namespace LinqDemo.App_Code { public static class Utils { /// /// 传统写法 /// /// <param name="s"></param> /// <returns></returns
大神博客:http://www.cnblogs.com/Ivony/p/3447536.html 项目地址:https://github.com/Ivony/Jumony 1、安装Jumony包 在Nuget搜索框中输入 "Jumony",安装 Jumony Core 。 2、引入命名空间 using Ivony.Html; using Ivony.Html.Parser; 3、开整 var parser = new JumonyParser(); var document = parser.LoadD
我本来是想通过像vue框架那样,通过引oidc-client.js的方式,来实现Ids4的集成问题,我当时以为已经很好的,后来看了张队发的文章以后,发现好像我写的那种方式并不优雅。
在项目开发中,我们有时会对数据进行JSON序列化和反序列化,.NET6以前我们经常这么使用:
在开发中,验证表单数据是很重要的一环,如果对用户输入的数据不加限制,那么当错误的数据提交到后台后,轻则破坏数据的有效性,重则会导致服务器瘫痪,这是很致命的。
第 1 节: 1-ASP.Net课前说明 1、网站目录一般不建在桌面上,有时候可能会涉及 权限的问题; 2、逻辑代码分两块运行的,一部分运行在服务器端,一部分运行在浏览器端中; 3、使用托控件,不能很好地梳理浏览器和服务器代码的优化。 4、安全性问题不高。 5、ASP.net Webform不会在项目中重度的使用。轻量级的Webform(repetor)还是会用的; 6、学习路线: ASP.net(Core内核)--->Asp.net WebForm--->ASp.mvc(大项目,互联网项目,都是用的这个); 7、本次学习。用Chrome 谷歌浏览器;(没有IE版本的问题)(调试工具好用);
常用技能(更新ing):http://www.cnblogs.com/dunitian/p/4822808.html#skill 技能总纲(更新ing):http://www.cnblogs.com/dunitian/p/5493793.html 在线演示:http://cppjieba-webdemo.herokuapp.com 完整demo:https://github.com/dunitian/TempCode/tree/master/2016-09-05 逆天修改版:https://github.c
时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。使用数字签名技术产生的数据, 签名的对象包括了原始文件信息、 签名参数、 签名时间等信息。广泛的运用在知识产权保护、 合同签字、 金融帐务、 电子报价投标、 股票交易等方面。
想弄一个数据库,由于需要一些人名,所以就去百度一下,然后发现了360图书馆中有很多人名
动态创建函数 大多数同学,都或多或少的使用过。回顾下c#中动态创建函数的进化: C# 1.0中: public delegate string DynamicFunction(string name); public static DynamicFunction GetDynamicFunction() { return GetName; } static string GetName(string name) { return name; } va
为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area)。
书接上文,这些天一直在研究IdentityServer4(下文简称Ids4)框架,发现有很多有意思,或者说比我想象中的知识点,可扩展的多,所以比较开心能钻研进去,就像当时学习ASP.NET Core一样,越学越感觉有意思的,我自认为ASP.NET Core已经学的基本出师了,希望Ids4我也能学到出师,毕竟要干一件事就要做好它。
QUIC(Quick UDP Internet Connection)是谷歌制定的一种基于UDP的低时延的互联网传输层协议。我们知道,TCP/IP协议族是互联网的基础。其中传输层协议包括TCP和UDP协议。与TCP协议相比,UDP更为轻量,但是错误校验也要少得多。这意味着UDP往往效率更高(不经常跟服务器端通信查看数据包是否送达或者按序),但是可靠性比不上TCP。通常游戏、流媒体以及VoIP等应用均采用UDP,而网页、邮件、远程登录等大部分的应用均采用TCP。
Java中substring方法可以分解字符串,返回的是原字符串的一个子字符串。如果要讲一个字符串分解为一个一个的单词或者标记,StringTokenizer可以帮你。
这个其实是一个hta文件,目的是测试用户本机请求资源、hosts文件、当前所处的位置。参考stone的checknetwork4qqfarm: http://code.google.com/p/che
版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/article/details/52911145
这节讲一下原型模式,原型模式用于解决大量相同或相似对象的创建问题,传统的,我们实例化对象要用new关键字,在面对大量重复对象的创建情况下,new实例的过程是比较消耗资源的,所以我们可以利用一个对象作为原型,通过这个对象的不断克隆自己来产出一个个新实例(这跟js的原型对象并不相同,读者不要跟其做理论比较)。
前因:在第一个使用angularjs的项目中我将所有的controller写到一个文件里面,深知维护起来那滋味,所以再次使用angularjs的时候,我便把所有的controlle、directive、factory给提取到相应的文件夹下面,以便于维护。此时js这么多表示很无奈。
汇总系列:https://www.cnblogs.com/dunitian/p/4822808.html#ai
VSCode设置python3的开发环境(linux下默认是python2)https://www.cnblogs.com/dotnetcrazy/p/9095793.html
假设有这样一个产品,一个web和一个winform客户端,在客户在web的网页上面点击启动客户端来处理,这个时候开始调用本地的客户端,来完成指定的工作。这种场景在日常的上网中也比较常见,如使用迅雷下载。当然实现的方式也有很多种,今天我来演示一种用监控Http请求来实现这个功能,思路如下:
在IE中,JS可以直接访问剪贴板,但是firefox,chrome等其它"高级"浏览器,就没这么幸运了。网上流传的所谓兼容firefox/IE的剪贴板访问javascript代码,都是N年前的往事了。 根据http://mozilla.com.cn/post/49413/ 上的说法: ---------------------------------- 火狐不允许网页操作用户的剪切板,因为有安全问题,网页可能盗用你复制的密码等等。 以前可以通过修改设置提权,允许网页获得高权限,操作剪切板,目前火狐已经取消了
之前在学习C#的时候(7年的事情了),依稀记得有 ??、 ?、 ?: 、?.、?[ ] 一堆符号,记得脑壳疼,没有想到现在js ts 也带上了 C#中 ??、 ?、 ?.、?[ ] 空合并运算符(?
# 字符串是使用 string 关键字声明的一个字符数组。字符串是使用引号声明的,如下例所示: string s = "Hello, World!"; 字符串对象是“不可变的”,即它们一旦创建就无法更改。对字符串进行操作的方法实际上返回的是新的字符串对象。因此,出于性能方面的原因,大量的连接或其他涉及字符串的操作应当用 StringBuilder 类执行,如下所示: System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.App
由于 Python 在数据科学和机器学习、深度学习中有广泛应用,作为.NET开发者,大家将来或许需要将 Python 构建的项迁移到 ML.NET或TensorFlow.NET 上来,于是快速掌握 Python 有利于快速把握项目并提供迁移效率。
介绍 在大型系统开发调试中,跨系统之间联调开始变得不好使了。莫名其妙一个错误爆出来了,日志虽然有记录,但到底是哪里出问题了呢? 是Ios端参数传的不对?还是A系统或B系统提供的接口导致?相信有不少人遇到这种情况,大多数问题往往不大,但排查起来比较费劲。 下面介绍下怎么通过上下文跟踪的方法,最快定位到其问题。 阅读目录: 概述 web环境 多线程环境 异步环境 性能,大数据量,隐私安全 总结 概述 简单介绍就是,通过一个TraceId把整个业务请求逻辑相关联起来,根据时间顺序形成一个完整的调用链。 这样无
当前有一个需求,需要网页端调用扫描仪,javascript不具备调用能力,因此需要在机器上提供一个ws服务给前端网页调用扫描仪。而扫描仪有一个c#版本的API,因此需要寻找一个c#的websocket库。 java里有大名鼎鼎的netty,通过搜索,c#可以选择websocket-sharp来实现websocket Server。 使用websocket-sharp创建websocket server using System; using WebSocketSharp; using WebSocketSh
源码地址:https://coding.net/u/yimocoding/p/WeDemo/git/tree/SeleniumDemo/SeleniumDemo
文档:http://docs.supersocket.net/v1-6/zh-CN
开发爬虫程序,如果不做代理设置,本机的外网IP很容易被网站封掉,导致不能持续进行数据抓取。而Selenium作为动态网页抓取的利器,我们有必要了解一下,如何对它进行代理设置,并正常访问网页。
首先声明,这又是一个小白从入门到进阶系列。 SignalR 这个项目我关注了很长时间,中间好像还看到过微软即将放弃该项目的消息,然后我也就没有持续关注了,目前的我项目中使用的是自己搭建的 WebSocket ,连接管理和消息推送都是统一维护;前段时间编写了 Asp.NETCore 轻松学系列,现在腾出了一点时间,抱着学习的心态,想把自己学习 SignalR 的过程写出来,就当笔记吧,再做笔记的过程中再加入实际的项目需求,一步一步的深入学习 SignalR ,正所谓技多不压身吧。有想要一起学习的同学,可以关注我,大家一起学习,一起进步。
打开 CustomRules.js (目录:C:\Users\UsersName\Documents\Fiddler2\Scripts):
web端代码就是js代码,C#有两种方式:使用第三方库,如Fleck,使用C#原生socket编程实现
近日在工作中遇到了一个情况:一张纯html的网页,用它一条一条输入数据,然后由JS运算出结果(这些数据多半都是临时的,所以也没考虑保存到数据库),每次用完后换台电脑或出去搞活动现场演示时,又得重新输入一些数据,比较麻烦!市场部的同事要求最好能将在公司测试时一些临时数据导出来,到现场时,直接导入就可以了。当时我的第一反应是利用客户端js,把数据post到服务端保存,再由js通过ajax方式加载服务端的数据--即用服务端中转实现数据的导出和加载。后来想了想,就是一些偶尔用用的小玩意儿,还要用到服务端编程未免太麻
做前端开发的朋友应该对FireFox再熟悉不过了,FireFox有一个附加组件FireBug。在HTML中可以直接写 <script type="text/javascript"> console.log("test");</script> 这样在底部的控制台就能直接看到输出的值,他的作用就好像Visual Studio中的Console.WriteLine() 一样。 我们在Silverlight中就可以直接调用这个js方法实现调试。 var console = (HtmlPage.Window
文章《ASP.NET Core love JavaScript》和《跨平台的 NodeJS 组件解决 .NetCore 不支持 System.Drawing图形功能的若干问题》为我们扩展.NET Core的API提供了一套解决方案,上周在看.NET的加解密算法发现目前为止没有包括DES算法,github上在才刚刚加入,具体可以看 https://group.cnblogs.com/topic/75273.html 。 Node.js的Crypto库就提供各种加密算法,可以非常方便地让我们使用密码技术,解决应
在线编程:https://mybinder.org/v2/gh/lotapp/BaseCode/master
标签: WebSocket SignalR 前言 最近因为项目中涉及到了实时数据的传输,特地去了解了一下当前Web应用中常见的实时交互手段,当然一开始也不仅限于Web客户端。从c#自带的Socket类,到Html5中的WebSocket,再到Asp .Net利器SignalR,总算将这块知识点及应用入门了,当然今天的主要内容还是Web端的消息交互技术(Ajax,Comet,WebSocket等),这些技术难度有中有低,应用场所也有不同,最后我们要根据项目情况来选择恰当的技术。接下来便简单介绍一下 1. We
一直以来,官方口径都是尽量不要碰 CSharp 里的 unsafe 部分,以至于在大部分其它语言的程序员眼里,甚至 CSharp 程序员的眼里,CSharp 就是一个 java,做做 CRUD,捣鼓捣鼓局限于 windows 平台的 Winform 和 WPF 就行了。
领取专属 10元无门槛券
手把手带您无忧上云