nuget

dotnet 使用 ClearScript 执行 VBScript 和 JS 代码 无需浏览器

丶灬走出姿态 提交于 2020-08-15 16:45:01
小伙伴都知道,使用 JS 的坑在于执行效率过低,速度过慢。如果是在客户端中,还开启一个浏览器,整个应用程序就会特别重。有没有什么方法可以让 dotnet 作为容器,执行 JScript 代码而不需要浏览器?其实有的,因为 VBScript 和 JS 代码都很好解析,所以有 ClearScript 支持使用 dotnet 解析代码执行 如何将 VBScript 和 JS 代码编译为 IL 或如何在 C# 和 dotnet 中嵌入 js 代码是不靠谱的,因为 js 语言设计如此,是用来在 基组模块 层运行的语言,也就是这是一个解析型的脚本,更好地做法是给他实现一个解析库。通过解析库将代码解析为数据,在根据数据调用已经写好的代码,这样就能实现在 dotnet 中运行 js 代码了。实现这个方式有两个不同方法,第一个方法使用的最多的,就是在 dotnet 中添加一个浏览器让他执行代码,这个方法的缺点就是性能特别渣,无论是内存占用或 CPU 占用都是特别渣。我作为性能优化组的逗比,只能去寻找第二条路径,毕竟需要照顾一些只会写 js 的大佬。第二个方法是通过 dotnet 解析器解析 js 代码的方法,推荐使用 ClearScript 库,这个库十分好用,可以给 js 注入执行的类或实例包括库,这样可以让贫瘠的 js 可以用到更多的 dotnet 的强大的库。同时可以杂私货,注入自己实现的类等

旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

删除回忆录丶 提交于 2020-08-15 15:42:59
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能 第一时间 发现问题。 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行;一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务。 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的 数据接口 ,应该有五六年的历史了。我进入公司后,WCF服务的代码,一直由我一个人来维护。存在很多 历史遗留问题 ,也有 不同版本 的共存。 如果java重写的话,其中的业务逻辑代码,难免会出现各种各样的bug,增加开发和测试的工作量。听说,要移植到linux服务上后,第一时间想到的就是 跨平台 的 .net core 。 .net core 经过了四年的发展,到目前的 3.1 LST版本,已经是 非常成熟 的跨平台解决方案了。 之后,我就在网上查找,有没有WCF的.net core 版本,查询到的信息总结如下: Core WCF不打算做WCF到.NET Core的100%兼容的移植; 对于新应用程序,WCF这种SOAP技术不建议使用; 对于老的应用程序,建议将这些保留在.NET Framework上; 如果您真的想将一个旧的应用程序迁移到.NET Core并且想继续使用WCF和WF, 社区的开源项目也是可以的

ASP.NET Core 实现 MQTT通讯协议 Demo(开源库:MQTTnet)

半世苍凉 提交于 2020-08-15 13:32:48
1、什么是MQTT   MQTT(message queuing telemetry transport)是IBM开发的即时通讯协议,是一种发布/订阅极其轻量级的消息传输协议,专门为网络受限设备、低宽带以及高延迟和不可靠的网络而设计的。由于以上轻量级的特点,是实现智能家居的首选传输协议,相比于XMPP,更加轻量级而且占用宽带低。 简单来说HQTT是一种通信协议,要实现发布/订阅就必须遵循这个协议。 2、实现MQTT通讯协议.NET开源库有哪些?   MQTTnet、MqttDotNet、nMQTT、M2MQTT等,这里我们使用MQTTnet(但MQTTnet搜到的教程基本都是2.7及以下版本的, 我们使用的是3.0.9版本 )   官网项目URL: https://github.com/chkr1011/MQTTnet 3、展示MQTT实现效果图      例: 客户端1只要订阅了positon主题,客户端2、客户端3、客户端4.....同样订阅了position主题则他们之间就能共享position主题的所发的内容了 。   如果客户端1订阅了position主题,客户端2订阅了beautiful主题,1发给消息2是收不到的。 4、创建.NETCore项目(Server和Client)    5、服务器   添加Nuget包:安装MQTTnet    class Program

使用docker私有化部署nuget server-proget

假装没事ソ 提交于 2020-08-15 08:02:14
在linux上使用docker部署proget 首先创建共用网络proget docker network create proget 创建postgresql库 docker run -d -v /etc/localtime:/etc/localtime:ro -v /var/proget/db:/ var /lib/postgresql/data --net=proget --name=proget-postgres --restart=unless-stopped postgres:latest 创建proget docker run -d -v /etc/localtime:/etc/localtime:ro -v /var/proget/packages:/ var /proget/packages -v /var/proget/extensions:/ var /proget/extensions -p 5080:80 --net=proget --name=proget --restart=unless-stopped inedo/proget:latest 访问http://ip:5080就可以看到proget 去proget官网申请lisence 上传nuget包,在VS中配置地址就可以使用了 来源: oschina 链接: https://my.oschina

旧 WCF 项目迁移到 asp.net core + gRPC 的尝试

送分小仙女□ 提交于 2020-08-15 07:49:17
一个月前,公司的运行WCF的windows服务器down掉了,由于 AWS 没有通知,没有能 第一时间 发现问题。 所以,客户提出将WCF服务由C#改为JAVA,在Linux上面运行;一方面,AWS对Linux有较多的监控措施,另一方面,假如出现问题,可以设置自动重启等服务。 老旧的WCF服务 目前WCF服务,主要提供windows桌面软件的 数据接口 ,应该有五六年的历史了。我进入公司后,WCF服务的代码,一直由我一个人来维护。存在很多 历史遗留问题 ,也有 不同版本 的共存。 如果java重写的话,其中的业务逻辑代码,难免会出现各种各样的bug,增加开发和测试的工作量。听说,要移植到linux服务上后,第一时间想到的就是 跨平台 的 .net core 。 .net core 经过了四年的发展,到目前的 3.1 LST版本,已经是 非常成熟 的跨平台解决方案了。 之后,我就在网上查找,有没有WCF的.net core 版本,查询到的信息总结如下: Core WCF不打算做WCF到.NET Core的100%兼容的移植; 对于新应用程序,WCF这种SOAP技术不建议使用; 对于老的应用程序,建议将这些保留在.NET Framework上; 如果您真的想将一个旧的应用程序迁移到.NET Core并且想继续使用WCF和WF, 社区的开源项目也是可以的

.net hbase client--终于浮出水面的轮子

时光怂恿深爱的人放手 提交于 2020-08-15 06:26:39
一、开篇 1.背景 在大数据时代,HBase 数据库是个绕不开的热门话题。 由于其使用 Java 作为主要开发语言,并且依赖大量的 Java 组件(如 Hadoop、zooKeep),使得其他技术栈想要有一个对应的 hbase 客户端变得有一定难度。在 .net 的世界中,一直缺乏能够直接访问 hbase 的客户端。 2.历程 Apache Thrift 作为社区内比较有名的支持多语言的 Api 服务,可以解决跨语言访问 HBase 数据库的痛点。在以往的文章中业也介绍过 C#如何使用 thrift 访问 hbase,但在真正的生产环境中,该方式的访问效率和原生 Java 客户端比起来真着实让人心灰意冷。此外,thrift 也要求服务端和客户端版本一致。 Protocol Buffers HBase 提供基于 Protocol 的数据访问,这以一种相对高效紧凑的数据交换规则。基于此,我们能够造出属于 .net 的 hbase 客户端。 这是一个造轮子的过程,中间虽有着许多难点就不再赘述。下面直接介绍该项目的使用。 二、HBaseNet 使用 1.HBase 数据库准备 作为项目使用演示,我们就不讨论如何搭建 HBase 集群了,一切以简单便捷为前提,直接使用别人构建好的 docker 镜像就可以轻松获取 HBase 数据库的使用。 在 dockerhub 中搜索 hbase

从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1

只谈情不闲聊 提交于 2020-08-15 05:42:11
本文3.0版本文章 https://mp.weixin.qq.com/s/pjvleNGi_AazZ7COdxQyPQ Redis 部分的内容,和netcore2.0一样,不需要更新。 代码已上传Github+Gitee,文末有地址   书说上文《 从壹开始前后端分离【 .NET Core2.0 Api + Vue 2.0 + AOP + 分布式】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存 》,昨天咱们说到了AOP面向切面编程,简单的举出了两个栗子,不知道大家有什么想法呢,不知道是否与传统的缓存的使用有做对比了么?   传统的缓存是在Controller中,将获取到的数据手动处理,然后当另一个controller中又使用的时候,还是Get,Set相关操作,当然如果小项目,有两三个缓存还好,如果是特别多的接口调用,面向Service服务层还是很有必要的,不需要额外写多余代码,只需要正常调取Service层的接口就行,AOP结合Autofac注入,会自动的查找,然后返回数据,不继续往下走Repository仓储了。   昨天我发布文章后,有一个网友提出了一个问题,他想的很好,就是如果面向到了Service层,那BaseService中的CURD等基本方法都被注入了,这样会造成太多的代理类,不仅没有必要,甚至还有问题,比如把Update也缓存了

【无私分享:ASP.NET CORE 项目实战(第十二章)】添加对SqlServer、MySql、Oracle的支持

二次信任 提交于 2020-08-15 03:05:00
原文: 【无私分享:ASP.NET CORE 项目实战(第十二章)】添加对SqlServer、MySql、Oracle的支持 目录索引   【无私分享:ASP.NET CORE 项目实战】目录索引 简介      增加对多数据库的支持,并不是意味着同时对 多种数据库 操作,当然,后面,我们会尝试同时对多种数据库操作,这可能需要多个上下文,暂且不论。 分布式数据库 ,我们采用的是阿里云的Mycat,这个后面会更新出来。我们今天的场景是:我们的项目可能是在windows上开发的使用的是SqlServer,我们要发布到linux上,SqlServer 2017 据说是支持liunx的,但是还没出... 当然不是说 SqlServer 就不能装在liunx上,但是我们的Liunx服务器可能已经安装了MySql或 Oracle,我们希望使用现有的,又或者是,我们需要切换数据库。那么,我们需要可以随时切换数据库的支持。    添加NuGet包,注册服务    使用SqlServer数据库,这个官方有详细的步骤和解释,可以参考: https://docs.efproject.net/en/latest/providers/sql-server/index.html ,我们简单介绍一下   在 【(第四章)】Code First 创建数据库和数据表 中,我们使用的就是SqlServer

第九节:IdentityServer4简介及客户端模式和用户密码模式的应用

南楼画角 提交于 2020-08-14 15:24:49
一. IDS4简介 1. 什么是IDS4   IdentityServer是基于OpenID Connect协议标准的身份认证和授权程序,它实现了OpenID 和 OAuth 2.0 协议。 2. 相关地址  (1).官网:https://identityserver4.readthedocs.io/en/latest/  (2).GitHub地址:https://github.com/IdentityServer  (2).三方中文文档:http://www.identityserver.com.cn/Home/Detail/Zhengtizongshu 3. IDS4有哪些功能  (1).身份认证服务(官方认证的OpenID Connect实现)  (2).单点登录与注销(SSO)  (3).访问受控的Api 4. IDS4的内部概念 (1).用户-User   使用已注册的客户端(指在id4中已经注册)访问资源的人。 (2).客户端-Client (即第三方应用)   客户端就是从identityserver请求令牌的软件(你可以理解为一个app即可),既可以通过身份认证令牌来验证识别用户身份,又可以通过授权令牌来访问服务端的资源。但是客户端首先必须在申请令牌前已经在 identityserver服务中注册过。实际客户端不仅可以是Web应用程序,app或桌面应用程序

01VulKan——在Windows系统+NuGet环境搭建

百般思念 提交于 2020-08-14 14:11:10
1.Vulkan SDK下载 下载网址 https://vulkan.lunarg.com/sdk/home ,选择Windows平台下的最新SDK下载安装。 2.安装Vulkan,双击.exe文件 安装 3.测试 安装完成了,到安装的新形成的目录下 Bin32 运行 vkcube.exe ,测试一下安装是否成功,你的PC显卡驱动程序是否支持Vulkan,如下所示: 若出现如下图所示,则说明成功: 4. 创建Visual Studio工程并新建CPP文件 输入以下程序: #define GLFW_INCLUDE_VULKAN #include <GLFW/glfw3.h> #define GLM_FORCE_RADIANS #define GLM_FORCE_DEPTH_ZERO_TO_ONE #include <glm/vec4.hpp> #include <glm/mat4x4.hpp> #include <iostream> int main() { glfwInit(); glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); GLFWwindow* window = glfwCreateWindow(800, 600, "Vulkan window", nullptr, nullptr); uint32_t extensionCount