保证0为值类型的有效状态<.NET资源管理>
摘要:保证0为值类型的有效状态<.NET资源管理>.NET系统的默认初始化过程会将所有的对象设置为0。我们就会难免创建出一个初始化为0值的值类型,所以我们应该将0作为类型的默认值,可以避免一些不必要的Bug。1.将0设置为枚举的有效值 使用枚举时我们必须将0设置为枚举的一个有效选项。所以枚举值都派生于System.ValueType。枚举默认的值开始于0,但是也可以自定义:1 public enum Month2 {3 //枚举的默认值是从0开始4 Jan = 1,5 Feb = 2,6 Mar = 3,7 ...
阅读全文
从初步使用该控件到多维数据集控件PivotGridControl
摘要:例子基于Winform开发,我使用的是VS2005,因为工作就用这个,版本低了点,但是很多控件的使用都不会因为版本高低而存在太大差异。 其实原本是想从下载安装开始去分享这套控件的使用,但是觉得那样显得太俗了,我是一个乐于突破定势的男孩子(毕竟有些女的都30岁还自称为女孩,我才开始奔三为什么不能是男孩子呢),我决定从比较棘手的PivotGridControl控件开始分享我近些日子使用DevExpress的心得经验。说实话正题开始前我还想再啰嗦句废话,我原本还想在PivotGridControl之前专门写一篇来介绍GridControl的,后来又想GridControl功能与.NET自带Grid.
阅读全文
StringBuilder的Length和Capacity属性实践
摘要:几天前的一次笔试中遇到了关于StringBuilder的Length和Capacity属性的问题,之前忽略了。今天实践下:1.普通实践官方解释如下:StringBuilder.Capacity:获取或设置可包含在当前实例所分配的内存中的最大字符数。StringBuilder.Length:获取或设置当前 StringBuilder 对象的长度。 class Program { static void Main(string[] args) { StringBuilder sb = new StringBuilder("0123456...
阅读全文
古城钟楼
摘要:古城钟楼微博地支报时程序铛,100行代码实现,价值一天20万粉丝关键字:古城钟楼微博铛古城钟楼微博地支 报时自动一天20万粉丝程序作者:http://txw1958.cnblogs.com/原文:http://www.cnblogs.com/txw1958/archive/2013/01/09/guchengzhonglou-weibo-timer.html大家最近都在热议古城钟楼的红火。不是加V号、不是官方号、不是皇冠会员。没有拟人化,没有段子、没有运营。1天之内从1万不到的粉丝新增了20多万并且还在持续传播和增长粉丝。我不研究它是怎么红起来的,但写个类似的程序实现它却很容易,程序才100行
阅读全文
抓数据小程序
摘要:为了拓展公司业务,客服部需要大量相关行业的客户资料。由于公司规模不大,从成本上考虑够买数据不太现实,所以我们就开发了一套方案,从行业相关的商业网站上去抓取客户资料。 鉴于不同的网站在数据排版、字符编码、获取数据方式(get或post)不同。如要抓到自己想要的数据,针对每个网站都需要进行网页的分析,有效数据的提取。在这里主要分享关键代码,顺便把最近写的一个程序源代码贴出来供园友们下载研究,里面有抓取三个网站数据的例子(深市A股、三星手机、当当网微软技术丛书,抓取不同的网站需要修改运行入口)。掌握其中一个的技巧,便可以在所有类似网站上获取你想要的数据,比方你在炒股,你可以抓取股票网站数据到本地,做
阅读全文
单点户登录解决方案
摘要:其实我不太清楚到底有什么专业术语来表述我的问题。这里还是简单的介绍一下问题:现在有一个web系统,系统需求中有要求一个账号只允许一个地方登录,如果另一个地方登录,则显示用户已经登录(和网上查到的把别人被迫下线不同)。第二个需求就是只允许同一台电脑只允许一个账号登录,如果一个号没有退掉,再等则提示不允许再次登录消息框。首先我这里需要说明一点的是,我这里并没有全部的代码做出来放到项目中,这篇文章只是告诉你一个我认为可行的方案。如果你要完整的项目,那就不要浪费自己时间了。问题一:(同一个账号只允许一个用户登录)这里首先要知道一下一些基础的知识,http协议是一个无监听的协议,也就是说服务器不会去监视
阅读全文
泛型和反射
摘要:地球人都知道构建通用的功能 泛型和反射是必不可少的,然后现在很多人都用ORM实体框架+泛型也可以构建但其内部也是通过反射实现的。解开迷雾 见天日吧。---c#代码 public class Boy { public int BoyId { get; set; } public string BoyName { get; set; } } public class Girl { public int GirlId { get; set; } public string GirlName { get; set; }...
阅读全文
NTCPMSG 开源高性能TCP消息发送组件
摘要:目前的.net 架构下缺乏高效的TCP消息发送组件,而这种组件是构建高性能分布式应用所必需的。为此我结合多年的底层开发经验开发了一个.net 下的高效TCP消息发送组件。这个组件在异步发送时可以达到每秒160万包,而相同大小的数据包用WCF的TCP模式OneWay 方式发送每秒只能达到5.6万包。项目首页http://ntcpmsg.codeplex.com/功能介绍:NTCPMSG 组件是基于 .net framework 的开源TCP 消息发送和接收组件。和.net framework 提供的 TcpClient 类比较,这个组件是以包的方式发送消息,不存在沾包的情况。最新发布的1.3.0
阅读全文
C#写的NoSQL开源系统(系列)
摘要:C#写的NoSQL开源系统(系列)2013-01-07 19:06 by 灵感之源, 213 阅读,0评论,收藏,编辑闲扯好久没写开源项目了,也没写对新开源项目的介绍,今晚看了几个项目,写一下。前言一直推崇纯C#的解决方案,无论是多年写的各种文件格式的读写(如office系列的xls/xlsx/doc/docx之类,pdf之类),还有邮件收发(包括我9年前写的OpenPOP),文件压缩解压,数据库(SharpHSQL、C#写的Sqlite等),我都相当热衷于介绍这些项目。NoSQLNoSQL流行好几年了,相比于传统的SQL,NoSQL名字的“No”多少想要跟自己的前辈区分开了。SQL,是通过结
阅读全文
[C#基础知识系列]专题:深入理解动态类型
摘要:本专题概要:动态类型介绍为什么需要动态类型动态类型的使用动态类型背后的故事动态类型的约束实现动态行为总结引言: 终于迎来了我们C# 4中特性了,C# 4主要有两方面的改善——Com 互操作性的改进和动态类型的引入,然而COM互操作性这里就不详细介绍的,对于.Net 互操作性我将会在另外一个专题中详细和大家分享下我所了解到的知识,本专题就和大家分享C# 4中的动态类型,对于动态类型,我刚听到这个名词的时候会有这些疑问的——动态类型到底是什么的呢? 知道动态类型大概是个什么的时候,肯定又会有这样的疑问——C# 4中为什么要引入动态类型的?(肯定引入之后可以完成我们之前不能做的事情了,肯定是有好处.
阅读全文
N久的代码!
摘要:1, 获取当前电脑上所使用的域名View Code2, SQL游标案例:View Code3 , SQL编写一个UDF实现字符串按符号分割成表 如:‘1,,2,5,8’实现分割返回表结构 。使用方法 : select item fromUDF_Common_Split('1,2,3',',')View Code4 , 牛人写的将javascript代码压缩为png图片的代码,php下压缩:View Codejavascript 解码:View Code5,关于xslt的特殊操作(1)在xslt中使用c#方法:View Code(2)xslt系统替换函数的使用:V
阅读全文
开发定时服务应用
摘要:在上篇随笔《Winform开发框架之通用定时服务管理》介绍了我的框架体系中,通用定时服务管理模块的设计以及一些相关功能的展示。我们在做项目的时候,或多或少需要和其他外部系统或者接口进行数据交互,有些是单向的获取,有些是双向的操作。这个定时操作(可能是间隔的时间,也可以能是定在某一个时刻,也可以能是让它在某天某时刻运行),那么这就需要定时服务程序来管理了,通常我们把他寄宿在Windows服务里面(这也是一种最佳的方式),这种方式最好的地方,就是它的生命周期可以随着电脑的启动而启动,而且很少需要用户干预。1、通用定时服务管理模块框架设计首先我们回顾一下上面文章对通用定时服务管理模块的设计思路。整个
阅读全文
MethodImplAttribute 类和 SynchronizationAttribute 类
摘要:本篇我们主要总结和介绍一下利用属性标签方式对多线程进行方法同步和上下文同步,主要用到的是MethodImplAttribute 类 和 SynchronizationAttribute 类。这两个属于方法特性和类的特性,标识某个方法或类是同步方法,本质上还是基于Lock的实现的。首先我们还是来看一个例子,假如小明和小红两个人用都是主附银行卡,两个人都可以对帐户进行操作,比如帐户余额1000元,比如两个人几乎同时进行取钱600元的操作。代码如下:我们没有进行任何的同步措施,我们运行一下代码,看一下结果:(不同计算机执行结果可能不同)namespace ThreadAttribute{ cl...
阅读全文
AutoResetEvent和ManualResetEvent的理解
摘要:一、作用AutoResetEvent和ManualResetEvent可用于控制线程暂停或继续,拥有重要的三个方法:WaitOne、Set和Reset。这三个方法的官方定义并不好理解,什么终止、非终止,乱七八糟的。在这里,我们以一种通俗易懂的概念来说明。二、比喻如果把每个线程比作一辆汽车的话,AutoResetEvent和ManualResetEvent就是公路上的收费站。其中,Reset关闭收费站车闸禁止通行(拦截车辆才好收费啊);WaitOne收费员等待下一辆车辆过来(然后收费);Set 开启收费站车闸放行(交钱了就让过去)。三、AutoResetEvent和ManualResetEven
阅读全文
DispatcherTimer与Dispatcher小小应用
摘要:在使用DispatcherTimer之前,需要使用using System.Windows.Threading;命名空间;集成到按指定时间间隔和指定优先级处理的 Dispatcher 队列中的计时器。 在每个 Dispatcher 循环的顶端重新计算 DispatcherTimer。 不能保证会正好在时间间隔发生时执行计时器,但能够保证不会在时间间隔发生之前执行计时器。 这是因为 DispatcherTimer 操作与其他操作一样被放置到 Dispatcher 队列中。 何时执行 DispatcherTimer 操作取决于队列中的其他作业及其优先级。在使用时代码如下: publ...
阅读全文
.Net下使用 Geb.Video.FFMPEG 操作视频文件
摘要:.Net 下默认没有读写视频的类,要进行视频操作很麻烦,之前用过网上的代码,用的很不爽。AForge.Net对ffmpeg进行了封装,不过它引用的dll有点多,且没提供seek方法,无法跳到指定帧,也有点不爽,俺在 AForge.Net 对FFMPEG 封装的基础上,进行了修改,得到 Geb.Video.FFMPEG 库,现分享出来。主要功能如下:l 读取视频文件,获取视频参数;l 读取帧;l 查找帧;l 写入视频文件。有了这些功能,可以写一个简单的视频播放器了,当然,视频转码之类的也不在话下。在此基础上,视频分析,视频合成,视频编辑等等,都可以进行。License:LGPL v3 licen
阅读全文
.NET对象生命周期小结
摘要:参考资料《C#与.NET4高级编程设计(第五版)》MSDN主要内容new关键字对象的代垃圾回收过程强制垃圾回收Finalize与Dispsose方法using语法new关键字new关键字返回的是一个指向堆上对象的引用,并非对象本身,该引用存储在栈内。new一个对象的过程:对象的代垃圾回收时,CLR并不会检测托管堆上的每一个对象,这样会花费大量时间。为了优化检测过程,堆上的每一个对象都属于“某代":第0代:从没被标记为回收的新分配的对象第1代:上一次垃圾回收被标记为可回收但没有被回收的对象第2代:在一次以上的垃圾回收后没有被回收的对象代的设计思路是:对象在内存中存在的时间越长,他就更可
阅读全文
.NET性能调优之一:ANTS Performance Profiler的使用
摘要:在使用.NET进行快速地上手与开发出应用程序后,接下来面临的问题可能就是程序性能调优方面的问题,而性能调优有时候会涉及方方面面的问题,如程序宿主系统、数据库、网络环境等等,而当程序异常庞大复杂的时候,性能调优将变得更加无从下手。本系列文章主要会介绍一些.NET性能调优的工具、Web性能优化的规则(如YSlow)及方法等等内容。成文前最不希望看到的就是园子里不间断的“哪个语言好,哪个语言性能高”的争论,不多说,真正的明白人都应该知道这样的争论有没有意义,希望我们能从实际性能优化的角度去讨论问题。ANTS Performance Profiler的基本使用ANTS Performance Prof
阅读全文
异步编程:同步基元对象(上)
摘要:异步编程:同步基元对象(上)=============C#.Net篇目录==============从此图中我们会发现.NET与C#的每个版本发布都是有一个“主题”。即:C#1.0托管代码→C#2.0泛型→C#3.0LINQ→C#4.0动态语言→C#5.0异步编程。现在我为最新版本的“异步编程”主题写系列分享,期待你的查看及点评。异步编程:线程概述及使用异步编程:使用线程池管理线程异步编程:同步基元对象(上)异步编程:同步基元对象(下)异步编程:并行任务Task异步编程:.NET1.0异步编程模型(APM)异步编程:.NET 2.0基于事件的异步编程模式(EAP)异步编程:.NET 4.5基于
阅读全文
coding
摘要:coding中十大低级错误2012-07-20 11:53 by zhang carl, 203 阅读,1评论,收藏,编辑1.前言本文根据java和C#开发人员在编码过程中容易忽视或者经常出错的地方进行了整理,总结了十大比较常见的低级错误点,与大家交流一下。2.十大低级错误1.不能用“==”比较两个字符串内容相等。2.对list做foreach循环时,循环代码中不能修改list的结构。3.数组下标越界4.将字符串转换为数字时没有捕获NumberFormatException异常。5.对文件、IO、数据库等资源进行操作后没有及时、正确进行释放。6.循环体编码时不考虑性能,循环体中包含不需要的重复
阅读全文