代码改变世界

随笔分类 -  .Net

程序员之网络安全系列(五):数字证书以及12306的证书问题

2016-01-12 15:12 by 敏捷的水, 5924 阅读, 收藏, 编辑
摘要: 如何防止中间人攻击,以及为什么12306网站的锁在地址栏里没有变绿 阅读全文

程序员之网络安全系列(四):数据加密之非对称秘钥

2016-01-12 09:07 by 敏捷的水, 3284 阅读, 收藏, 编辑
摘要: 1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提出一种新的密钥交换协议,允许在不安全的媒体上的通讯双方交换信息,安全地达成一致的密钥,这就是“公开密钥系统”。相对于“对称加密算法”这种方法也叫做“非对称加密算法”。 阅读全文

程序员之网络安全系列(三):数据加密之对称加密算法

2016-01-11 15:15 by 敏捷的水, 5075 阅读, 收藏, 编辑
摘要: 要想不让别人看到数据,那么我们就们就需要对数据加密。 **加密技术** 是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。 加密包括两个元素:算法和密钥。一个加密算法是将普通的文本(或者可以理解的信息)与一窜数字(密钥)的结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解码的一种算法。 阅读全文

程序员之网络安全系列(二):如何安全保存用户密码及哈希算法

2016-01-11 08:51 by 敏捷的水, 7554 阅读, 收藏, 编辑
摘要: 在很多网站的早期,甚至是现在仍然有一些网站,当你点击忘记密码功能时,你的邮箱会收到一封邮件,然后里面赫然写着你的密码,很多普通用户还会觉得庆幸,总算是找回来了,殊不知,这是多么可怕地一件事,说明了网站是“几乎是”明文存储你的密码,一旦数据用户数据泄露或者被拖库,那么用户密码将赤裸裸的暴露了,想想之前几次互联网密码泄露事件。 阅读全文

程序员之网络安全系列(一):为什么要关注网络安全?

2016-01-08 10:17 by 敏捷的水, 8569 阅读, 收藏, 编辑
摘要: 大家都知道最近几年闹的沸沸扬扬的网络安全事件,之前的CSDN密码泄露,不久前的网易邮箱密码泄露,那么如果你的密码泄露,除了本身的网站外,还有很多人其它很多地方甚至银行密码都使用相同的密码,从而带来了很大的麻烦,据说“半个” 互联网的库都被人拖过。 阅读全文

单元测试及最佳实践

2016-01-07 09:59 by 敏捷的水, 11141 阅读, 收藏, 编辑
摘要: 在工作中或者在面试中,我经常碰到的开发人员就是对单元测试不重视,这一类基本上都表现出了一种“无知的自信”,总觉得自己写的代码质量很高,直到一次次虫子(Bug)把自己咬的头破血流时,才发现原来自己的代码已经到了剪不断理还乱的状态,而每一次修改一个bug,都需要走一遍“墨镜迷宫” (看上图)。还有很多人知道单元测试或者写出了单元测试,但是就是写了一个方法,上面标注了一个[Test]属性而已,甚至很多的人单元测试上面标注的是[IgnoreTest], 每次看见这些,我都深深的感到推行单元测试之路是艰难的,是遥远的,但是我依然坚信是是渴望也可及的,只要有着深深的信念,坚强的意志,无谓的勇气,一头扎进去泥巴堆里,假以时日,当大雨来临,必将带走泥巴,从此你拔剑扬眉,哦,你不用拔剑了,因为你就是剑。。。 阅读全文

前端构建大法 Gulp 系列 (四):gulp实战

2016-01-06 09:41 by 敏捷的水, 10428 阅读, 收藏, 编辑
摘要: "前端构建大法 Gulp 系列 (一):为什么需要前端构建" "前端构建大法 Gulp 系列 (二):为什么选择gulp" "前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家" "前端构建大法 Gulp 系列 (四):gulp实战" 前面讲了很多理论,那么这一... 阅读全文

前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家

2016-01-05 08:50 by 敏捷的水, 9146 阅读, 收藏, 编辑
摘要: gulp 本身能做的事情非常少,主要是通过插件来提供各种功能,gulp本身只提供了4个非常简洁的API, 掌握这4个API你就基本掌握了gulp的全部。 [前端构建大法 Gulp 系列 (一):为什么需要前端构建; 前端构建大法 Gulp 系列 (二):为什么选择gulp; 前端构建大法 Gulp 系列 (三):gulp的4个API 让你成为gulp专家; 前端构建大法 Gulp 系列 (四):gulp实战 阅读全文

前端构建大法 Gulp 系列 (二):为什么选择gulp

2016-01-03 09:36 by 敏捷的水, 9293 阅读, 收藏, 编辑
摘要: 在上一篇 [前端构建大法 Gulp 系列 (一):为什么需要前端构建](http://www.cnblogs.com/cnblogsfans/p/5093012.html) 中,我们说了为什么需要前端构建,简单一句话,就是让我们的工作更有效率。 相信熟悉前端的人对Grunt一定不陌生,实际上我自己之前的很多项目也是在用Grunt, Grunt的出现是前端开发者的福音,大大减少了前端之前很多手工工作的繁琐以及我上一篇 [前端构建大法 Gulp 系列 (一):为什么需要前端构建](http://www.cnblogs.com/cnblogsfans/p/5093012.html) 提到的那些问题。 那么既然Grunt可以做到几乎所有的事情,那么为什么我们需要Gulp呢? 阅读全文

前端构建大法 Gulp 系列 (一):为什么需要前端构建

2016-01-01 09:39 by 敏捷的水, 8571 阅读, 收藏, 编辑
摘要: 我们都知道使用IDE编写后端程序时,我们都需要Build, 对.NET来说,我们一般需要使用Visual Studio来确保我们的项目编译通过,而且项目编译通过是对所有程序员的基本要求。 但是,由于很多后端程序员对前端的很多东西不了解,导致在做WEB项目时出现了一些问题。 阅读全文

一小时学会C# 6

2015-12-29 16:55 by 敏捷的水, 20736 阅读, 收藏, 编辑
摘要: C# 6的新特性不是很多,有些非常有用,有些则意义不大,主要有字符串插值 (String Interpolation)、空操作符 ( ?. )、 NameOf、在Catch和Finally里使用Await、表达式方法体、 自动属性初始化器、只读自动属性、异常过滤器 Exception Filter、Index 初始化器、using 静态类的方法可以使用 static using。 如果你有一定的C#基础,相信你一个小时可以掌握,然后勇敢的开始使用C#6吧。 阅读全文

.NET WEB程序员需要掌握的技能

2015-12-28 08:50 by 敏捷的水, 13723 阅读, 收藏, 编辑
摘要: 本文包括基础,提高,进阶,扩展,以及推荐书籍。本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章,很多人觉得比较有用,说是看了后知道一步步怎么学,这个让我受宠若,另外我看到有些同学文章引用了这部分,但是格式很乱看不清楚,所以我就重新整理一下在博客园发一下,希望对更多人有用,也希望大家补充。 阅读全文

微软程序员最好的时代来了

2015-12-23 16:08 by 敏捷的水, 24465 阅读, 收藏, 编辑
摘要: .NET可以开发桌面程序,可以开发WEB, 可以开发移动程序,C#, WCF, WPF, ASP.NET WEB API, ASP.NET MVC, Xamarin, Microsoft Azure, DDD 这些你都熟悉了吗?每过一段时间就有人跳出来说微软不行了,.NET不行了,然后就去舔Java, 但是一直让我觉得比较奇怪的是,几年以后那些人还在用.NET,而且继续喷着.NET, 舔着JAVA, 在我看来,这些人和那些天天喷自己的公司,却依然在那个公司,天天喷中国,却依然在中国的那些人是一样的。 阅读全文

Get All Cultures in .Net

2010-03-25 12:47 by 敏捷的水, 552 阅读, 收藏, 编辑
摘要: This example shows how to get all culture names in the .NET Framework. Use static method CultureInfo.Get Cultures. To get associated specific culture use static method CultureInfo.Cre­ateSpecificC... 阅读全文

svn实例

2010-03-21 11:28 by 敏捷的水, 4660 阅读, 收藏, 编辑
摘要: 签出 svn checkout URL path 签出指定版本 svn checkout –r rev URL 签出指定指定日期 svn checkout –r “{date}” URL 查看工作拷贝从哪里来 svn info path 更新工作拷贝 svn update 添加文件到工作拷贝 svn add path 设置文件或者目录的属性 svn ... 阅读全文

Subversion命令汇总

2010-03-21 10:15 by 敏捷的水, 6288 阅读, 收藏, 编辑
摘要: svn 命令共同的选项 --targets list 读取list并将其解释为一个将要操作的参数列表 --non-recurisive, –N 只操作单个目录,不处理子目录 --verbose, –v 打印额外的信息 --quiet, –q 打印的信息尽可能少 --username, name 指定在连接授权时使用的用户名 --password, pawd 指定... 阅读全文

正则表达式:为站内链接加上域名

2010-01-24 11:42 by 敏捷的水, 1354 阅读, 收藏, 编辑
摘要: 1、测试文本 <a href='http://search/a.aspx'>home</a><a href='/aab/bb'>hello</a><a href='http://www.sohu.com'>sohu</a><p>sdfsf</p><a href="/aab/bb&quo... 阅读全文

设计模式:工厂方法

2009-11-26 14:16 by 敏捷的水, 414 阅读, 收藏, 编辑
摘要: 在简单工厂模式中,将实例化对象的工作推迟到了专门负责创建对象的工厂类中,可以根据我们预知动态创建产品类。但是,一旦客户的变化超过预知我们就必须修改我们的源代码(FoodShop工厂)了。 switch (foodName){ case "Sugar": return new Sugar(); case "Bread": return new Bread()... 阅读全文

设计模式:简单工厂

2009-11-26 13:47 by 敏捷的水, 494 阅读, 收藏, 编辑
摘要:          简单工厂的作用是实例化对象,而不需要客户了解这个对象属于哪个具体的子类。          简单工厂实例化的类具有相同的接口,在类有限并且基本不需要扩展时,可以使用简单工厂。例如,数据库连接对象,常用的数据库类类可以预知... 阅读全文

设计模式:单件模式

2009-11-26 11:43 by 敏捷的水, 508 阅读, 收藏, 编辑
摘要: Singleton模式要求一个类有且仅有一个实例,并且提供了一个全局的访问点。 1. 单线程时方法 public sealed class Singlton{ static Singlton instance = null; Singlton() { } public static Singlton Instance { get { if (instance == null) { return... 阅读全文