
.Net 技术
文章平均质量分 65
eaglet
这个作者很懒,什么都没留下…
展开
-
自动生成Insert 语句的小工具
做了一个小工具,可以将 SQLSERVER 中的表、视图或者查询语句导出为Insert 语句。 如上图所示,你只要输入查询字符串,查询的SQL 语句 比如 select * from news生成Insert 语句中的表名已经生成行数,点击 Build 就可以生成一个批量Insert 语句的文件。 源码和可执行程序下载地址 代码Databas原创 2009-12-15 11:52:00 · 4604 阅读 · 0 评论 -
让.Net 应用程序突破2G的内存访问限制
让.Net 应用程序突破2G的内存访问限制 Author: Eaglet 32位Windows操作系统下单个进程的用户模式内存访问的限制是2G,如果在boot.ini中设置了/3G开关,则最大为3G,超过3G将无法访问。由于Hubble.net项目是一个数据库系统,必须要考虑使用大内存缓存数据的问题,于是最近对这个问题进行了一些研究。其实这块的技术是现成的,32位操作系原创 2008-11-06 20:34:00 · 1098 阅读 · 0 评论 -
Hubble.Net 全文数据库开源项目
Hubble.Net 全文数据库开源项目 项目简介Hubble.Net 全文数据库开源项目是一个建立在 .net 框架基础上的由中国程序员主导的全文数据检索开源项目。项目旨在为全文检索开发者或用户提供一个简单易用、高性能、高可用性的全文数据库中间件。Hubble.Net的骨干版本提供最基本的全文检索接口和界面,并被设计为高度可扩展的系统架构,以吸引众多的开发者参与进系统扩展功能的研发和原创 2008-10-30 06:40:00 · 2527 阅读 · 0 评论 -
用DataReader 分页与几种传统的分页方法的比较
用DataReader 分页与几种传统的分页方法的比较 作者:肖波 对于数据库的分页,目前比较传统的方法是采用分页存储过程,其实用 DataReader 也可以实现分页,不需要写存储过程,实现效率上也比几种比较流行的分页方法要略快。 在开始这个方法之前,让我们先创建一个简单的测试环境: Code highlighting原创 2008-10-09 10:17:00 · 828 阅读 · 0 评论 -
C#代码动态编译、动态执行、动态调试
C#代码动态编译、动态执行、动态调试Author:Eaglet 前几天看到一篇关于.net动态编译的文章 .NET中的动态编译 ,很受启发。在此基础上我做了一些封装,为使调用更加简单,并增加了对动态代码调试的支持,相同代码只编译一次的支持,代码改动自动重新编译,代码引用文件的自动加载和手工加载等功能。 如上图,我封装的类CSharpProvider原创 2008-10-17 13:13:00 · 2333 阅读 · 0 评论 -
Lucene 及 Lucene.net 国内外的一些学习资源汇总
目前互联网上关于Lucene 及 Lucene.net 的文章很多,看了一些,感觉绝大部分还是偏向于应用,真正深入探讨其核心算法的文章不是太多,最近打算深入研究一下Lucene.net,把一些关键技术 点的核心算法搞清楚。在开始做这个工作之前,先对目前互联网上可以利用的资源做个汇总,算是抛砖引玉吧,还望网友们多来补充,大家共同学习! lucene 官方网站, Luncene原创 2008-07-04 11:16:00 · 973 阅读 · 0 评论 -
采用管道进行通讯的例子续
采用管道进行通讯的例子续 作者:肖波 今天对 .net 2.0 的 System.Runtime.Remoting.Channels.Ipc 做了一个相同的测试,测试结果是每秒传输速度为 33MB。 由于底层技术都是 一样的,我估计其比我这个例子(180MB每秒)慢的主要原因应该是在序列化上。 System.Runtime.Remoting.C原创 2008-06-13 13:50:00 · 787 阅读 · 0 评论 -
采用管道进行通讯的例子
采用管道进行通讯的例子 作者:肖波 用Remoting做进程间通讯,效率较低,于是做了一个采用管道技术进行进程间通讯的例子,在1.8G 双核计算机上每秒钟可以发送180M数据。下面给出源码 Server端的管道类 Code highlighting produced by Actipro CodeHighlighter (freew原创 2008-06-12 15:50:00 · 1043 阅读 · 0 评论 -
KTDictSeg 分词组件1.3版本 部分算法讨论 -- 中文姓名识别和未登录词识别
作者 肖波 中文姓名识别和未登录词识别是中文分词中的难点,具体为什么是难点,很多文章都有叙述,这里不再多讲。主要介绍一下 1.3版本是如何对中文姓名和未登录词进行识别的。 中文姓名识别 中文姓名千变万化,我们不可能在字典中把所有的中文人名都列出来。1.2版本对中文人名进行了比较复杂的判断,但效果依然不理想。所以1.3版本干脆简化 了算法。1.3版本的算法主要基于中文人名的前原创 2008-05-30 07:37:00 · 1461 阅读 · 0 评论 -
用 .Net WebBrowser 控件获取POST数据
用 .Net WebBrowser 控件获取POST数据 很多应用中,开发者需要自己构建一个浏览器,并且对通过这个浏览器提交的请求进行截获,比如用户通过这个浏览器浏览了一个网页,并向网站提交(POST)了一些信息,我们想在其提交到网站前对这些POST数据在浏览器侧进行截获,做一些跟踪日志,或者对这些数据先加密或转换后再发送到服务器。.Net 提供的WebBrowser控原创 2008-11-19 08:06:00 · 1485 阅读 · 0 评论 -
.Net 下未捕获异常的处理
.Net 下未捕获异常的处理 作者:Eaglet 随着.Net技术的发展,.Net技术被逐渐应用到很多大型的应用软件项目中。这些项目的规模越来越大,很多项目中除了自己的代码外还引用了很多第三方的.net组件。同时很多项目又被应用到很多关键的部门,软件系统的稳定性越来越至关重要。由于.Net框架提供了非常强大的异常处理机制,同时对一些非托管代码很难控制的系统问题比如指针越原创 2009-05-25 09:25:00 · 1171 阅读 · 0 评论 -
对老赵写的简单性能计数器的修改续- 关于 GetThreadTimes
关于 GetThreadTimes 我在一篇博文中 《对老赵写的简单性能计数器的修改》 提到用 GetThreadTimes 这个Win32 API 来获取线程实际运行时间。今天我又深入研究了一下,发现这个API 返回的时间并不准确。 首先我们先看一下 GetThreadTimes 的实现原理: 在 kernel32.dll 内部 GetThreadTimes原创 2009-05-25 09:27:00 · 2368 阅读 · 0 评论 -
WinForm 下实现一个自动关闭的MessageBox
WinForm 下实现一个自动关闭的MessageBoxAuthor: eaglet WinForm 下我们可以调用MessageBox.Show来显示一个消息对话框,提示用户确认等操作。在有些应用中我们需要通过程序来自动关闭这个消息对话框而不是由用户点击确认按钮来关闭。然而.Netframework 没有为我们提供自动关闭MessageBox 的方法,原创 2009-08-29 12:04:00 · 3041 阅读 · 0 评论 -
如何将字符串动态转换为指定的值类型
如何将字符串动态转换为指定的值类型作者:eaglet转载请保留原作者署名并注明出处。 我们日常工作中经常会遇到将字符串转换为值类型的问题,比如"123"转换为一个Int32类型,这个很简单,我们只要调用int.Parse 函数就可以实现。eaglet今天要说的是,一些应用中往往在编码阶段无法知道字符串需要转换成的值类型的具体类型,而需要在运行时动态指定类型进行转换,原创 2009-08-29 12:02:00 · 2755 阅读 · 0 评论 -
事件委托使用时内存泄漏的问题
事件委托使用时内存泄漏的问题 用C#编写事件或委托时如果处理不好会造成内存泄漏,看下面代码: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> public class DoA2Ev原创 2009-05-25 09:20:00 · 1561 阅读 · 0 评论 -
C# WinForm下一步一步实现文件的拖入和拖出
C# WinForm下一步一步实现文件的拖入和拖出 作者:Eaglet 在WinForm实现一个类似资源浏览器的功能,需要实现将WinForm中列出的文件拖出到其他应用程序中或者从其他应用程序中将文件拖入到Winform应用中。网上有一些文章介绍这种功能,但都比较零散,缺少一个完整的例子。为此我编写了一个较完整的实现文件拖入和拖出的例子,并撰写此文一步步讲解如果实现类似原创 2009-05-25 09:18:00 · 943 阅读 · 0 评论 -
对 String 的几个错误认识
对 String 的几个错误认识 昨天调试一段程序发现内存始终释放不掉,最后终于发现是对String的错误使用造成,这促使我今天又仔细研究了一下String类型,不研究不知道,一研究发现我过去对String的很多认识都是错误的,感觉这种错误认识还比较有典型性,于是写下此文和大家一起探讨。 1. String 类型变量追加,或修改后的新String对象是驻留(Inte原创 2009-05-25 09:35:00 · 958 阅读 · 0 评论 -
并行排序算法
并行排序算法 Author:Eaglet 今天早晨看到 蛙蛙池塘 的这篇博客 谁能把这个程序的性能提升一倍?---并行排序算法 。促使我写了一个并行排序算法,这个排序算法充分利用多核CPU进行并行计算,从而提高排序的效率。 先简单说一下蛙蛙池塘给的A,B,C 三种算法(见上面引用的那篇博客),A算法将耗时的平方和开平方计算放到比较函数中,导致Array.原创 2009-05-25 09:30:00 · 2125 阅读 · 0 评论 -
对老赵写的简单性能计数器的修改
对老赵写的简单性能计数器的修改 早上看到老赵写的这个性能计数器,感觉很实用,不过老赵用了很多.C# 3.0 的新语法,还用了 VISTA 和 Server2008 下特有的Win32 API,对于还在用C#2.0 或者还工作在 XP 或者 Server 2003下的兄弟们,只能望代码心叹了。应老赵的要求,我修改了他的代码,增加了对低版本C# 和 低版本windows 操作系统的支原创 2009-05-25 09:26:00 · 970 阅读 · 0 评论 -
采用部分快速排序算法实现数组的部分排序
采用部分快速排序算法实现数组的部分排序 Author: Eaglet 快速排序算法,网上相关文章已经介绍的很多了,数据结构教材中也有很详细的介绍。本文需要阐述的不是全排序快速排序算法,而是部分快速排序算法。所谓部分快速排序算法是指通过排序获取一个数列中最大的若干条有序记录。比如我们需要从一个有1百万记录的数组中获取前100条有序记录,并按从大到小顺序显示给用户,这种应用原创 2009-05-25 09:34:00 · 1499 阅读 · 0 评论 -
.Net 下调试跟踪线程挂起和程序死循环
.Net 下调试跟踪线程挂起和程序死循环作者:Eaglet .Net 下的程序调试相对C/C++要简单很多,少了那些令人头疼的指针越界的问题。不过当你的程序遇到如下问题时,依然非常棘手: 1. 进程异常终止。解决方案见 .Net 下未捕获异常的处理 2. 内存泄漏或者内存申请后程序始终没有释放。解决方案见 用 .NET Memory Profiler 跟原创 2009-05-25 09:29:00 · 1831 阅读 · 0 评论 -
通过编程管理windows 防火墙
作者:肖波 最近项目中需要通过程序自动设置windows 防火墙,查了一下资料,可以通过命令行netsh firewall来实现。封装了一个类来实现对允许放开的程序(Allowed program)进行管理。管理其他内容比如放开端口等方法是类似的。 程序中用到一个公共类 RunProcess,这个类可从我的另一篇文章 一个C#写的调用外部进程类 获得 Code high原创 2008-05-30 07:33:00 · 952 阅读 · 0 评论 -
如何获取 Exception 的 HResult 值
在编程中往往需要获取Exception 的HResult值以得到具体的错误原因。但这个值是一个保护类型的属性,无法直接读取。可通过 System.Runtime.InteropServices.Marshal.GetHRForException 这个函数来获取。原创 2008-05-16 10:23:00 · 1544 阅读 · 1 评论 -
.Net 中用查找窗体标题的方法检查WinForm应用是否重复运行
设计桌面应用程序时往往只希望该程序在桌面中只能运行一次。本文给出一个通过判断窗口标题来判断桌面应用是否重复运行,这种方法比较简单,但不是最好的,如果第一个应用的主窗体还没来得及创建第二个应用就起来了,就可能同时起两个窗体。但一般情况下不会有这个问题。最好的方法还是通过互斥量来判断。using System;using System.Collections.Generic;u原创 2007-08-15 07:59:00 · 1340 阅读 · 0 评论 -
一款开源的安全证书登录组件--SecUser
设计,开发:肖波页面:顾晓燕美工:孙莹莹2007-8简介安全证书登录组件SecUser,后简称SecUser是www.kaitoo.com开发的一款基于.Net的开放源码的安全证书登录组件,该组件可以帮助用户构建一个类似于银行的网上银行系统的基于证书验证的Web应用系统。该组件封装了证书的管理功能,验证功能,以及登录后Web应用系统的安全认证功能,为开发者提供一个方便易原创 2007-08-12 18:30:00 · 1380 阅读 · 2 评论 -
用一行程序去除全文中连续的空格和空行
处理全文时我们经常需要对全文进行一定的压缩,去除全文中连续出现的空格 ,空行以及Tab。当然我们可以写一个程序对全文进行分析判断,达到我们所希望的效果。本文介绍的方法只需一行程序就可以达到去除两个以上连续空格和空行的效果。程序如下using System.Text.RegularExpressions; String inputStr = "xxx /r/n原创 2007-05-05 09:38:00 · 2260 阅读 · 6 评论 -
对CodeSmith + netTiers 生成DAL的一点补充
对CodeSmith + netTiers 生成DAL的一点补充 作者:肖波个人博客:http://blog.youkuaiyun.com/eaglet ; http://www.cnblogs.com/eaglet2007/7 南京 版本CodeSmith 4.0 netTiers 2.0.1背景 最近在项目中使用CodeSmith + netTiers 生成数据访问层DA原创 2007-07-26 16:30:00 · 2477 阅读 · 1 评论 -
ASP.NET 下存取Web.Config中的AppSettings字段
可通过如下语句实现对该字段配置的存取System.Configuration.ConfigurationManager.AppSettings["xxxx"]原创 2007-07-24 11:18:00 · 2574 阅读 · 0 评论 -
JavaScript 模式对话框实现及参数传递的简单例子
用JavaScript 弹出模式对话框 ,其实很简单,只需要调用showModalDialog这个函数就可以实现下面是一段ASP.NET页面完整代码,它作为模式对话框的父窗口,其实现的功能是点击按钮后将TextBoxTestId和HiddenUserId 两个控件的值通过查询字符串传递给模式对话框。这里要注意的是showModalDialog函数的第二个参数,通过这个参数可以把父窗口的原创 2007-07-24 11:04:00 · 10841 阅读 · 2 评论 -
对于时间格式 08/21 08:21 用 MM/dd HH:mm 格式无法进行匹配的问题
DateTime 类型可以指定格式进行字符串转换,但对于 08/21 08:21 这样的时间格式,用按说应该用 MM/dd HH:mm 这样的格式串指定格式,但总是无法匹配。后来我发现 “/” 这个字符是特殊字符,必须通过“/”转义才能被正确识别。将格式字符串该为MM//dd HH:mm 后,问题解决 eaglet2007-4-20原创 2007-04-20 22:53:00 · 1151 阅读 · 0 评论 -
创建X509证书,并获取证书密钥的一点研究
创建X509证书,并获取证书密钥的一点研究 作者:肖波个人博客:http://blog.youkuaiyun.com/eaglet ; http://www.cnblogs.com/eaglet2007/7 南京 背景服务器SSL数字证书和客户端单位数字证书的格式遵循 X.509 标准。 X.509 是由国际电信联盟(ITU-T)制定的数字证书标准。为了提供公用网络用户目录信原创 2007-07-11 20:45:00 · 9697 阅读 · 4 评论 -
Microsoft.Net中数字签名技术
转自 赛迪网 作者: 来源:cfan 发布时间:2006.07.27本文以Microsoft.Net中创建签名的CAB文件为例,说明怎样创建签名文件,从而使你的代码可以安全的在INTERNET上发布。希望能起到抛转引玉的作用。 关键字:数字签名,ActiveX,CAB 一、 Internet安全与数字签名 对于 Internet 应用程序的开发人员和用户而言,代码安全是一个主要问题。有下列风险转载 2007-07-10 08:16:00 · 1319 阅读 · 0 评论 -
查找WinForm中已打开的窗体
WinForm中有哪些窗体已经被打开 ,可以通过Application.OpenForms来判断 foreach (Form form in Application.OpenForms) ...{ switch(form.Text) ...{原创 2007-08-15 08:02:00 · 3570 阅读 · 0 评论 -
如何获取当前线程的调用堆栈
程序开发时往往需要获取当前的调用堆栈,以方便调试或跟踪错误。在.Net 下获取当前调用堆栈可以通过 Environment.StackTrace 来实现原创 2007-08-15 17:58:00 · 4640 阅读 · 0 评论 -
判断某个列名是否在DataTable中存在的例子
使用 DataTable.Columns.Contains方法可以判断某个列名是否存在于某个DataTable中 DataTable t = new DataTable(); DataColumn col = new DataColumn("aaa"); t.Columns.Add(col); c原创 2007-08-17 23:09:00 · 19773 阅读 · 0 评论 -
设置 NULL DACL 权限描述符解决ASP.NET 通过 FileMapping 与其他进程通信问题
最近做了一个采用FileMapping进行进程间通信的程序,目的是希望通过这个程序实现WebService和我写的其他服务之间通信,实现安全隔离以及一些状态的跟踪、保持和管理。做好后,先用两个普通的Windows 进程测试了一下,在1.8G双核笔记本电脑上,每秒钟可以发送3万个1000字节大小的消息,效率基本达到我的要求(我没有把效率优化到极致,效率瓶颈和优化方法我基本知道,就是人懒,现在的方案已原创 2008-05-14 20:58:00 · 1207 阅读 · 2 评论 -
修改 lucene Highlighter.net 2.0 版本一处Bug
修改 HighLight.net 2.0 版本一处Bug作者:肖波 最近我的博客中有两位网友在使用 KTDictSeg 1.3 + lucene.net 2.0 + HighLighter.net 2.0 是出现问题,高度怀疑是HighLight.net 2.0 版本的Bug,今天腾出时间把几个组件的源码全部下下来,调试了一把,终于找到了这个Bug,下面把Bug的具体原因原创 2008-07-17 09:23:00 · 1738 阅读 · 11 评论 -
IIS ASP.NET 安装顺序
如果先安装IIS再安装 .Net Framework。一切OK,不需要做任何事情。如果先安装 .Net Framework再安装IIS,则 .Net Framework不会自动注册到IIS,必须执行 .Net Framework下的 apsnet_regiis.exe 来注册注册方法是 apsnet_regiis - i原创 2008-05-08 08:14:00 · 4062 阅读 · 0 评论 -
修改 highlighter.net-1.4.0 一处Bug
最近在做KTDictSeg 的 1.3 版本,在这个版本中做了一个用Lucene.net 搜索新闻的例子,其中生成关键词摘要用了highlighter.net-1.4.0版本,发现中文关键词摘要生成结果总是不对,但英文的结果是对的。没办法,只得把highlighter.net的源码拿出来调了一遍,最终发现问题在TokenGroup类的IsDistinct函数上。该函数源码如下 i原创 2008-05-06 19:01:00 · 983 阅读 · 2 评论 -
ConfigurationPattern V1.1.1 版本发布
ConfigurationPattern V1.1.1 版本发布作者:肖波 V1.1.1 版本增加一个配置模式 RegistryKeyPattern,用于帮助调用者自动读写注册表配置。另外该版本将IConfigurationPattern 接口的parameter 参数类型有String改为Object,以便更加通用。 注册表配置的使用:Code highlight原创 2008-05-06 17:47:00 · 733 阅读 · 1 评论