学会Func
摘要:学会Func前言 首先你要会最基本的委托的使用,如果不会,看起来可能会有难度.. 不过第一个例子将帮你复习一下委托delegate 接下来通过几个例子就会学会怎么灵活使用Func了委托回顾(delegate)新建控制台 代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace AaronYangFuncDemo{ delegate string ConvertMethod(string inString); //① class Program ...
阅读全文
mis导入器的加强版——vdproj文件资源浏览器
摘要:mis导入器的加强版——vdproj文件资源浏览器 上次做的那个导入器不够强大,限制还不小,用起来不方便。于是就再做一个这样的工具。代码基本上不同了,思想还是差不多,但功能肯定比之前的强大。经过了这次编写工具,对vdporj文件的了解又深一层了。在vs的文件系统编辑器使用过程中,发现有两个不方便:第一是删除文件夹不方便,如果一个文件夹不是空的话,是删不成功的;第二是添加文件夹时,只能添加该文件夹的文件,如果指定的文件夹含有子文件夹,那些子文件夹就要手动一个个去添加,不会一同添加进去。 针对第二个问题,我就写出了之前的那个导入器,针对第一个问题,我就写了这个浏览器。这回就先看一下界面功能大致..
阅读全文
如何实现一个通用的IHttpHandler 万能的IHttpHandler HttpWebRequest文件上传
摘要:昨天遇到一个比较奇怪的需求,大致是需要在服务器上部署一个http服务,但是服务的具体功能不知道,以后在客服端实现。这里介绍一下系统背景,有一个系统运(部署在美国)行了很多年了,给系统产生了很多文件,现在需要把该系统的文件(依据数据库中的记录)来做相应的archive,做了后发现里面还有一些独立的文件(不与数据库记录相关),那么这时我们需要删除这些独立的文件,或者把它们remove到其他地方,需要得到这些文件的list。后来想了想以后会不会还有别的什么需求啊,所以就想做一个通用的HTTPhandler了。这里说明一下:production时在美国,Archive在香港;在我们大陆的系统权限放的都
阅读全文
Microsoft 电信项目组 Net代码生成器1.1
摘要:Microsoft 电信项目组 Net代码生成器1.1微软电信项目组代码生成器为什么要使用这个代码生成器:1.这个代码生成器采用 微软 企业库5.0 版本,目前CAPO所在的项目组都在使用这个2.采用里面的代码我们做了一个 4W 人的项目,目前运行一年了,所有的一切运行良好3.生成代码,非常简单,但是效率并不低下,很适合中小型项目的使用4.代码生成器会自动根据 数据库(MsSql2005以上) 主外键生成简单的业务逻辑使用说明1.生成的解决方案打开之后,您需要依次生成项目的顺序是: Framework,Model,DBUtility,DAL,BLL2.生成的数据库存储过程,在DAL项目下的此命
阅读全文
写20万数据到Excel只需9秒
摘要:on my god,写20万数据到Excel只需9秒 还是菜鸟时,在某个.Net项目中,用户需要从业务系统导出Report,而数据量通常都在上万条以上,最初采用的方式就是在服务器端用NPOI生成Excel,把Data一行一行一个Cell一个Cell地写到Excel中的每个Cell中,若用户对Report格式要求高一点,还要一个Cell一个Cell设置单元格的Style,然后把Report给用户下载。结果上万条的数据用户导出需要几十分钟。这样导出Report,是个人都要crazy了。。。。。 当时,老板也没给压力,只是说,能不能搞定,搞不定我就从外面找个高手解决,下午4点给我答复,有压力才有动力
阅读全文
Winform程序
摘要:故事的开端是这样的,小白是一个程序员,他确实也是一个小白,目前还在程序员发展的道路上,兢兢业业的小心求学。 有一天,小白接到一个任务,完成一个Winform程序,附加一个功能就是可以读IC卡。 小白终于有机会一展身手了!!不免内心兴奋。再联系了IC卡厂家,拿到开发SDK后,小白不久就碰到了以下难题: 1、厂家的读卡器是通过API给定的事件ReadCard()驱动的,而读卡器在ReadCard事件驱动以后,可以在往后的3s以内侦测是否有IC卡片在附近: (1)3s内,有IC卡在设备附近,立即读卡,返回读卡状态。(2)3s内如果没有IC卡在设备附近,则读卡器等待3s后返回“-3”表示无卡。 2、.
阅读全文
在.Net中执行js
摘要:在.Net中执行js利用Noesis.Javascript开源组件可以做到在.net中执行js脚本,同时js脚本也能调用C#函数。这个组件的获得方式:在NuGet中输入搜索"Noesis"就能找到。我们来做个搜索功能:用户能够在textbox中输入js脚本来筛选list记录,界面如下:然后,click filter button后的UI:看,筛选出来了,代码如下(js能调C#写的UserInfo类的各个属性)public class UserInfo { public string FirstName { get; set; } public string L...
阅读全文
Socket的粘包处理
摘要:Socket的粘包处理当socket接收到数据后,会根据buffer的大小一点一点的接收数据,比如:对方发来了1M的数据量过来,但是,本地的buffer只有1024字节,那就代表socket需要重复很多次才能真正收完这逻辑上的一整个消息。对方发来了5条2个字符的消息,本地的buffer(大小1024字节)会将这5条消息全部收入囊下...那么,如何处理呢?下面我以最简单的一种文本消息来demo根据上面所描述的情况,最重要的关键落在了下面3个因素的处理上消息的结尾标记接收消息时判断结尾标记当本次buffer中没有结尾标记时怎么处理我把写好的核心算法贴出来: StringBuilder...
阅读全文
线程同步
摘要:线程同步线程同步在应用程序中使用多个线程的一个好处是每个线程都可以异步执行。对于 Windows 应用程序,耗时的任务可以在后台执行,而使应用程序窗口和控件保持响应。对于服务器应用程序,多线程处理提供了用不同线程处理每个传入请求的能力。否则,在完全满足前一个请求之前,将无法处理每个新请求。然而,线程的异步特性意味着必须协调对资源(如文件句柄、网络连接和内存)的访问。否则,两个或更多的线程可能在同一时间访问相同的资源,而每个线程都不知道其他线程的操作。"如果觉得有用,请帮顶! 如果有不足之处,欢迎拍砖!"线程同步的方式 线程同步有:临界区、互斥区、事件、信号量四种方式 临界区
阅读全文
编程实战——电影管理器之界面UI及动画切换
摘要:编程实战——电影管理器之界面UI及动画切换在前文“编程实战——电影管理器之利用MediaInfo获取高清视频文件的相关信息”中提到电影管理器的目的是方便播放影片,在想看影片时不需要在茫茫的文件夹下找寻。我对电影管理器的想法如下:1、可以全键盘操作(不依赖鼠标),最好是利用键盘上的小数字键区就能完成全部操作。2、基于HTPC的全屏操作,故软件的大小为1920*10803、模仿时下流行的“磁贴”效果。下图是本软件的初步的界面UI解释一下:1、HTPC的屏幕是1920*1080,在软件设计的时候,由于电脑的屏幕没那么大,初步设计为960*540,等调试完全没有问题后,再将分辨率调成1920*1080
阅读全文
那些年黑了你的微软BUG
摘要:那些年黑了你的微软BUG前言炎炎夏日,朗朗乾坤,30℃的北京,你还在Coding吗?整个7月都在忙项目,还加了几天班,终于在这周一29号,成功的Release了产品。方能放下心来,潜心地研究一些技术细节,希望能形成一篇Blog,搭上7月最后一天的末班车。背景本篇文章起源于项目中的一个Issue,这里大概描述下Issue背景。首先,我们在开发一个NetTcpBinding的WCF服务,基于.NET4.0版本的Windows服务应用。在设计的软件中有Promotion的概念,Promotion可以理解为“促销”,而“促销”就会有起始时间(StartTime)和结束时间(EndTime)的时间段(D
阅读全文
正则表达式获取博客园随笔1
摘要:正则表达式获取博客园随笔(一)晚上起先和朋友们跑步去了,然后回来之后洗了个澡,打开VS新建项目发现都会弹出一个问题然后就去找万能的度娘了,http://bbs.csdn.net/topics/390514964?page=1#post-39501504125楼真相,卸载掉那2个补丁就可以了,不过在卸载第一个补丁的时候你需要停止他指出的那个服务。 我当初刚开始接触正则是去年公司主管让我去学,然后发了个网址给我:http://www.cnblogs.com/ie421/archive/2008/07/23/1249896.html看完后收益颇大,下面就开始正题。 之所以要获取博客园的内容是因为..
阅读全文
Excel 菜单系统
摘要:Excel 菜单系统在开始Excel开发之前,需要把架子搭起来。最直接的那就是Excel里面的菜单了,他向用户直观的展现了我们的插件具有哪些功能。菜单出来之后我们就可以实现里面的事件和功能了。Excel菜单有两种形式,一种是Excel 2003及之前的传统菜单样式,一种是Excel 2007及之后的Ribbon菜单。本文首先讲解Excel 2007中菜单的创建,包括使用Visual Studio可视化设计菜单,菜单的RibbonXml配置,然后讲解如何在Excel 2003中创建自定义菜单。最后演示如何使用SharedAddin技术将两者结合起来,即在2003版本中显示原始的菜单样式,在以20
阅读全文
读写分离子系统 - C# SQL分发子系统(ADO.NET,不支持EF)
摘要:读写分离子系统 - C# SQL分发子系统(ADO.NET,不支持EF)这次介绍的这个框架只适用于中小项目,并且各个读写数据库结构是一致的情况,还要并且是写入数据库只有1台情况。我们来看看这个子系统适用的场景:我们来看这个子系统的配置文件: Server=.;Database=d1;User Id=sa;Password=111111; //唯一的主数据库(写入DB) Server=.;Database=d2;User Id=sa;Password=111111; //这些是普通的对等的读数据库,只是做了些普通索引优化 Server=.;Database=d3;...
阅读全文
无限级树结构
摘要:不再为无限级树结构烦恼,且看此篇很久都没有写点什么出来分享了,最近在做多级树的时候,发现来来回回写过很多遍,于是封装成用户控件,以方便日后重复使用.首先上效果:我们看到以上2种效果,都是支持任意级的,这里源码中使用的是递归,以便高效的完成HTML的渲染.下面上代码,代码中解释的都很详细了,我就不再细说.下面将有示例调用演示:View Codepublic partial class UC_MultiLevelTree : System.Web.UI.UserControl{ #region 数据相关属性 /// /// 要绑定的数据源 /// public D...
阅读全文
多线程基础2
摘要:C#编程总结(二)多线程基础多线程无论您是为具有单个处理器的计算机还是为具有多个处理器的计算机进行开发,您都希望应用程序为用户提供最好的响应性能,即使应用程序当前正在完成其他工作。要使应用程序能够快速响应用户操作,同时在用户事件之间或者甚至在用户事件期间利用处理器,最强大的方式之一是使用多线程技术。多线程:线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程。如果某个线程进行一次长延迟操作, 处理器就切换到另一个线程执行。这样,多个线程的并行(并发)执行隐藏了长延迟,提高了处理器资源利用率,从而提高了整体性能。多线程是为了同步完成多项任务,不是为了提高运行
阅读全文
Newlife商业源码分享
摘要:【商业源码】生日大放送-Newlife商业源码分享今天是农历六月二十三,是@大石头的生日,记得每年生日都会有很劲爆的重量级源码送出,今天Newlife群和论坛又一次疯狂了,吃水不忘挖井人,好的东西肯定要拿到博客园分享。Newlife组件信息:论坛:http://www.newlifex.com/QQ群:1600800相关博客:http://www.cnblogs.com/nnhy http://www.cnblogs.com/asxinyu对你有没有用,你看着办,你是大爷!如果没有用,你要喷说它不值10万,我也没有办法,呵呵,有本事你自己做一个出来卖10万!源码论坛都有下载地址,文件很多,比较
阅读全文
通过 DynamicLinq 简单实现 N-Tier 部署下的服务端数据库通用分页
摘要:通过 DynamicLinq 简单实现 N-Tier 部署下的服务端数据库通用分页YbSoftwareFactory 的 YbRapidSolution for WinForm 插件使用CSLA.NET作为业务层,CSLA.NET的一个强大的特性是支持 N-Tiers 部署。只需非常简单的配置就能在本1-Tier部署方式和N-Tiers部署方式之间切换,这个过程无需编写任何额外的代码,这对于 WinForm 和 WPF 等客户端的开发来说是非常重要的特性,更多信息请参考我前面的文章:YbSoftwareFactory 代码生成插件【七】:YbRapidSolution for WinForm
阅读全文
C#编程大幅提高OUTLOOK的邮件搜索能力!
摘要:C#编程大幅提高OUTLOOK的邮件搜索能力!使用OUTLOOK, 你有没有遇到过上图的问题? 多达18419封邮件! 太多了, 每次想找一个邮件都非常耗时, 想办法解决这个问题成了一件非常紧迫的事情. 利用MS Search当然可以, 但是它太heavy了, 而且不支持如逻辑搜索表达式等复杂查找功能, 怎么办? 幸运的是我有WEBUS2.0 SDK, 于是我决定自己开发一个名为Outlook Searcher (Outlook搜索精灵) 的小工具.Outlook搜索精灵主要包含两个功能:1. 读取Outlook中的邮件信息并创建全文索引;2. 提供搜索功能, 支持各种复杂的逻辑表达式.先看看
阅读全文
ToList<>()所带来的性能影响
摘要:ToList()所带来的性能影响前几天优化师弟写的代码,有一个地方给我留下很深刻的印象,就是我发现他总是将PLINQ的结果ToList(),然后再返回给主程序,对于这一点我十分不解,于是去问他是什么原因,得到的答案很幽默:因为习惯。 有时候对于方法的不甚了解加上“习惯”,往往是程序性能和稳定性终结者,就拿这个Case来说吧,原始代码如下:var query = from cr in LCRNormal.AsParallel() let listId = from crt in LCRNormal group crt by crt.KeyValue into m select m.Max(n =
阅读全文