摘要:
一、Lucene点滴 (发音为['lusen]),我经常就读鹿神,是头活蹦乱跳的好鹿,研究它吧,保证感觉它很神!Lucene是一个非常优秀的开源的全文搜索引擎,我们可以在它的上面开发出各种全文搜索的应用来。Lucene在国外有很高的知名度,现在已经是Apache的顶级项目。二、倒排索引原理简述 Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引结构。具体解释算法理论就不讲了,直接用例子来说明吧,如果你认真仔细的读懂例子,真正领会了其中的思想,你肯定就明白了Lucene索引的基本原理!记住:理解!把例子用你自己的语言表述出来,就是翻译成你自己的东西,以后你想自己写. 阅读全文
随笔分类 - [01].NET技术
艾伟_转载:WinForm二三事(二)
2011-08-29 00:17 by 狼人:-), 155 阅读, 收藏,
摘要:
监视消息循环
在上一篇文章中,我们讨论了消息循环是响应用户输入的根本,还提到了在WinForm中执行耗时操作是因为这个耗时操作与消息循环在同一个UI Thread上,导致不能处理用户的后续响应,造成程序假死。除此之外,还说到了Form中的WndProc方法,说这个方法就是Win32时代那个处理消息的方法的.Net版。
那么今天这篇文章我们就来编个小程序来模拟一下这个耗时操作,看看是不是如上一篇所说:耗时操作造成消息循环的临时中断不能响应用户后续输入。
程序很简单,就是一个简单的窗体,上面放置一个按钮,按钮里有一个Thread.Sleep(50*1000)模拟耗时操作: public par.. 阅读全文
艾伟_转载:C# WinForm开发系列 - TextBox
2011-08-29 00:17 by 狼人:-), 305 阅读, 收藏,
摘要:
包含金额/日期输入框,带弹出数字面板的计算输入框,安全密码输入等控件(文章及相关代码搜集自网络,仅供参考学习,版权属于原作者! ).
1.CalculatorBox CalculatorBox.rar 2.带行号+自定义颜色显示的TextBox 3.金额输入框 currency_textbox.zip CurrencyBox.rar NumberPicker_src.zip NumericTextBox_src.zip NumberedTextbox.rar 4.日期输入框 DateEdit.rar 5.一个C#的数字字段的控件 6.扩展RichTextBox功能 RichT... 阅读全文
艾伟_转载:WinForm二三事(一)
2011-08-29 00:17 by 狼人:-), 162 阅读, 收藏,
摘要:
在进入正文之前,想请大家先欣赏下面两段代码: 1: //这是一个控制台程序,请先添加System.Windows.Form.dll的引用 2: using System.Windows.Form; 3: 4: public class ConsoleApplicationShowDialog 5: { 6: static void Main() 7: { 8: Form frm = new Form(); 9: frm.ShowDialog(); 10: }... 阅读全文
艾伟_转载:C# WinForm开发系列 - CheckBox/Button/Label/ProgressBar
2011-08-29 00:17 by 狼人:-), 307 阅读, 收藏,
摘要:
包含自定义颜色显示的CheckBox,水晶效果按钮,透明圆角Label,Vista效果的ProgressBar等控件(文章及相关代码搜集自网络,仅供参考学习,版权属于原作者!).
1.自定义颜色显示的CheckBox coloredcheckcontrols.zip
2.逼真的仿Vista效果的按钮控件 crystalbutton.rar VistaButton.rar 3.全定制的XP风格进度条
XpProgressBar功能特征 1. 不怎么占用CPU资源,因为使用了双缓冲的原因 2. 双缓冲提供了很好的平滑处理,不会闪烁 3. 文字使用Anti alias效果,更加好看4. 使用文... 阅读全文
艾伟_转载:Silverlight陷阱:注意程序集引用问题
2011-08-29 00:17 by 狼人:-), 148 阅读, 收藏,
摘要:
假定我要用Silverlight类库实现一些通用控件,然后在应用程序中引用这个控件库。当然,控件通常也要访问其他一些第三方或开源的开发包,例如Silverlight Toolkit。 于是这个项目的依赖关系如下: Silverlight Application => Silverlight Control => Silverlight Toolkit。在Visual Studio中创建好项目之间的引用关系: 然后在类库项目中创建一个简单的控件,比如:
Code highlighting produced by Actipro CodeHighlighter (freeware)h. 阅读全文
艾伟_转载:对ArrayList中的自定义类型进行搜索
2011-08-29 00:17 by 狼人:-), 145 阅读, 收藏,
摘要:
一般情况下我只需要使用ArrayList.Contains()方法就可以判断某个元素是否存在,但如果ArrayList中的为自定义的类就需要自己实现,如下面例子:
如我们有一个类:
public class Employee
{ public int EmployeeID { get;set; } public string EmployeeName { get;set; } public DateTime BirthDate { get; set... 阅读全文
艾伟_转载:ASP.NET缓存
2011-08-29 00:17 by 狼人:-), 108 阅读, 收藏,
摘要:
介绍
缓存是在内存存储数据的一项技术,也是ASP.NET中提供的重要特性之一。例如你可以在复杂查询的时候缓存数据,这样后来的请求就不需要从数据库中取数据,而是直接从缓存中获取。通过使用缓存可以提高应用程序的性能。
主要有两种类型的缓存:
1.输出缓存Output caching2.数据缓存Data caching
1. 输出缓存(Output Caching)
使用输出缓存,你可以缓存最后输出的HTML页面,当相同的页面再次请求的时候,ASP.NET不会再执行页面的生命周期和相关代码而是直接使用缓存的页面,语法如下:
<%@ OutputCache Duration=”60” VaryB 阅读全文
艾伟_转载:虚方法的使用
2011-08-29 00:17 by 狼人:-), 169 阅读, 收藏,
摘要:
《编程絮语》之一 C#的语法脱胎于C++,因而保留了virtual关键字,可以定义一个虚方法(或虚属性)。一个类的成员被定义为virtual,就意味着它在告诉自己的子类:我准备了一笔遗产,你可以全盘接受,也可以完全拒绝或者修改我的遗嘱。显然,虚方法授予子类的权利甚至大于抽象方法。子类面对抽象方法只有重写(override)的权利,而对于虚方法,它还可以选择完全继承。
毫无疑问,虚方法破坏了对象的封装性。如果不加约束的使用,会对调用方造成破坏,至少它有可能破坏子类与父类之间在外在行为上的一致性。因此,当我们在重写虚方法时,务必要遵循Liskov替换原则。我们要保证对于调用方而言,子类对于父类.. 阅读全文
艾伟_转载:ADO.NET中的五个主要对象
2011-08-29 00:17 by 狼人:-), 182 阅读, 收藏,
摘要:
Connection 物件 Connection 对象主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在ADO.NET 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 Command 物件 Command 对象主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源 DataAdapter 物件 DataSetCommand 对象主要是在数据源以及DataS... 阅读全文
艾伟_转载:WCF、Net remoting、Web service概念及区别
2011-08-29 00:17 by 狼人:-), 149 阅读, 收藏,
摘要:
Windows通信基础(Windows Communication Foundation,WCF)是基于Windows平台下开发和部署服务的软件开发包(Software Development Kit,SDK)。 WCF就是微软对于分布式处理的 编程技术的集大成者,它将DCOM、Remoting、Web Service、WSE、MSMQ集成在一起,从而降低了分布式系统开发者的学习曲线,并统一了开发标准。 WCF是建立在.Net Framework 2.0基础之上的,包含在.NET 3.0/3.5当中。2005中并没有包含WCF,但是当安装好了WinFX Runtime Compon... 阅读全文
艾伟_转载:静态构造函数趣谈!
2011-08-29 00:17 by 狼人:-), 169 阅读, 收藏,
摘要:
类的静态构造函数也叫类型构造器,静态构造器,他调用的时刻由CLR来控制: CLR会选择如下时间之一来调用静态构造函数: 1,在类型的第一个实例创建之前,或类型的非继承字段或成员第一次访问之前。这里的“之前”,代表前后衔接的意思。这里的时刻是精确的! 2,在非继承的静态字段或成员第一次访问之前的某个时刻,具体时刻不定! 由于调用的时刻不确定,所以我们最好不要编写依赖于特定的静态构造函数的执行顺序的代码,这样很容易产生不可预料的后果! 下面大家看三个Demo,我们来更加深入的看看静态构造函数的一些有趣的行为: Demo1: Code highli... 阅读全文
艾伟_转载:string类与StringBuilder类性能比较
2011-08-29 00:17 by 狼人:-), 164 阅读, 收藏,
摘要:
我们都知道StringBuilder的性能要比string类,是否具体测试过呢,我这里就给出这个程序供测试,一个是Timing类,用来计算时间的。另外一个类就是分别建立string,和stringbuider类建立100,1000,10000,100000字符连接进行比较。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;using System.Diagnostics;namespace DataStruct7{ 阅读全文
艾伟_转载:下载文件时根据MIME类型自动判断保存文件的扩展名
2011-08-29 00:17 by 狼人:-), 207 阅读, 收藏,
摘要:
引言
用WebClient下载远程资源时,经常会遇到类似这样的网址:
http://www.uushare.com/filedownload?user=icesee&id=2205188
http://www.guaishow.com/u/luanfujie/g9675/
我们不知道这个Url具体代表的是一个网页,还是某种类型的文件。
而有些Url虽然带有扩展名,但可能是错误的扩展名,常见的比如把gif文件标上了jpg扩展名。
如果我们没法正确判断下载源的文件类型的话,就无法保存为正确的文件格式,会给后续操作及人工阅览造成困扰。
所幸的是,WebRequest可以给出下载源的MIME信 阅读全文
艾伟_转载:【译】12个asp.net MVC最佳实践
2011-08-29 00:17 by 狼人:-), 179 阅读, 收藏,
摘要:
上一周我我在罗马进行了两场对于开发完成不久的http://www.dotnetromacesta.org/的Asp.net MVC的演讲。而其中一场演讲内容是关于我对于Asp.net MVC最佳实践的看法.因为这场演讲是在意大利进行的,为了大家能更好的阅读,我将演讲所用的ppt翻译成英文。
关于Controller的最佳实践 1-删除AccountController 让Demo代码在你的程序中是一个非常不好的做法。请永远不要使用AccountController.
2-隔离外部网络和Controller 如果依赖HttpContext,数据访问类,配置,日志等,则会让程序难以测试,修... 阅读全文
艾伟_转载:数据库设计与Linq增强使用
2011-08-29 00:17 by 狼人:-), 158 阅读, 收藏,
摘要:
最近对数据库的设计有些想法,貌似一般数据都有些通用字段 Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/ -->
publicinterfaceIData
{
///
///数据ID标识
///
decimalID{get;set;}
///
///更新时间
///
DateTimeUpdateTime{get;set;}
///
///数据状态
///
intState{get;set;}
///
///创建时间
///
DateTime... 阅读全文
艾伟_转载:让榨汁机定时工作(C#+PLC)
2011-08-29 00:17 by 狼人:-), 279 阅读, 收藏,
摘要:
买了自加热的榨汁机每天补充营养是件好事,但是为此早起一个小时却划不来。如果为了节省时间,早上用微波炉加热昨晚做好的豆汁,口感却不怎么好。怎么办?买定时加热的榨汁机,估计价钱会很高,不过市面上好像也没有带这种功能的。
正好这段时间对硬件比较感兴趣,所以抽时间用西门子PLC224实现了该功能(一个PLC一两千元,用PLC控制好像有点高射炮打蚊子--大材小用,建议最好用单片机或.Net Micro Framework实现,这样成本会很低)。
基本思路:
1、由于PLC外部没有显示和控制接口,所以需要在PC机上编写一个程序,用来设定定时时间和间隔。此外由于PLC的时钟精度较低,长时间运行偏差较大,所以 阅读全文
艾伟_转载:Java和.NET互操作:我们应该放弃Web Service吗?
2011-08-29 00:17 by 狼人:-), 140 阅读, 收藏,
摘要:
通过Web Service混合.NET和Java技术往往很容易,但Web Service并
非是.NET和Java互操作的万灵丹。Web
Service在集成独立的跨网络通信的组件时非常有用,在简单的调用/返回情景中,涉及的数据类型数量非常有限,且Web
Service是基于标准的,混合.NET和Java技术通常显得很简单,因此有人认为Web
Service是实现.NET和Java互操作的万能答案,但事实却并非如此。 在搜索引擎中搜索一下“Java .NET互操作”将会返回很多搜索结果,但听过今年6月JavaOne会议上微软主题演讲的人应该还有印象(51CTO编者注:互操作性在近年来... 阅读全文
艾伟_转载:经典讲解C# get set
2011-08-29 00:17 by 狼人:-), 194 阅读, 收藏,
摘要:
C# get set函数很常用,但是用好还是需要很多经验的,下面的文章就是帮你积累C# get set函数经验的。 C# get set不提倡将域的保护级别设为 public而使用户在类外任意操作--那样太不OO,或者具体点说太不安全!对所有有必要在类外可见的域,C#推荐采用属性来表达。属性不表示存储位置,这是属性和域的根本性的区别。下面是一个典型的属性设计: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using System;... 阅读全文
艾伟_转载:单件模式的陷阱
2011-08-29 00:17 by 狼人:-), 157 阅读, 收藏,
摘要:
看过很多单件模式的文章,书上有,网上更多一些。一般来说,只有如何实现单件模式,而没有介绍具体情况单件模式的使用,也没有介绍过单件模式会出现问题。单件模式似乎不会产生逻辑上的问题。但是,这仅仅是似乎。 在描述我遇到的问题之前,先讲讲我对其原理的理解。 首先单件模式是自我创建的一个对象,并且在运行期始终保持只有唯一的对象。抛开什么东西能够自我创建不说,保持唯一对象要怎么理解呢?先看看一个普通的类:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/... 阅读全文
浙公网安备 33010602011771号