上传图片之上传前判断文件格式与大小
摘要:上传图片之上传前判断文件格式与大小最近工作中需要做一个上传图片的功能,既然上传的是图片,那么就应该在上传之前对文件进行一下验证,看看要上传的是不是图片文件。所以在上传之前要对所选文件的格式进行验证。上传图片时因为服务器资源有限,经常会规定图片最大不超过多少,所以在上传之前还要进行图片大小的一个验证。今天就让我们来做一下这两个验证。验证文件类型,看看所选文件是不是图片://文件类型:protected bool IsAllowableFileType(string FileName){ //从web.config读取判断文件类型限制 string stringstrFileTypeL...
阅读全文
Office文件的奥秘
摘要:Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(1)【题外话】这是2010年参加比赛时候做的研究,当时为了实现对Word、Excel、PowerPoint文件文字内容的抽取研究了很久,由于Java有POI库,可以轻松的抽取各种Office文档,而.NET虽然有移植的NPOI,但是只实现了最核心的Excel文件的读写,所以之后查了很多资料才实现了Word和PowerPoint文件文字的抽取。之后忙于各种事情一直没时间整理,后来虽然想写成文章但由于时间太久也记不清很多细节,现在重新查找资料并整理如下,希望对大家有用。【文章索引】.NET下读
阅读全文
CYQ.Data.ProjectTool 项目配置工具发布(包源码)
摘要:CYQ.Data.ProjectTool 项目配置工具发布(包源码)前言:一直被网友催,说要更新下CYQ.Data的枚举生成器,这工具自从V4.5版本之后,就没再发布过新版本,事实上,我也写了V4.55版本的枚举生成器,主体是感觉不太满意,没多大变化,所以一直没发布。我们看一下V4.55的枚举生成器界面,相比V4.5好看了一点点,但还不太满意,感觉使用上仍有些不方便。对使用理念的提升:自从折腾微博粉丝精灵软件近2年左右,对软件的有了进一步的认识,自己都感觉使用不方便的东西,怎么能拿的出手让用户使用,所以,虽然有新版本,也没发布。VS 插件的想法:以前有打算写成Addin插件方式集成到VS开发环
阅读全文
自动设置与取消ADSL拔号连接的代理
摘要:HTTP代理实现请求报文的拦截与篡改8补--自动设置与取消ADSL拔号连接的代理返回目录 在本系列的8--自动设置与取消代理中,我们讲了自动设置与取消代理的功能,但有朋友反应那个只能设置默认的局域网代理,对于ADSL拔号连接的代理设置,就无能为力了,故而在这里我们就补讲一下ADSL拔号的代理设置方法,本来这个应该直接在8中进行修改的,但因为有源码的变动,所以单独开了一个补篇,以方便最新的源码下载。 我们先回忆一下上篇中讲到的局域网的代理是如何自动设置的。 1 INTERNET_PER_CONN_OPTION_LIST list ; 2 INTERNET_PER_CONN_OPTION ...
阅读全文
【.Net平台下插件开发】-MEF与MAF初步调研
摘要:【.Net平台下插件开发】-MEF与MAF初步调研背景Team希望开发一个插件的平台去让某搜索引擎变得更好。主要用于采集一些不满意信息(DSAT)给Dev。这些信息会由不同的team提供不同的tool分析。有的提供仅仅是一个website,有的提供了api。有的提供了service。所以我们设想做一个插件的平台。让那些team提供一些dll。我们只需要把这些dll放在我们的platform里。由于对插件开发一无所知。所以重头开始做调研。为什么需要插件框架-扩展性问题假设您的应用程序必须包含大量可能需要的较小组件,并负责创建和运行这些组件。解决这一问题的最简单的方法是:将这些组件作为源代码包括在
阅读全文
Wrox Professional Enterprise .NET Book Project Case Study (C#)
摘要:http://aspnetdesignpatterns.codeplex.com/Wrox Professional ASP.NET Design Patterns Project DetailsAgatha's e-commerce store application has been designed using the Gang of Four Design Patterns, Martin Fowlers Enterprise Patterns and Robert Martins S.O.L.I.D. Design Principles, all of which are f
阅读全文
再谈CLR查找和加载程序集的方式
摘要:再谈CLR查找和加载程序集的方式这是一个老问题,以前也有朋友写过一些文章介绍,但可能还不是很全面。我也多次被人问到,这里结合案例再次谈谈,希望对大家有所帮助。本文范例代码可以通过这里下载http://files.cnblogs.com/chenxizhang/AssemblyMatchDemoSolution.zip根据程序集的特征,讨论这个问题,我们大致上有两个分类没有做强名称签名的程序集对于这种情况,CLR查找和加载程序集的方式如下程序的根目录根目录下面,与被引用程序集同名的子目录根目录下面被明确定义为私有目录的子目录同时,这种情况下,如果有定义codebase,则codebase的优先级
阅读全文
使用MEF实现IOC
摘要:使用MEF实现IOC〇、目录一、前言 (一)什么是IOC (二)什么是MEF (三)为什么选择MEF二、准备工作三、MEF在桌面程序中的使用四、MEF在MVC中的使用五、总结六、源码下载一、前言(一)什么是IOC 什么是IOC?基本含义是:当某个角色(调用者)需要另一个角色(被调用者)的协助时,在传统程序设计过程中,通常由调用者来创建被调用者的实例。但在加入IOC组件后,创建被调用者实例的工作不再由调用者来完成,而是将由IOC组件来自动完成,然后注入调用者。 网上已经非常非常多的介绍资料了,这里就不赘述了,这里给出几篇参考:百度百科:控制反转依赖注入(IOC)(二)什么是MEFMan...
阅读全文
.NET 并行库写的对象池
摘要:基于.NET 并行库写的对象池ObjectPoolBase类,大家不用去于解TObjectPool, TObjectPoolDomain, TObjectDomain三个泛型参数,改成一个TObject也可以使用其构造中的四个参数分别代表:minSize:池中最少个数maxSize:池中最大个数growSize:增长/回收个数maintenanceMilliseconds:维护间隔运行机制:在BorrowObject时,如果可以在FREES中取得对象则返回,如果获取失败,则当池中对象个数小于最大个数时,创建对象,否则等待对象返还并重试。当使用完对象时可通过ReturnObject返还对象对象池
阅读全文
扁平状数据链接成树状结构的通用方法
摘要:C# 将扁平状数据链接成树状结构的通用方法在项目中经常会遇到从数据库查询数据绑定到TreeVIew上,这时我们需要将查询出来的数据转换成树形结构数据,每次写觉得工作会很重复,所以写了一个通用的转换类。第一步,我们需要建一个基类,这个基类的意义主要是扩展数据库实体类做连接用,用于确定树形结构中节点与子项的关系,其中Parent为当前节点的父节点,Children为当前节点的子节点,IsLinked是判断当前节点是否已连接,用于防止数据中有循环依赖导致创建树的时候形成死循环。TreeModel基类public class TreeBase<T> { private bool i...
阅读全文
用状态模式实现状态机工作流
摘要:用状态模式实现状态机工作流概述状态机工作流由一组状态组成。一个状态被指示为初始状态。每个状态都可以接收一组特定事件。视事件而定,可以转换到另一个状态。状态机工作流可以有最终状态。当转换到最终状态时,工作流将完成。场景针对我上篇博客设计的一个简单的状态机工作流,流程图如下:我们来设计个用设计模式中的状态模式来设计这个工作流。设计先看看它的User Case功能设计:再看看它的Class diagram设计:实现先创建Enums class:?123456789101112131415161718192021222324252627282930313233343536373839404142434
阅读全文
异步编程:.NET4.X 数据并行
摘要:异步编程:.NET4.X 数据并行=============C#.Net篇目录==============任务并行库(TPL)是.NET Framework 4的System.Threading和System.Threading.Tasks命名空间中的一组公共类型和API。TPL的目的在于简化向应用程序中添加并行性和并发性的过程,从而提高开发人员的工作效率。TPL会动态地按比例调节并发程度,以便最有效地使用所有可用的处理器。此外,TPL还处理工作分区、ThreadPool上的线程调度、取消支持、状态管理以及其他低级别的细节操作。通过使用TPL,您可以在将精力集中于程序要完成的工作,同时最大程度
阅读全文
忘却之都
摘要:忘却之都梦话对象之三:三要素的差异与统一摘要: 这篇说说分类的问题。面向对象的设计从根本上就是一个选择分类的过程,而在分类的过程中,只要不出逻辑上的问题,任何分类都是正确的。所以说,对一个系统进行面向对象的建模,1000个人能建立出1000个不同的模型,但只要建立的模型中没有逻辑问题,都不能说这个建模是错的。只有对系统需求建模的适合与不适合,易扩展与不易扩展之分。而对于开发人员来说,大多数人的思维习惯都是非黑即白的思维,这大概也是真正的对象技术...阅读全文posted @2010-01-31 18:28枫 阅读(176) |评论 (0)编辑梦话对象之二:事件之无限扩展摘要: 上面已经谈过了对
阅读全文
关于websocket
摘要:关于websocket这个是一次组内分享,关于websocket的协议和应用的。文章在分享之前就写好了,整理下放出来。在文章最后有ppt和github上的代码。从推送技术开始说一篇文章10 Years of Push Technology, Comet, and WebSockets(http://cometdaily.com/2011/07/06/push-technology-comet-and-websockets-10-years-of-history-from-lightstreamers-perspective/)非常详细的说明清楚了从1996-2007年推送技术的更新。2000年
阅读全文
减少.NET应用程序内存占用的一则实践
摘要:减少.NET应用程序内存占用的一则实践 最近一周比较忙,主要的工作内容是在做一个叫“键盘精灵”的东西,简单来讲就是将很多数据放到内存中,对这些数据进行快速检索,然后找出根据输入条件最匹配的10条记录并予以展示。具体和下面两款炒股软件的相关功能类似: 数据以文本形式存在文件中,且数据量较大,有近20万条,每一条记录有几个字段,以分隔符分割。当时使用的是6万条记录的测试数据,文本文件将近10M,这个模块加载到内存并建立缓存之后,大概会占用将近70-80M的内存。自我接手以后,主要的任务就是降低内存消耗和提高匹配效率。一、避免创建不必要的对象 拿到代码后,第一步就是看设计文档,然后断点一步一步的看代
阅读全文
Socket的TCP通讯连接
摘要:Socket[C#]手把手教你打造Socket的TCP通讯连接(四)摘要: 上一篇中,我们已经学会了服务器的代码,至此我们的SOcket的TCP通讯连接已经完成。这一篇我们总结一下。服务器开启后,开始异步监听客户端连接。客户端连接时,实例化TCPListenerClient,并开始异步监听数据。接收到数据时,判断数据长度,0则为断开连接,不为0则引发接收数据完成事件。可以通过TCPListenerClient发送数据或断开连接。服务器关闭时要先断开所有客户端连接。客户端连接服务器,开始异步接收服务器数据。接收到数据时,判断数据长度,0则为断开连接,不为0则引发接收数据完成事件。客户端连接服务器
阅读全文
SSO模拟登录
摘要:近在做一个项目,要求集成到第三方系统中,由于先前没有做过类似的活,所以折腾了几天,蹭着有闲情的时候记录一下。以下实例,都是我用Asp.net语言进行开发的,关于HTML元素的获取,使用的是Google浏览器。1. 非Asp.net开发的网站 我们拿www.51cto.com来做实例,首先进入www.51cto.com,点击登录,就进入到该博客的登录页面。使用Google浏览器,按下F12,找到其表单的action值,可以发现其action值为http://home.51cto.com/index.php?s=/Index/doLogin,然后点击账号和密码的文本框,右击鼠标,审查元素,分别..
阅读全文
WebKit
摘要:WebKitChrome浏览器之多进程架构宋鹏举 2012-11-12 21:07 阅读:1295 评论:2WebKit基础(六)宋鹏举 2012-05-16 13:15 阅读:370 评论:1WebKit基础(五)宋鹏举 2012-05-11 13:30 阅读:353 评论:1WebKit基础(四)宋鹏举 2012-05-08 12:53 阅读:320 评论:0WebKit基础(三)宋鹏举 2012-05-07 11:45 阅读:233 评论:0WebKit基础(二)宋鹏举 2012-05-04 11:32 阅读:222 评论:0WebKit基础(一)宋鹏举 2012-05-03 12:11
阅读全文
C#中ConnectionStrings和AppSettings的区别
摘要:C#中ConnectionStrings和AppSettings的区别今天用之前的类库调试程序出现了以下问题 System.InvalidOperationException: ConnectionString 属性尚未初始化。 在 System.Data.OracleClient.OracleConnection.PermissionDemand() 在 System.Data.OracleClient.OracleConnectionFactory.PermissionDemand(DbConnection outerConnection) 在 System.Data.Pr...
阅读全文
发一个英文阅读时,快捷辅助翻译工具
摘要:发一个英文阅读时,快捷辅助翻译工具by along由于我英语并不好,经常在阅读外国英文程序网站时,一些句子中遇到个单词不会就造成句子意思理解不全,复制到翻译工具去翻译吧,如果频繁操作就太麻烦了,但我又不想用GOOGLE全文自动翻译,因为全文翻译不但会打乱文章布局,而且有一些我们并不需要翻译的段,他也会自动翻译,比如说代码段,并且这样也不利于我们英语学习。如果有个工具能直接翻译我们想要的英文段,且操作又不会太麻烦,那该多好啊,所以花了大半天的时间 我写了这个小工具。操作方式: 开启快捷翻译时,选中一段要翻译的文本,再按F2键 直接翻译工具原理: 1.使用HttpWebRequest模拟...
阅读全文