.Net开发

摘要: “深蓝词库转换”是我在闲暇时写的一个词库转换程序,实现了各种输入法的用户词库、网络词库(细胞词库)之间的相互转换。 目前支持的输入法有: PC端: *搜狗拼音 *QQ拼音 *QQ五笔(纯汉字) *谷歌拼音 *搜狗五笔 *紫光拼音 *拼音加加 手机端: *QQ手机拼音 *百度手机拼音 阅读全文
posted @ 2010-10-08 01:09 深蓝 阅读(2582) | 评论 (5) 编辑
摘要: 以前在搜狗拼音输入法和QQ拼音输入法之间纠结,手机上用的又是百度手机输入法(也就是之前的点讯梅花输入法),在不断纠结的过程中,所以写了一个小工具,实现了各个输入法之间的词库互转,最近收到一些来信,才知道原来大家都有词库互转的需求,我无心插柳的一个小工具被很多人使用了。于是乎,想到将功能进行增强,弥补上一个版本留下的遗憾,经过一天的努力,终于把搜狗细胞词库的scel格式解析出来了,于是我的深蓝词库转换1.1发布了!阅读全文
posted @ 2010-07-02 17:32 深蓝 阅读(4669) | 评论 (3) 编辑
摘要: 我以前用的是搜狗拼音,但是有一次我的词库数据莫名其妙的丢失后,而且发现搜狗拼音的词库不能导出为纯文本,所以我就放弃搜狗使用QQ拼音了。昨天看到搜狗拼音推出了云输入法,真是让我眼前一亮,真是很有创意的一个输入法,就因为搜狗推出了该输入法,因为他们的创意,所以我决定回到搜狗拼音。 要回归搜狗拼音输入法,那么词库问题是一个很严重的问题,就看我怎么解决了。阅读全文
posted @ 2009-11-03 11:10 深蓝 阅读(1248) | 评论 (1) 编辑
摘要: FCKEditor是开源的富文本编辑器,其免费、跨浏览器跨平台的特点使得其在项目中得到了广泛的应用。但是FCKEditor的附件(文件、图片、Flash等)是上传保存到Web服务器的,在只有一台Web服务器的情况下没有什么太大的问题,但是如果我们的系统有多个Web服务器实现NLB(网络负载均衡),那么用户将附件上传到其中一台Web服务器上保存,其他用户在访问另外一台Web服务器时将无法读取文件。对于这种多Web服务器实现NLB的情况我们可以修改其源代码实现将附件保存到数据库中。阅读全文
posted @ 2009-10-10 00:27 深蓝 阅读(3207) | 评论 (6) 编辑
摘要: FCKEditor本身非常强大,但是不知道为什么,默认情况下只支持上传图片和Flash,不支持上传一般的附件。网上有修改FCKEditor源代码,然后重新编译成dll,再放在服务器上。这种方法太麻烦了,经过简单的调试了下FCKEditor的代码,发现可以通过直接修改配置文件来上传文件。阅读全文
posted @ 2009-09-23 21:52 深蓝 阅读(1203) | 评论 (2) 编辑
摘要: 我在上一篇文章中讲到了如何使用C#模拟用户登录具有验证码网站。今天我就换位思考一下,站在网站开发人员的角度讲一讲验证码的的一个安全问题:及时销毁网站中的验证码。

为了方便大家理解,这里我就以一个投票的应用网站为例进行说明。投票网站首先要防止的就是用户不断点击投票按钮来重复投票;阅读全文
posted @ 2008-06-04 03:38 深蓝 阅读(3377) | 评论 (29) 编辑
摘要: 前几天同事问我一个问题,一种CS架构的程序,直接把SQL Server作为服务端,每个客户端直接连接数据库操作,如果客户端打开的数量过多时SQL Server的连接数将会特别高,数据库端形成性能瓶颈,这种情况下怎么办?想了想,造成这种情况的原因是ADO.NET的内部机制造成的。ADO.NET中为了提高性能,所以使用了连接池,这样每个请求就不必都创建一个连接,然后认证,然后执行SQL,而是从连接池中直接取出连接执行SQL,执行完成后也并不是真正关闭连接,而是将该连接重新放回连接池中。如果有100个客户端,每个客户端在使用一段时间后连接池中保存了10个连接,那么在这种情况下,即使不在客户端做任何操作,SQL Server上都有1000个连接,这样不出性能问题才怪。
既然是连接池的问题,那么我就针对该问题想到了2个解决办法:
阅读全文
posted @ 2008-05-16 02:10 深蓝 阅读(2793) | 评论 (4) 编辑
摘要: 我在上一篇文章中已经讲解了一般网站的登录原来和C#的登录实现,很多人问到对于使用了验证码的网站该怎么办,这里我就讲讲验证码的原理和对应的登录方法。

验证码的由来

几年前,大部分网站、论坛之类的是没有验证码的,因为对于一般用户来说验证码只是增加了用户的操作,降低了用户的体验。但是后来各种灌水机器人、投票机器人、恶意注册机器人层出不穷,大大增加了网站的负担同时也给网站数据库带来了大量的垃圾数据。为了防止各种机器人程序的破坏,于是程序员想出了只有人眼能够识别的,程序不容易识别的验证码!

验证码是一个图片,将字母、数字甚至汉字作为图片的内容,这样一张图片中的内容用人眼很容易识别,而程序将无法识别。在进行数据库操作之前(比如登录验证、投票、发帖、回复、注册等等)程序首先验证客户端提交的验证码是否与图片中的内容相同,如果相同则进行数据库操作,不同则提示验证码错误,不进行数据库操作。这样各种机器人程序就被拒之门外了!

但是随着计算机科学的发展,模式识别等技术越来越成熟,于是编写机器人程序的家伙可以通过程序将直接写在图片中的内容识阅读全文
posted @ 2008-05-08 02:19 深蓝 阅读(17126) | 评论 (54) 编辑
摘要: 我们在写灌水机器人、抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录。那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的。
HTTP协议是一个无连接的协议,也就是说这次对话的内容和状态与上次的无关,为了实现和用户的持久交互,网站与浏览器之前在刚建立会话时将在服务器内存中建立一个Session,该Session标识了该用户(浏览器),每一个Session都有一个唯一的ID,第一次建立会话时服务器将生成的这个ID传给浏览器,浏览器在接下来的浏览中每一个发向服务器的请求中都将包含该SessionID,从而标识了自己的身份。
阅读全文
posted @ 2008-05-06 02:31 深蓝 阅读(11999) | 评论 (50) 编辑
摘要: 前一篇文章中已经学习了AMF数据类型,那么接下来就要将一个完整的AMF文件的封装格式了。

AMF文件总体来说分为4部分:前言(Preamble)、AMF头、AMF主体和主体的响应。
阅读全文
posted @ 2008-04-11 01:58 深蓝 阅读(2080) | 评论 (15) 编辑
摘要: AMF是Action Message Format协议的简称,AMF协议是Adobe公司自己的协议,主要用于数据交互和远程过程调用,在功能上相当于WebService,但是AMF与WebService中的XML不同的是AMF是二进制数据,而XML是文本数据,AMF的传输效率比XML高。AMF使用HTTP方式传输,目前主要是用于ActionScript中,即实现Flex和Server之间的通信。阅读全文
posted @ 2008-04-09 00:27 深蓝 阅读(7477) | 评论 (8) 编辑
摘要: 在项目中有时需要将整个业务逻辑类下面的方法封装成Web服务,由于只是简单的封装,在Web服务的后台代码中不会写上任何逻辑,这时我们就需要Web服务提供的方法与类下面提供的方法相同,这是就考虑到使用接口。申明一个接口,然后让业务逻辑类和Web服务类都实现该接口即可。这里我们就要用到VS中一个很好的功能:重构!阅读全文
posted @ 2008-03-18 11:52 深蓝 阅读(2450) | 评论 (6) 编辑
摘要: 在项目中经常遇到树状结构的对象比如产品分类、部门结构、地区……对于这类对象的呈现,一般都使用树控件(比如VS2005自带的TreeView控件)。但是树控件的使用和操作都比较复杂,对于一些比较简单的操作,比如单选其中的一个节点的情况则可用使用下拉列表框来代替。要在DropDownList中展示出树结构的层次,那就必须在每个节点的Text前加入一定的占位符,以实现层次的效果。
由于这种下拉列表控件在项目中经常使用,于是决定写一个通用的服务器控件出来。该控件继承自DropDownList,在使用中只需要为该控件设置用于数据绑定的DataTextField和DataValueField,以及新增的属性ChildProperty(string,对象的Child属性的名字)和DeepChar(string,在表示层次中使用的占位符,默认是“--”),设置了这4个属性后,在后台就只需要将树结构对象的Root节点作为DataSource,然后执行DataBind()即可。
阅读全文
posted @ 2008-02-25 10:45 深蓝 阅读(4069) | 评论 (11) 编辑
摘要: 有时我们需要将枚举定义为1,2,4,8.......的值,这样当传入一个3,那么就是表示1,2的组合,如果传入7,那就表示1,2,4的组合。要实现这种功能我们需要用到FlagsAttribute。阅读全文
posted @ 2007-10-15 12:25 深蓝 阅读(230) | 评论 (0) 编辑
摘要: 今天同事推荐给我一个用于重构的超级好用的工具,于是百度了一下,在霏凡找到了破解版 下载安装好后第一次运行比较慢,由于我打开的项目比较大,ReSharper会对项目中的每个源代码文件进行分析和相关Dll进行反射分析并建立相关缓存,所以花费时间比较多. .......阅读全文
posted @ 2007-08-21 17:33 深蓝 阅读(437) | 评论 (1) 编辑
摘要: 在做项目时,我们一般会将aspx文件和其后台cs文件分开,然后将后台的cs文件编译成dll发布到生产环境中。如果我们的项目规定是每周1发布一次,现在发布后第二天客户在其中某个页面发现一个Bug导致业务无法正常处理,这个时候我们的项目正在添加新的功能,编码还没有完成,不可能为了这一个页面而将这没有完成的整个项目重新发布到生产环境中,这个时候怎么办拉?
我们知道aspx运行有两种模式,一种是编译运行,一种是解释运行.编译运行就是我们将后台c#代码编译成Dll,在aspx页面运行时调用这个dll来执行.而解释执行就是像是asp一样将后台代码和页面代码放在同一个aspx页面上,由IIS解释c#代码来运行.于是我们想到的解决办法就是专门针对这个页面把其后台CS代码中的bug修正,测试没有问题了,然后将后台cs文件转移到aspx文件中,让将这个新的aspx文件复制到正式环境中,覆盖原来错误的aspx文件。
将后台的cs代码转移到页面上主要是做如下操作:
1.去掉aspx头Page部分的CodeFile属性,这个属性指示了页面的后台文件的文件名.
2.在Page中添加阅读全文
posted @ 2007-07-25 15:25 深蓝 阅读(4172) | 评论 (30) 编辑


我要啦免费统计