C#.NET
文章平均质量分 83
fzzsh
少说多做
展开
-
Mqtt(emqx)上下线监听
在mqtt协议中,存在LTW(Last Will and Testament)遗言机制,该机制只能捕捉客户端异常离线的通知,而无法获取正常通过disconnect断开连接的通知。LTW(Last Will and Testament)遗言机制客户端在连接到Mqtt服务器时,需指定will topic和will message遗言信息,之后若在客户端异常断开(弱网络、服务被终止,而非正常disconnet)时会由mqtt服务器主动向will topic发送will message,此时其他监听will转载 2022-06-27 08:59:05 · 3628 阅读 · 0 评论 -
Visual studio 2022 常用快捷键
1.强制智能感知: Ctrl+J;有时候当我们退出智能感知就不能使用输入联想,这时候你可以在输入后按Ctrl+J进行输入联想:,按Ctrl+J,之后:2.强制智能感知****显示参数信息: Ctrl+空格:3.强制选中智能感知的即将输入的字段(即输入联想,光标放在字段后):Shift+Space,用于给变量提示命名:4.格式化代码,操作:选中你要格式化的代码,或者将光标放在某一行代码的前面(这样只能格式化该行): Ctrl+K,F 或者 Ctrl+K,D5.检查大括号{}匹配,操作:转载 2022-05-31 09:14:20 · 19110 阅读 · 1 评论 -
2020-12-14
CronExpression(cron表达式)- CronTriggers(cron触发器)CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。即便如此,SimpleTrigger一样,CronTrigger拥有的startTim原创 2020-12-14 16:15:29 · 144 阅读 · 1 评论 -
串口的Hex/AscII发送与显示
首先,底层的数据传输都是字节流,所以不管选择什么方式,都会被分解为一个一个的字节。1选择Hex发送就代表你要发送的内容是纯数字,由程序完成String到Int再到Byte的转化。所以你应该保证每个你要发送的数都是两位的,如果是7就应该写07,因为程序会每两位每两位地读。如果你选择了Hex发送,而输入的又是字符,比如你写了ab,那么就会被程序读为16进制的AB。这就是不同的概念了,无论你选择什么...转载 2020-03-03 11:55:35 · 4771 阅读 · 0 评论 -
NetCore +EF+Mysql 从数据库生成实体类到项目
1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台”分别安装以下几个包Mysql 版本:Install-Package MySql.Data.EntityFrameworkCore -PreInstall-Package Pomelo.EntityFrameworkCore.MySqlInstall-Package Microsoft.EntityFr...转载 2019-11-05 13:48:34 · 221 阅读 · 0 评论 -
配置IIS Express 7.5以允许外部访问
配置IIS Express 7.5以允许外部访问2011-11-10 11:05 by slmk, 714 visits, 收藏, 编辑IIS Express 7.5是可以允许于windows Xp下运行的web服务器,可以作为一个小型的web服务器供局域网内使用。官方下载连接:http://www.microsoft.com/downloads/zh-cn/d转载 2011-11-10 21:53:03 · 2904 阅读 · 0 评论 -
如何整合Office Web Apps至自己开发的系统(一)
在前面我的一篇博客中 Office Web Apps安装部署(一),有一张介绍Office Web Apps与其他系统的关系图, 从上述图中,可知实际上Office Web Apps也是可以接入自己开发的系统的。下面介绍一下整合Office Web Apps的一些理论知识。 要想让自己的系统与Office Web Apps整合就一定要清楚一些概念,首先要理解什么是”WOPI转载 2014-04-15 09:05:10 · 2305 阅读 · 0 评论 -
如何整合Office Web Apps至自己开发的系统(二)
WOPI项目的创建首先用vs2012创建一个mvc4的程序。如图:从上一篇我们可以知道,WOPI通讯主要通过两个服务:一个是CheckFileInfo服务,一个是GetFile服务。所以下面我们主要介绍这两个服务的创建。 1. 首先创建CheckFileInfo服务:我们先确定这个服务的路由地址设置为:http://>/files/?access_token转载 2014-04-15 09:07:17 · 1086 阅读 · 1 评论 -
修改web office apps 默认在浏览器中打开
最近在搞鼓web office apps的时候发现,在新建文档的时候, IE浏览器会默认检测本机是否安装了office系列,安装了的话会尝试用客户端office打开模板文档新建。下图是客户端安装了office 2007 sp2版本的情况(测试了三个版本的office,office 2003、office 2007、office 2007 sp2,发现office 2007 sp转载 2014-04-15 09:11:27 · 1893 阅读 · 0 评论 -
Office Web Apps安装部署(一)
系统要求为Windows Server 2012,注意:安装Office Web Apps的服务器除了Office Web Apps之外,不能安装其他应用。包括不能安装Office,lync,,sharepoint等应用,即要单独部署。安装IIS 7.0打开服务器管理器添加角色和功能打开“添加角色和功能向导”界面,点击下一步因为是基于本机安装,所以要选择“基于角转载 2014-04-15 09:01:04 · 1311 阅读 · 0 评论 -
Office Web Apps安装部署(二)
SharePoint 2013调用Office Web Apps注意:调用OfficeWebApps的sharepoint应用的身份认证必须是基于声明的身份认证(claims-based authentication)首先安装好SharePoint2013,我在此部署文档中使用的是免费的sharepiont foundation 2013.操作系统环境为:windows2012.1转载 2014-04-15 09:01:54 · 1050 阅读 · 0 评论 -
c#调用sybase存储过程odbc
1:引用Odbc命名空间using System.Data;using System.Data.Odbc;2:建立连接connstr="Driver={SYBASE SYSTEM 11};Srvr=数据库名;Uid=用户名;Pwd=密码";OdbcConnection Conn=转载 2011-07-26 11:55:01 · 953 阅读 · 0 评论 -
基于Google API的全文翻译Web Service实现
<br />首先使用Visual Studio 2008新建一个“ASP.NET Web服务应用程序”<br /><br />由于Google AJAX Language API返回的是JSON格式的数据。所以我们先将下载后的“Newtonsoft.Json.dll”引用到项目,并添加新项“Web服务”将文件命名为“WebService.asmx”。 Services.asmx的功能流程图如下:<br /><br />我们需要获得从Google返回的JSON数据,实现方法如下:/**//// <su转载 2011-02-07 12:04:00 · 1698 阅读 · 0 评论 -
实现支持断点续传多线程下载的 Http Web 客户端工具类
<br /><br />/* .Net/C#: 实现支持断点续传多线程下载的 Http Web 客户端工具类 (C# DIY HttpWebClient) <br /> * Reflector 了一下 System.Net.WebClient ,改写或增加了若干: <br /> * DownLoad、Upload 相关方法! <br /> * DownLoad 相关改动较大! <br /> * 增加了 DataReceive、ExceptionOccurrs 事件! <br /> * 了解服务器端与客户端交原创 2010-11-26 22:48:00 · 2720 阅读 · 4 评论 -
C#多线程与UI响应
<br /> <br />一.C#多线程概述<br />1.后台循环任务,少量UI更新:例如批量上传文件,并提供进度。这种情况使用BackgroundWorker组件是非常好的选择。<br />2.耗时的后台任务:这里的耗时任务是指一个时间较长的任务,并且不能精确获取进度,如:调用一个远程WebService接口。这种情况可以开两个线程,一个工作,一个更新UI(不能提供进度,只能显示动画表示系统在运行中)。<br />3.耗时的UI任务:当工作压力集中在UI响应上时,可以在工作者线程中增加延时,从而让UI线转载 2010-11-26 22:41:00 · 769 阅读 · 0 评论 -
c#多线程操作Windows Forms控件
<br /><br />在Windows Forms编程中涉及到的多线程操作,多个线程来更新Forms上的控件,比如textbox等。但是如果你直接在线程中更新textbox的text属性是会报错的。因为textbox是主线程创建的,子线程访问的时候就会报错。<br /> <br />解决方案如下,建立一个Windows Forms项目,拖拉一个textbox和button就可以。<br />点击button来启动线程,在线程中修改textbox的值。<br />这需要使用委托类<br />//启动线程<b转载 2010-11-26 22:24:00 · 1558 阅读 · 0 评论 -
Enterprise Architect入门
<br /><br />EA优势:<br />生命周期软件设计方案——Enterprise Architect是以目标为导向的软件系统。它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。<br /> 为整个团队提供高级的UML 2.0建模工具<br /> EA为用户提供一个高性能、直观的工作界面,联合UML 2.0最新规范,为桌面电脑工作人员、开发和应用团队打造先进的软件建模方案。该产品不仅特性丰富,转载 2010-09-25 09:51:00 · 2286 阅读 · 0 评论 -
WinForm开发,窗体显示和窗体传值相关知识总结
以前对WinForm窗体显示和窗体间传值了解不是很清楚最近做了一些WinForm开发,把用到的相关知识整理如下A.WinForm中窗体显示显示窗体可以有以下2种方法:Form.ShowDialog方法 (窗体显示为模式窗体)Form.Show方法 (窗体显示为无模式窗体) 2者具体区别如下:1.在调用Form.Show方法后,Show方法后面的代码会立即执行2.在调用Form.Show原创 2010-05-11 20:14:00 · 495 阅读 · 0 评论 -
vs2005 自带网站压力测试 (vsts)
VSTS提供了一个丰富、强大的工具平台,融合了软件开发领域的各个角色,涵盖软件开发生命周期的各个阶段,包括设计,开发,测试,管理,而这一整套构件的融会贯通,让它可以有效地改善软件开发过程中各个阶段的弊端,提高团队之间不同的角色的协调能力,提高工作效率。本文就简单介绍一下如何利用VSTS给一个网站做压力测试。1 建立一个测试项目,起名MyTest2 建立一个Web Test点击Web Test...转载 2009-12-29 08:35:00 · 1237 阅读 · 0 评论 -
8天玩转并行开发——第七天 简要分析任务与线程池
其实说到上一篇,我们要说的task的知识也说的差不多了,这一篇我们开始站在理论上了解下“线程池”和“任务”之间的关系,不管是说线程还是任务,我们都不可避免的要讨论下线程池,然而在.net 4.0以后,线程池引擎考虑了未来的扩展性,已经充分利用多核微处理器架构,只要在可能的情况下,我们应该尽量使用task,而不是线程池。 首先看一下task的结构从图中我们可以看出Task.Factory.Start...转载 2014-11-26 14:20:43 · 742 阅读 · 0 评论 -
8天玩转并行开发——第一天 Parallel的使用
随着多核时代的到来,并行开发越来越展示出它的强大威力,像我们这样的码农再也不用过多的关注底层线程的实现和手工控制,要了解并行开发,需要先了解下两个概念:“硬件线程”和“软件线程”。 1. 硬件线程 相信大家手头的电脑都是双核以上的,像我这样古董的电脑都是双核的,这样的双核叫做物理内核。 硬件线程又叫做逻辑内核,我们可以在”任务管理器“中查看”性能“标签页,如下图,我们知道有2个硬件线程。 ...转载 2014-11-26 14:12:02 · 836 阅读 · 0 评论 -
8天玩转并行开发——第二天 Task的使用
在我们了解Task之前,如果我们要使用多核的功能可能就会自己来开线程,然而这种线程模型在.net 4.0之后被一种称为基于“任务的编程模型”所冲击,因为task会比thread具有更小的性能开销,不过大家肯定会有疑惑,任务和线程到底有什么区别? 1:任务是架构在线程之上的,也就是说任务最终还是要抛给线程去执行。2:任务跟线程不是一对一的关系,比如开10个任务并不是说转载 2014-11-26 14:13:52 · 568 阅读 · 0 评论 -
WPF中Binding的几种写法
<!--绑定到DataContext--> <Button Content="{Binding DataTime}"/> <!--绑定到DataContext,并设置绑定模式--> <Button x:Name="btn" Content="{Binding DataTime,Mode=OneTime...转载 2019-06-24 09:22:24 · 2454 阅读 · 0 评论 -
在Visual Studio 2017中创建 Web API并整合Swagger
Swagger是一种与技术无关的标准,允许发现REST API,为任何软件提供了一种识别REST API功能的方法。这比看起来更重要:这是一个改变游戏技术的方式,就像Web服务描述语言一样WSDL(Web Service Description Language)一样。WSDL一直是使Visual Studio等工具和IDE可以理解Web服务并创建代理类的基础技术。此功能将Web服务的消...转载 2019-05-29 15:02:22 · 6871 阅读 · 1 评论 -
安装 Office Online Server
通过安装 Office Online Server 使用户可以在 Exchange Outlook 网页版中查看和编辑受支持的文件附件,而无需先下载这些附件,也无需在本地安装相关程序。安装 Office Online Server 必备组件:1)下载安装Visual C++ Redistributable for Visual Studio 2015:Start-BitsT转载 2017-01-19 11:02:25 · 6367 阅读 · 0 评论 -
C#创建Windows Service(Windows 服务)基础教程
Windows Service这一块并不复杂,但是注意事项太多了,网上资料也很凌乱,偶尔自己写也会丢三落四的。所以本文也就产生了,本文不会写复杂的东西,完全以基础应用的需求来写,所以不会对Windows Service写很深入。本文介绍了如何用C#创建、安装、启动、监控、卸载简单的Windows Service 的内容步骤和注意事项。一、创建一个Windows Service转载 2016-09-08 10:39:11 · 2757 阅读 · 0 评论 -
SignalR SelfHost实时消息,集成到web中,实现服务器消息推送
先前用过两次SignalR,但是中途有段时间没弄了,今天重新弄,发现已经忘得差不多了,做个笔记!首先创建一个控制台项目Nuget添加引用联机搜索:Microsoft.AspNet.SignalR.SelfHostMicrosoft.Owin.Cors 在Program.cs添加代码添加一个Hub这个hub里面我们就实转载 2016-09-20 16:11:41 · 2892 阅读 · 0 评论 -
基于SignalR实现B/S系统对windows服务运行状态的监测
通常来讲一个BS项目肯定不止单独的一个BS应用,可能涉及到很多后台服务来支持BS的运行,特别是针对耗时较长的某些任务来说,Windows服务肯定是必不可少的,我们还需要利用B/S与windows服务进行交互,来实现更好的用户体验,搭配redis,memcached等来实现分布式缓存,消息列队处理等等。。。但是通常情况我们在B/S端是无法得知其依赖的windows服务当前处于什么样的运行状态转载 2016-09-20 16:09:49 · 3474 阅读 · 2 评论 -
c#调用TeamViewer或AnyDesk实现远程控制
最近用到这个东西,发现网上并没有现成可用的解决方案。 这里给出我的解决办法~ anydesk虽然小巧但是不稳定,teamview功能更强大也更稳定一点。 **方案一**使用TeamView自带的API来实现远程控制。(AnyDesk好像没有开放的接口) 优点:简单。 缺点:需要通过转载 2016-01-25 12:35:34 · 4385 阅读 · 1 评论 -
C#一次性向数据库插入上万条数据的方法
一次性插入上万条数据的写法1.[csharp] view plaincopy/// /// DataTable批量添加(有事务) /// / // 数据源 /// 定义数据源和目标源列的关系集合 /// 目标表 public static boo转载 2016-01-07 15:37:34 · 7235 阅读 · 0 评论 -
visual studio快捷键大全
ctrl+k,c 注释选中行 ctrl+k,u 取消对选中行的注释CTRL + SHIFT + B:生成解决方案CTRL + F7 :生成编译CTRL + O :打开文件CTRL + SHIFT + O:打开项目CTRL + SHIFT + C:显示类视图窗口F4 :显示属性窗口SHIFT + F4:显示项目属性窗口CTR转载 2014-11-24 10:19:37 · 425 阅读 · 0 评论 -
8天玩转并行开发——第三天 plinq的使用
相信在.net平台下,我们都玩过linq,是的,linq让我们的程序简洁优美,简直玩的是爱不释手,但是传统的linq只是串行代码,在并行的年代如果linq不支持并行计算那该是多么遗憾的事情啊。 当然linq有很多种方式,比如linq to sql ,xml,object 等等,如果要将linq做成并行还是很简单的,这里我就举一个比较实际一点的例子,我们知道为了更快的响应转载 2014-11-26 14:14:57 · 555 阅读 · 0 评论 -
8天玩转并行开发——第八天 用VS性能向导解剖你的程序
最后一篇,我们来说说vs的“性能向导",通常我们调试程序的性能一般会使用Stopwatch,如果希望更加系统的了解程序,我们就需要用到”性能向导“,通过性能报告便于我们快速的发现并找到潜在的性能问题。 首先我们上一段需要改进的代码: 1 using System; 2 using System.Collections.Generic; 3 using S转载 2014-11-26 14:21:40 · 646 阅读 · 0 评论 -
8天玩转并行开发——第六天 异步编程模型
在.net里面异步编程模型由来已久,相信大家也知道Begin/End异步模式和事件异步模式,在task出现以后,这些东西都可以被task包装起来,可能有人会问,这样做有什么好处,下面一一道来。 一: Begin/End模式1: 委托 在执行委托方法的时候,我们常常会看到一个Invoke,同时也有一对你或许不常使用的BeginInvoke,EndInvo转载 2014-11-26 14:18:47 · 723 阅读 · 0 评论 -
8天玩转并行开发——第五天 同步机制(下)
承接上一篇,我们继续说下.net4.0中的同步机制,是的,当出现了并行计算的时候,轻量级别的同步机制应运而生,在信号量这一块出现了一系列的轻量级,今天继续介绍下面的3个信号量 CountdownEvent,SemaphoreSlim,ManualResetEventSlim。 一:CountdownEvent 这种采用信号状态的同步基元非常适合在动态的for转载 2014-11-26 14:17:29 · 505 阅读 · 0 评论 -
8天玩转并行开发——第四天 同步机制(上)
在并行计算中,不可避免的会碰到多个任务共享变量,实例,集合。虽然task自带了两个方法:task.ContinueWith()和Task.Factory.ContinueWhenAll()来实现任务串行化,但是这些简单的方法远远不能满足我们实际的开发需要,从.net 4.0开始,类库给我们提供了很多的类来帮助我们简化并行计算中复杂的数据同步问题。 大体上分为二种:转载 2014-11-26 14:16:32 · 499 阅读 · 0 评论 -
C#开发飞信机器人
利用飞信的协议可以在线收发消息,或是向手机发送消息。由此,可以自己来完成一个IM工具。本文即是对飞信SDK的使用方法,及如何开发作一个说明。FetionSDK下载:http://www.fzzsh.cn/software/FetionSDK.rar贴一下核心代码:private FetionSDK sdk = new FetionSDK();//实例化飞信sdksdk.SD转载 2009-12-26 15:28:00 · 2652 阅读 · 4 评论 -
迅雷API接口
迅雷API接口附:其中用到了AddTask这个方法,这个方法的参数如下:AddTask("下载地址", "另存文件名", "保存目录","任务注释","引用地址","开始模式", "只从原始地址下载","从原始地址下载线程数") 。 参数名含义 pURL目标URL,必须参数 pFileName另存名称,默认为空,表示由迅雷处理,可选参数 pPath存储目录,默认为空,表示由迅雷处理,可选参原创 2009-12-09 09:32:00 · 1884 阅读 · 0 评论 -
c#面向对象程序设计试题(附带答案)
1.在对SQL Server 数据库操作时应选用(a)。 a)SQL Server .NET Framework 数据提供程序; b)OLE DB .NET Framework 数据提供程序; c)ODBC .NET Framework 数据提供程序; d)Oracle .NET Framework数据提供程序; 2.下列选项中,(c)是引用类型。 a)enum类型 b)struct类型 c)s原创 2008-07-30 14:59:00 · 4676 阅读 · 1 评论 -
C#冒泡排序
public void BubbleSort(int[] R) { int i,j,temp; //交换标志 bool exchange; //最多做R.Length-1趟排序 for(i=0; i { //本趟排序开始前,交换标志应为假 exchange=false; fo转载 2008-07-30 07:05:00 · 431 阅读 · 0 评论