代码改变世界

随笔分类 - C#/.Net

基于WebSocketSharp 的IM 简单实现

2018-03-02 08:56 by stoneniqiu, 6794 阅读, 收藏, 编辑
摘要:websocket-sharp 是一个websocket的C#实现,支持.net 3.5及以上来开发服务端或者客户端。本文主要介绍用websocket-sharp来做服务端、JavaScript做客户端来实现一个简单的IM。 WebSocketBehavior WebSocketBehavior是核 阅读全文

【微信开发】-- 发送模板消息

2017-06-28 20:25 by stoneniqiu, 25266 阅读, 收藏, 编辑
摘要:我们需要将一些行为的进展消息推送给用户。除了短信,发送微信模板消息也是不错的选择。模板消息免费、精准到达、而且可以引导用户回到网站上来。但它有两个前提条件。1个是认证的服务号,你才能选择模板。2个是被推送的用户必须关注了你的公众号,而且你也拿到了他的openid。 先在模板库中找到自己的想要的模板, 阅读全文

【微信开发】-- 企业转账到用户

2017-01-22 00:25 by stoneniqiu, 20826 阅读, 收藏, 编辑
摘要:在微信公众号支付的API中没有这个接口,如果企业需要给用户转账,或者让用户提现或者给用户发红包等需要再商户平台中的产品中心分别开通。 一、开通功能 开通就是点击一下,很简单。但需要注意的是支持向用户转账的账户和收到用户付款的账户不是同一个,而为了满足此功能,你需要先用财付通进行充值(交易中心--资金 阅读全文

求一个等差数列

2017-01-19 22:20 by stoneniqiu, 359 阅读, 收藏, 编辑
摘要:需要要一个金额递减的效果,最终的效果如下,这其实就是一个等差数列。 我们学过的等差数列求和公式是: 也就是首末相加乘以N再除以2.而我们得到的参数是总金额和总人数,求整个数列。我们默认最小的差值是0.01,也就是一分钱,首项是a0,那么aN=a0+(n-1)*gap代码如下: 关键是通过min计算出 阅读全文

【微信开发】【Asp.net MVC】-- 微信分享功能

2017-01-15 09:09 by stoneniqiu, 15935 阅读, 收藏, 编辑
摘要:内嵌在微信中的网页,右上角都会有一个默认的分享功能。如下图所示,第一个为自定义的效果,第二个为默认的效果。实现了自定义的分享链接是不是更让人有点击的欲望?下面讲解下开发的过程。 一、准备,设置js接口安全域名 这需要使用微信的jssdk,先需要在微信公众号后台进行设置:公众号设置-->功能设置--> 阅读全文

NPOI导出多张图片到Excel

2017-01-10 23:14 by stoneniqiu, 2865 阅读, 收藏, 编辑
摘要:常用NPOI导出数据到excel,但没有试过如何导出图片。NPOI最大的特点就是不依赖于Excel组件,服务端不需要安装Excel。在单元格中插入图片主要是用HSSFClientAnchor对象。他有8个参数。 前面四个表示在单元格中两个点的位置,后面四个表示是哪个单元格。先看代码。 每一张表只能有 阅读全文

【吉光片羽】短信验证

2016-12-29 20:59 by stoneniqiu, 843 阅读, 收藏, 编辑
摘要:早就听说过阿里大于,短信验证绑定手机的过程我们也经历了很多次。下面简单记录下过程。 1.注册一个应用 得到AppKey 和 App Secret 应用管理-->应用列表 2.设置签名 配置管理-->验证码 签名是出现短信内容最前面的字段,比如【xx科技】xxxx, 这个需要审核。显示是2小时内。 3 阅读全文

Asp.Net MVC 扩展 Html.ImageFor 方法详解

2016-07-02 08:09 by stoneniqiu, 3293 阅读, 收藏, 编辑
摘要:背景: 在Asp.net MVC中定义模型的时候,DataType有DataType.ImageUrl这个类型,但htmlhelper却无法输出一个img,当用脚手架自动生成一些form或表格的时候,这些Url字段总是需要再手动改一次,特别是我想在img上面包裹一个a标签。并限定大小,比如: 方法1 阅读全文

微信登录

2016-04-11 22:51 by stoneniqiu, 6068 阅读, 收藏, 编辑
摘要:一直好奇这个功能,昨天终于走通。这里记录一下。 微信官方介绍 在进行微信OAuth2.在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的网站应用,并获得相应的AppID和AppSecret,申请微 信登录且通过审核后,可开始接入流程。 获取二维码 官方文 阅读全文

Portal.MVC —— nopcommerce的简化版

2015-12-04 08:21 by stoneniqiu, 6236 阅读, 收藏, 编辑
摘要:Portal.MVC 简介 项目是基于MVC4+EF,带有角色,权限,用户中心及账户相关(登录,注册,修改密码,找回密码等)等基本功能。参考的开源项目 nopcommerce,这是一个电商架构的MVC项目,我对其进行了简化,之前主要是方便我自己搭建一些小的网站。包含前台和后台。 界面浏览 1.首页。 阅读全文

抓取登录后的数据

2015-11-29 23:01 by stoneniqiu, 1861 阅读, 收藏, 编辑
摘要:这次是应一个客户需要,抓取另外一个网站的数据,包括数据提交。这些操作需要在登录之后完成。技术上没有什么难点。关键都是用fiddler找到参数和url。记住登录状态 HttpClient能够记住登录状态的,登录完了可以讲Httpclient保存起来。 private HttpClient _cli... 阅读全文

Form认证的几点说明

2015-11-23 17:35 by stoneniqiu, 406 阅读, 收藏, 编辑
摘要:有的页面需要用户认证之后才可以进入,通常都是在Filter的OnActionExecuting方法中我们需要获取当前用户。有两种情况不必登录:1.用户是登录的,也就是认证过的。2.用户上次登录了,但没有退出就关闭了页面,且还Cookie还没有过期。这个时候Request.IsAuthentica... 阅读全文

【读书笔记】.Net并行编程(三)---并行集合

2015-11-09 08:24 by stoneniqiu, 3164 阅读, 收藏, 编辑
摘要:为了让共享的数组,集合能够被多线程更新,我们现在(.net4.0之后)可以使用并发集合来实现这个功能。而System.Collections和System.Collections.Generic命名空间中所提供的经典列表,集合和数组都不是线程安全的,如果要使用,还需要添加代码来同步。 先看一个... 阅读全文

【读书笔记】.Net并行编程高级教程(二)-- 任务并行

2015-10-29 08:13 by stoneniqiu, 1868 阅读, 收藏, 编辑
摘要:前面一篇提到例子都是数据并行,但这并不是并行化的唯一形式,在.Net4之前,必须要创建多个线程或者线程池来利用多核技术。现在只需要使用新的Task实例就可以通过更简单的代码解决命令式任务并行问题。1.Task及它的生命周期 一个Task表示一个异步操作,它的创建和执行都是独立的,因此可以对... 阅读全文

【读书笔记】.Net并行编程高级教程--Parallel

2015-10-13 08:14 by stoneniqiu, 8447 阅读, 收藏, 编辑
摘要:一直觉得自己对并发了解不够深入,特别是看了《代码整洁之道》觉得自己有必要好好学学并发编程,因为性能也是衡量代码整洁的一大标准。而且在《失控》这本书中也多次提到并发,不管是计算机还是生物都并发处理着各种事物。人真是奇怪,当你关注一个事情的时候,你会发现周围的事物中就常出现那个事情。所以好奇心驱使下学习... 阅读全文

【吉光片羽】奇怪的Bug-细节的问题

2015-07-08 09:21 by stoneniqiu, 371 阅读, 收藏, 编辑
摘要:对于改bug这件事情,只要写程序,基本上天天都会经历,而得出的经验是:凡是bug,必有原因。有时候看似诡异的bug,可能原因很简单。有时候一个人思维太僵化,几个人讨论一下,就会发现问题在哪儿。漏光的那个问题,我嘀咕了几天,也找不到什么资料,最后和同事一起解决了,发现只是属性设置的问题。 阅读全文

Wix 安装部署教程(十一) ---QuickWix

2015-06-17 08:11 by stoneniqiu, 2293 阅读, 收藏, 编辑
摘要:这次发布的是这两天做的一个WIX工具QuickWIX,主要解决两个问题点1.对大文件快速生成wix标签(files,Directories,ComponentRef);2.比较前后两次工程的差异。大的WIX工程有好几千个文件,开发人员增加dll,或者资源文件都是不确定的,而且很多时候我们无法直... 阅读全文

Wix 安装部署教程(十) --来,用WPF做个漂亮的安装界面

2015-05-25 08:05 by stoneniqiu, 5047 阅读, 收藏, 编辑
摘要:在上一篇中曾留下两个问题,.Net捆绑安装不触发以及路径选择的问题现在都已经解决,这段时间花的最多的地方还是WPF调样式上面,奈何WPF功力不够,暂时还是没有达到自己想要的效果。另外ViewModel做了些调整,状态更加分明。安装效果是仿照搜狗输入法做的。先上效果图。 以上这只是四个基本的页面,更细 阅读全文

自动更新(自动升级)组件分享

2014-06-24 20:20 by stoneniqiu, 4847 阅读, 收藏, 编辑
摘要:自从接触安装部署以来就有软件升级的需求,最简单的就是clickonce,但无法做到深入控制,本寄希望于WIX可以自己实现,但现在还没有找到例子。然后才自己实现。 要声明一下,这是在圣殿骑士AutoUpdater基础上改动过来的。基于他分享的精神,我也继续分享。我主要做了以下改动。 阅读全文

【源码笔记】BlogEngine.Net 中的权限管理

2014-05-19 08:21 by stoneniqiu, 1994 阅读, 收藏, 编辑
摘要:BlogEngine.Net 是个功能点很全面的开源博客系统,容易安装和实现定制,开放接口支持TrackBack,可以定义主题配置数据源等等。可谓五脏俱全,这里先记录一下它基于Membership的权限管理,文章有点长了,花了不少时间。这只是对知识的一个梳理,并不是要推荐用这种方式做权限管理,分享一下BlogEngine实现的方式。所以园友们各取所需。 阅读全文

上传图片压缩+水印(文字、图片)+验证码

2014-03-31 21:01 by stoneniqiu, 561 阅读, 收藏, 编辑
摘要:一个页面加载图片太多的时候就很慢,需要用到缩略图,可以在图片上传的时候生成。 Image对象已经包含了压缩图片的方法。 所以过程很简单: [AcceptVerbs(HttpVerbs.Post)] public JsonResult Upload(HttpPostedFileBase fileData) { //..... var extension = Path.GetExtension(fileName);// 文件扩展名 if (extension != n... 阅读全文

Xaml/Xml 实现对象与存储分离

2014-02-10 14:10 by stoneniqiu, 1246 阅读, 收藏, 编辑
摘要:刚开始用xml存储东西的时候都是不断的在xml文件里面添加或者修改xml的节点,这个是很常见的做法,这方面的博客也很多我也就不介绍了。但其实在小批量存储的时候我们可以直接将对象存进xml/xaml,使用的时候将整个对象加载出来,操作完成后再保存下去,这种做法没有什么技术难点,但我只是觉得更加的面相对象,模型和存储可以分开,模型的接口可以暴露出来,让前端的或者后台的调用,而存储可以换成xml/xaml和数据库。这样的好处就不言而喻了。 阅读全文

仿花田:内部相亲网站 意中人(Asp.net MVC,Bootstrap2)

2013-12-02 16:28 by stoneniqiu, 7916 阅读, 收藏, 编辑
摘要:起因: 那是七月份了,看见单身的同事在上花田网,当时觉得风格比较清新,还没有世纪佳缘等那些网站那么商业化,加上又看到了bootrstrap,于是就想做个demo出来玩玩。中间自己又在做其他的事情,和web没有关系,也想没事的时候也可以练练web,到上个星期,干脆就发布在公司的内网了。没想到同事们mail一传,现在都有200多个人(我的公司是个制造业,这边全部的职工有2w+的人,除了产线上的小妹妹们,有电脑的也有好几千)注册了。 阅读全文

ASP.Net MVC3 图片上传详解(form.js,bootstrap)

2013-11-19 19:32 by stoneniqiu, 4550 阅读, 收藏, 编辑
摘要:图片上传的插件很多,但很多时候还是不能切合我们的需求,我这里给大家分享个我用一个form,file实现上传四张图片的小demo。完全是用jquery前后交互,没有用插件。 基本思路:用户点击相关div触发file元素打开浏览框----》用setInterval不断检测file文件是否选中文件---》选中之后触发form自动提交到后台---》后台将文件存储到临时文件夹返回图片在临时文件夹的地址---》窗口提示上传功能并预览图片---》用户点击发布---》后台保存图片(移动到指定文件夹,并存入数据库) 阅读全文

BugTracker 功能说明(有图有真相)

2013-11-18 16:28 by stoneniqiu, 1938 阅读, 收藏, 编辑
摘要:BugTracker是基于Asp.Net,C#, SqlServer的一个web端Bug管理系统。发布在IIS上。能够对不同项目,不同组织,不同人员的bug进行管理和更新设计优先级和用户权限。目前最新版本:3.6.2 这里介绍下它的主要功能 阅读全文

Bug Tracker 使用笔记(有图有真相)

2013-11-11 16:06 by stoneniqiu, 1709 阅读, 收藏, 编辑
摘要:目的:管理Bug,完善业务流程。 前提条件:BugTracker是基于IIS和SQL Server和Asp.Net的。相当于一个Web端的管理系统。 阅读全文

WPF Dispatcher 一次小重构

2013-10-22 23:24 by stoneniqiu, 2516 阅读, 收藏, 编辑
摘要:Dispatcher 重构 阅读全文

Wix 安装部署(五) Bootstrapper 捆绑安装

2013-10-21 16:37 by stoneniqiu, 5376 阅读, 收藏, 编辑
摘要:Wix的xml配置确实很费劲,忍不住有点像吐槽一下,前四篇完成的功能在Windows Installer中通过配置能很快的弄出来。可惜有很多加了锁的功能在InstallShield Limited Edition 版本中是用不了的。 但基本满足安装需求了。按照这个目录一个一个去配,配出来的也像样了(这里就不说了)。但是无法定制行为,以及打补丁等。wix又是一个极端,完全依赖xml。这两天想解决自动检测.net framework版本没有就自动安装的功能和注册dll的就很费劲。 在Windows Installer中分别在Redistributables和Registry中设置就行了,特别是注册,可以直接把目录从你自己的电脑上拖过来。但今天要讲的,就是wix中的Bootstrapper 项目,制作一个捆绑安装程序,也是Windows Installer中没有的。将多个需要安装的文件,按照顺序一次性装完。 阅读全文

Wix 安装部署教程(四) 添加安装文件及快捷方式

2013-10-12 15:12 by stoneniqiu, 5608 阅读, 收藏, 编辑
摘要:通过之前三篇的介绍,大家对wix的xml部署方式也应该有一些认识,今天天气不错,再来一发。主要介绍桌面,开始菜单,卸载等功能的如何添加。希望园友们支持! 主要讲解用wix添加文件,菜单,卸载,网页,桌面的快捷方式 阅读全文

Wix 安装部署教程(三)自定义安装界面和行为

2013-10-11 22:35 by stoneniqiu, 7602 阅读, 收藏, 编辑
摘要:接上一篇自定义安装界面,这篇继续探索,首先介绍下,Wix为我们定义了五种风格,每种风格的UI都是有一定顺序的。我们可以改变安装顺序,也可以完全自定义一个Dialog插入其中。比如Wix_Mondo 风格的顺序就是,不一定完全会在安装的时候展示。 阅读全文

Wix 安装部署(二)自定义安装界面和行为

2013-10-09 22:37 by stoneniqiu, 6504 阅读, 收藏, 编辑
摘要:wix自定义安装界面及行为 阅读全文

EntityFramework5.0 数据迁移笔记--解决模型变化重建数据库的问题

2013-06-04 17:29 by stoneniqiu, 1911 阅读, 收藏, 编辑
摘要:用了Codefirst后最大的困扰就是数据变化引起数据库的删除再新建,这样会造成数据丢失,musicstore中介绍的播种办法也只能满足下测试的需要。在EntityFrameWork5.0中引入了数据迁移功能能很好的解决这个问题。 步骤一:需要EF5.0,最好用NuGet来安装。工具-->... 阅读全文

MVC 下分离业务逻辑,优化修改

2013-04-08 19:22 by stoneniqiu, 1348 阅读, 收藏, 编辑
摘要:1.使用数据库单例模式容易造成数据库连接冲突,因此最好的方案应该是访问一次数据库后应该马上断开连接。即使用Using。2.需要仓库,即实现接口的方法。 public interfaceIUserDbRepository:IBaseDbRepository ....... public classUserDbRepository: IUserDbRepository.........3.运用反射获取到对象类型再来各自处理4.建立空的对象,避免重复代码5.用字典来传递需要修改的属性 这样就比较灵活。 如果全部修改对象 容易造成错误6.深浅复制。copier public void Update(. 阅读全文

dotnetcharting.dll 菜鸟笔记

2012-06-11 13:28 by stoneniqiu, 458 阅读, 收藏, 编辑
摘要:一直想知道如何用asp.net 画出漂亮的图,以便更好的呈现数据库中的数据开始用Bitmap Graphics pen 等一条线一条线的画,但出来的效果还是不好看。在网上知道了dotnetcharting.dll 这个组件,摸索了两天终于知道怎么用了。比那个梅花雨日历复杂一些~~~下載dotnetcharting.dll 文件 加入bin文件夾中重写一个类,方便直接调用。这个网上代码很多,但让个namespace搞糊涂了,因为新建的class文件没有这个关键字。反正我就往里套。 using System.Text;using dotnetCHARTING;using System.Drawin 阅读全文