代码改变世界

随笔分类 -  C#|.Net

面向.Net程序员的Sql版本管理

2015-03-13 15:09 by 熬夜的虫子, 3168 阅读, 收藏, 编辑
摘要: 代码版本管理基本上程序员们都知道 TFS GIT SVN等等 但是对于数据库版本管理 java程序员或许会了解一些 但是.Net程序员收获的资料应该不多。特别是现在云概念使用越来越广的情况下,与应用程序开发和部署常规管理数据库更改在一起便成为一个难题。这里就分享一个用来进行sql版本管理的.net程... 阅读全文

分享改进 完全定制自己的代码生成器

2015-03-12 09:51 by 熬夜的虫子, 4280 阅读, 收藏, 编辑
摘要: codesmith确实是款不错的工具 但是它并不开源 对于一些有自己特殊需求的用户只能自己另想其他解决方案 例如我说想做一个web版本的代码生成器或者说用户没有c#基础这里开源一个之前做过的工具 当初的目的主要是解决在框架当中局部更新的问题 因为在大部分orm框架当中都是简单的获取一个实体 然后这个... 阅读全文

面向.Net程序员的后端性能优化实战

2015-02-03 18:17 by 熬夜的虫子, 5350 阅读, 收藏, 编辑
摘要: 最近2个月没做什么新项目 完全是对于旧的系统进行性能优化 避免超时 死锁 数据处理能力不够等常见的性能问题这里不从架构方面出发 毕竟动大手脚成本比较高 那么我们以实例为前提 从细节开始优化角度一.业务逻辑优化二.DB优化三.数据处理优化四.锁与性能五.cpu飙高小结六.crash现象分析业务逻辑优化... 阅读全文

一个winform带你玩转rabbitMQ

2014-10-10 19:24 by 熬夜的虫子, 26153 阅读, 收藏, 编辑
摘要: 源码已放出https://github.com/dubing/MaoyaRabbit本章分3部分一、安装部署初探二、进阶三、api相关安装 部署 初探先上图一. 安装部署 下载 rabbitMQ :http://www.rabbitmq.com/download.html 安装rabbitmq需... 阅读全文

vs多项目模板及add-in开发

2014-09-16 13:58 by 熬夜的虫子, 4647 阅读, 收藏, 编辑
摘要: 本文分2部分 第一为自定义多项目模板 第二为vs add-in开发效果图1.自定义模板2. 工具菜单3.窗口4.工程5.文件...一. 多项目模板单项目模板做起来很简单 选中一个项目在文件一栏中选中导出模板然后选择项目模板在最后一项向导会给出你的输出路径,一般都是系统的用户文档路径+\Visual ... 阅读全文

面向.Net程序员的前端优化

2014-08-06 17:20 by 熬夜的虫子, 8112 阅读, 收藏, 编辑
摘要: 背景 作为web开发人员大家大多了解一些网站的性能优化方法,其实大部分方法都不复杂,例如针对前端js和css的压缩来减少请求大小,通过合并来减少请求次数。这里站在.Net后端程序员的角度来看一下如何最简单快捷的处理这一类需求。 全文分3节 combres,mvc4的Bundle,以及2者的对比和... 阅读全文

面向.Net程序员的dump分析

2014-07-30 17:31 by 熬夜的虫子, 20012 阅读, 收藏, 编辑
摘要: 背景 Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。在 Windows 系统上, dump 文件分为内核 dump 和用户态 dump 两种。前者一般用来分析内核相关的问题,比如驱动程序;后者一般用来分析用户态程序的问题。 一般的程序员可能接触不到dump文件... 阅读全文

【网络安全】(一) 0成本添加访问级监控

2014-07-24 11:13 by 熬夜的虫子, 1949 阅读, 收藏, 编辑
摘要: 互联网的安全感这个概念源于阿里。顾名思义,让互联网的用户对于web产品能够产生足够的信任和依赖。特别是涉及到用户资金交易的站点,一次严重的用户资料泄露就可以彻底毁掉你的品牌。然而当前阶段除了bat大部分互联网行业的企业对于网络安全给的重视都不够分量。所以网上充斥了各种脱库,泄密,钓鱼。某个知名大型技... 阅读全文

【C#|.NET】从细节出发(三) 逻辑层事务和page object模式

2014-07-17 12:29 by 熬夜的虫子, 1945 阅读, 收藏, 编辑
摘要: 一. 业务逻辑层的事务问题如果你的程序分层清晰并且系统禁用复杂存储过程,那么在DA中的职责比较单一。程序的逻辑通过BLL调用各种不同模块的DA来实现数据操作。如果当需要不同模块在一个事务的时候,问题就产生了。如果你在bll引用System.Data...或者你在DA中穿插各种复杂逻辑的时候基本上你的... 阅读全文

【C#|.NET】lock(this)其实是个坑

2014-06-30 15:01 by 熬夜的虫子, 30557 阅读, 收藏, 编辑
摘要: 这里不考虑分布式或者多台负载均衡的情况只考虑单台机器,多台服务器可以使用分布式锁。出于线程安全的原因,很多种场景大家可能看代码中看到lock的出现,尤其是在资金类的处理环节。 但是lock(this)真的达到你的需求了吗?下面用实例来说明 理论常识不多说,回到业务场景,举个例子我们的需求一般就... 阅读全文

分享一个web应用程序池管理工具

2014-05-05 16:17 by 熬夜的虫子, 2703 阅读, 收藏, 编辑
摘要: 因为项目在联调阶段由于各种各样的原因需要重启应用程序池,而调试服务器基本都需要远登操作。同样的情况也会发生在线上,如果公司权限控制得比较严格,每次都要多部门的服务器权限申请的话有点麻烦,所以抽点时间取巧做了个web版的管理工具(根据自己公司的企业文化酌情考虑是否线上应用)。功能:兼容iis6和iis... 阅读全文

【C#|.NET】从细节出发(二) 善用泛型 委托

2013-03-26 18:32 by 熬夜的虫子, 2320 阅读, 收藏, 编辑
摘要: 系列文章完成后 源码发布在我的GIT上 https://github.com/dubing/文章仅代表个人观点 旨在交流 欢迎讨论正文 按照上一篇结尾留下的话题,本篇着重对数据库操作方面也就是常用工厂模式的地方来进行泛型 委托方向的使用。 一般大型项目中大家都喜欢依赖注入的方式来数据库操作进行设... 阅读全文

【C#|.NET】从细节出发(一) 通用接口 aop dto 相关

2013-03-25 16:14 by 熬夜的虫子, 4499 阅读, 收藏, 编辑
摘要: 系列文章完成后 源码发布在我的GIT上 https://github.com/dubing/文章仅代表个人观点 旨在交流 欢迎讨论背景 随着信息化的普及,信息系统越来越多,通常不同系统是采用不同的技术基于不同平台开发的,缺乏统一规划、统一数据标准、统一调用接口,因此系统之间的交互变得很困难.通常大... 阅读全文

.Net 玩自动化测试

2013-03-21 15:07 by 熬夜的虫子, 5064 阅读, 收藏, 编辑
摘要: 源码地址 https://github.com/dubing/YoukuAutomation背景 标题看似新颖实际上这里的自动化在很大范围内限定在web测试上,和loadrunner测试脚本类似,也都是测试工程师常用的概念。当然作为.net应用,你也可以用在产品演示上。 我使用的背景是在持续集成... 阅读全文

.Net 玩单反

2013-03-20 13:26 by 熬夜的虫子, 6970 阅读, 收藏, 编辑
摘要: 就如标题所示了 源码地址 https://github.com/dubing/CannonSDKandWia/背景一年多没逛园子了,换了个行业圈子,感觉自己太花心了点,不过能接触到不同的研发文化也算有点收获,游戏圈子的技术流、电商圈子的业务流、媒体圈子的艺术流等等。这个应用产生的背景是让单反相机自动化,本身老大的意思是想做针对usb接口的编程,不过太底层的技术用c#来做不是很合适。讨价还价了一番,那就针对单反来做吧。假设一个场景,我们需要N台单反设备瞄准一朵花,每隔30秒拍一张照片并且自动发到微博上。技术点 佳能SDK WIA标准 佳能sdk提供了dll给.net开发者引用,通过对sdk... 阅读全文

.Net 玩视频

2012-02-22 15:16 by 熬夜的虫子, 4472 阅读, 收藏, 编辑
摘要: 由于平台的特点 用.net做视频网站的不多 作为兴趣研究下背景经常上土豆 youku的朋友可能会发现播放的视频格式大多是flv格式的 那么我们先来扫盲下flvFLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。更多参考百科 http://baike.baidu.com/view/364757.htm但是用户手上的资源未必都是flv格式,所以需要格式转换。这里介绍2款工具FFm 阅读全文

【C#|.NET】分布式锁服务

2012-01-16 17:58 by 熬夜的虫子, 9237 阅读, 收藏, 编辑
摘要: 背景 分布式锁服务在大家的项目中或许用的不多,因为大家都把排他放在数据库那一层来挡。当大量的行锁、表锁、事务充斥着数据库的时候,不如换个角度思考问题。一般web应用很多的瓶颈都在数据库上,这里给大家介绍的是减轻数据库锁负担的一种方案。简介 如果我们的需求很简单,例如对于用户的账户资金,要保证原子性操作。并且不同的客户端在同一时间内只能提交一个对象操作。lock、单例?!在单台上还可以,但是大型web项目上,负载均衡是常用的技术手段手段,同一意义的对象可能存在不同的副本,这时我们又如何保证排他操作。数据库的事务!除了这个,接下来我们引出本章的主题、分布式锁服务。 一个简单的锁服务实现起... 阅读全文

【C#|.NET】利用FastDFS打造分布式文件系统

2012-01-09 11:17 by 熬夜的虫子, 15889 阅读, 收藏, 编辑
摘要: 关于分布式文件系统 之前已经写过一些随笔 不过没怎么用心 本篇详细的整理一下背景 海量存储、系统负载的迁移、服务器吞吐的瓶颈等等 让文件系统独立于业务系统 提高整个项目的扩展性以及可维护性 目前主流的方案 MFS FASTDFS GFS LUSTRE HADOOP等等 我选择的是FASTDFS 用一句广告语来说 “免费、快速、找得到”。FASTDFS的作者是淘宝的资深架构师余庆,很诙谐、很有爱!!!其他方案还没玩过 暂不评论。简介 FastDFS是一款开源的轻量级分布式文件系统纯C实现,支持Linux、FreeBSD等UNIX系统类google FS,不是通用的文件系统,只能通过专有... 阅读全文

【C#|.NET】跳出一致性Hash算法 打造更高效的分布式缓存

2011-12-30 18:11 by 熬夜的虫子, 6291 阅读, 收藏, 编辑
摘要: 前文 所谓“高效”,觑头而已。背景 谈到分布式缓存,大家首先想到的是memcached。确实memcached是目前最流行的方案之一。不过很多互联网公司不用memcached,例如新蛋。为什么不选择memcached呢,命中率?热插拔?还是性能。这里先不放结论,用事实来说话。算法篇 -1.除余法 如果你手上有老版本的memcache官方文档。你会发现他们用的是除余法来保持节点的一致性。假如你有N台缓存服务器,你需要将某个对象set进某一台节点上。用hash取模这样可以很均匀的保证每台的负载。那么,作为最基本的轮询算法,是否适合分布式缓存我们来看实例。这里假设有4台缓存节点,先设置除余... 阅读全文

【C#|.NET】长话短说 分布式通信方案综合测评

2011-12-27 16:56 by 熬夜的虫子, 4534 阅读, 收藏, 编辑
摘要: 如果你应聘互联网企业的架构师 分布式解决方案属于必问环节 因为流行SOA 关于SOA就不废话了 网上资源很多 重视4个字“基于消息”本篇只测评大家项目中常用的几种Remoting(TCP,HTTP,IPC)WCF(basicHttpBinding,netTcpBinding)HessianMSMQWebService......环境介绍客户机 windows Xp服务器 windows2003(虚拟机)带宽2M测试环境和线上环境差距比较大 我们看相对性就可以了所有方案基于相同远程对象 public class DtoClass : MarshalByRefObject { ... 阅读全文