总结的一些经验
摘要:从开发的软件《备件仓库管理系统》本人做Winform开发多年,孜孜不倦,略有小成,其中收集或者自己开发一些常用的东西,基本上在各个项目都能用到的一些开发经验及知识积累,现逐步介绍一些,以飨读者,共同进步。1、窗口【×】关闭按钮变为最小化,并在托盘提示信息一般有些管理系统,为了防止客户随意关闭程序或者基于其他原因,一般会把窗口【×】关闭按钮变为最小化,如大家熟悉的飞信、MSN等等,但是有些不是很熟悉的客户,最小化到托盘的时候,却不知道程序到了那里去了,因此,最小化的时候,伴随一个气泡提示信息,显得有一定的必要,如下截图所示。首先在主窗体的设计界面中添加一个NotifyIcon
阅读全文
Net记忆
摘要:Get All Cultures in .Net摘要: This example shows how to get all culture names in the .NET Framework. Use static method CultureInfo.Get Cultures. To get associated specific culture use static method CultureInfo.Cre ateSpecificC...阅读全文posted @2010-03-25 12:47王德水 阅读(95) |评论 (0)编辑svn实例摘要: 签出 svn checkout
阅读全文
高效分页控件(开源)再加自动恢复位置控件全部开源
摘要:在asp.net开发中经常碰到分页的问题。找了各种各样的分页控件,要么是有问题,要么是现实不了我想要的功能,要么太复杂,或者要收费。一怒之下自己写了个分页的控件(花了好多个小时才给整出的),欢迎大家拍砖。经过测试对比,结果比常见的分页控件性能要好。而且使用很简单。有问题或者bug欢迎反应或者留言,最好的把demo程序发给我。我会在这个页面及时更新。谢谢。源代码下载附上几张截图:由于GridView的分页功能实在是太弱了,所以需要使用强大的AspNetPager来作为分页控件。最简单的办法就是GridView控件下面接着放一个AspNetPager控件,但是这样好像就不能用GridView的分页
阅读全文
线程池 vs 专有线程
摘要:首先,解释一下[专有线程]这里我所表达的意思:就是对某一类任务(即调用同一个方法)用一个Thread,然后在自己封装一个处理列表,通过这一个线程循环处理任务。这里我给出我的代码:using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace POET.Common{ /// <summary> /// @author: gxjiang /// @date : 2011/4/7 /// @description : 提供一个专有的线程封装,使得这个线程可以
阅读全文
委托的相关概念
摘要:委托提供了类似C++中函数指针的功能,简单地说委托类型就是面向对象函数指针,不过C++的函数指针只能够指向静态的方法,而委托除了可以指向一个静态的方法之外还可以指向对象实例的方法,并且委托是完全面向对象且使用安全的类型。也就是说:委托可以看成是一种类型安全的函数指针,它用来代理一类符合其要求的方法(包括静态方法和动态方法即实例的方法),同时它又可以作为一个方法的参数进行传。对“符合其要求”的解释:委托的 返回类型 和 参数 要与被代理的方法的 返回类型 和 参数 一致(不仅类型一致,参数个数也要相同)。委托的优点:委托允许程序设计师可以在执行时期传入方法的名称动态地决定欲调用的方法,灵活性和扩
阅读全文
几种异步方法编程举例
摘要:此文主要是通过具体例子简述AsyncCallback ,BackgroundWorker ,web service的异步方法编程1. Handheld Program 使用AsyncCallback2. winform Program 使用AsyncCallback3. 使用BackgroundWorker4. 使用web service的异步方法usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading;usingSystem.ComponentMode
阅读全文
带你走进缓存世界
摘要:我们搞程序的多多少少都了解点算法。总体来讲,算法是什么?算法就是“时间”和“空间”的互换策略。我们常常考究一个算法的时间复杂度或空间复杂度,如果我们有绝对足够的时间或空间,那么算法就不需要了,可惜这种条件是不存在的,只是在某些情况下相对来说我们不用去考虑其中一个。今天我们讨论的“缓存”,自然就是“用空间换时间”的算法。 缓存就是把一些数据暂时存放于某些地方,可能是内存,也有可能硬盘。总之,目的就是为了避免某些耗时的操作。我们常见的耗时的操作,比如数据库的查询、一些数据的计算结果,或者是为了减轻服务器的压力。其实减轻压力也是因查询或计算,虽然短耗时,但操作很频繁,累加起来也很长,造成严重排队等情
阅读全文
基于ICallbackEventHandler的轻量级Ajax方式
摘要:cs:function rServer(arg, context) { //这里处理回调后的结果}function raiseEvent(arg, context) { //这里为arg添加参数 <%=ClientScript.GetCallbackEventReference(this,"arg","rServer","context") %>; } 2、 在页面后端,需要继承自ICallbackEventHandler接口,然后实现RaiseCallbackEvent(string eventArgument)和Get
阅读全文
不用存储过程,直接用代码来实现数据分页
摘要:我介绍了原创企业级控件库之大数据据量分页控件,这个控件主要是通过存储过程进行数据分页,得到了大家的支持,也给出了许多宝贵的建议,在这儿先感谢各位。同时也让我更有信心进行以后的文章(企业级控件库系列)。分页对于每个项目来说都有它存在的意义,想起在以前刚刚刚软件开发时,由于刚刚毕业,理论知识雄厚,但实际工作经验欠缺,记得几年前做开发时,数据量很大,要用分页,一开始真不知道如何是好,方法到知道,但速度与稳定性却没有经验。在这儿,我只是起到一个抛砖引玉的作用,以便引起我们在实际工作中要多思考,对同一件事多想几种解决方式,只有这样才能不断提高,同时要学会总结。这篇我将给大家介绍:不用存储过程,直接用代码
阅读全文
C# .NET 获取网络适配器信息
摘要:1:NetworkInterface类:该类位于 System.Net.NetworkInformation 命名空间该类可以方便的检测本机有多少个网卡(网络适配器),网卡信息,哪些网络连接可用等。2:常用方法和属性:view sourceprint?NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); Console.WriteLine("适配器个数:" + adapters.Length); Console.WriteLine(); foreach (NetworkInterf
阅读全文
对.NET初学者两个问题的个人见解
摘要:总是会在QQ群里听到初学者或者还未入门的朋友们问诸如“编程好学么”、“学编程对英语要求高么”等等这样的问题。很清楚问这些问题的人们的想法,如果编程很难学那我就不必花时间学了,免得浪费时间,如果编程对英文的要求很高,但我对英语没兴趣,那我还是放弃编程吧,免得到头来后悔。可是问这些问题的人们忘记了,每个人的理解能力,学习能力甚至所有一切其实都是不一样的,问这样的问题,很像要过河的小马。小马过河的故事大家都听过,甚至有不少人嘲笑过小马,却忘了自己有时候其实就在扮演着小马的角色。 在“万事开头难”这句话的影响下,我其实一直害怕接触新的知识,尽管C#语言的门槛很低,我还是犹豫了良久,现在想想,这才是真的
阅读全文
电子商务网站搜索架构方案
摘要:开源项目对外发布,功能和java的基本一样,但是由于缺乏良好的技术支持和社区活跃度,目前已被apache放入孵化器Lucene写入:源文件经过analyzer处理,包括分词,权重处理、生成document记录,写入存储器(硬盘或者内存)。Lucene读出:对搜索关键词进行analyzer处理,包括分词、权重、范围匹配处理.源码结构图如下:具体流程如下图:数据流图如下:二、常用推荐引擎算法问题采用基于数据挖掘的算法来实现推荐引擎是各大电子商务网站、SNS社区最为常用的方法,推荐引擎常用Content-Based推荐算法及协同过滤算法(Item-Based、User-based)。但从实际应用来看
阅读全文
微软内部代码检查工具 StyleCop 最新版(Microsoft Source Analysis for C#)
摘要:引言:SourceAnalysis (StyleCop)的终极目标是让所有人都能写出优雅和一致的代码,因此这些代码具有很高的可读性。早就听说了微软内部的静态代码检查和代码强制格式美化工具 StyleCop ,昨天(2008-05-23)微软在 MSDN Code Gallery 发布了 4.2 版本,并命名为 Microsoft Source Analysis for C# 。SourceAnalysis (StyleCop)不是代码格式化(代码美化)工具,而是代码规范检查工具(Code Review 工具),它不仅仅检查代码格式,而是编码规范,包括命名和注释等。SourceAnalysis
阅读全文
c#代码规范和质量检查工具这点事
摘要:代码风格检查:StyleCop代码缺陷检查:FxCop代码质量: 代码度量值/Code MetricsStyleCop介绍The StyleCop tool provides warnings that indicate style and consistency rule violations in C# code. The warnings are organized into rule areas such as documentation, layout, naming, ordering, readability, spacing, and so forth. Each warnin
阅读全文
一步一步学习C#多线程知识----2、ThreadPool(1)起始
摘要:写在前面:学习一种技术,我都要先搞清楚,1、我为什么要学习和使用它,它有哪些好处?2、它适用什么场合?3、如何使用它。这是我从我大学的导师那里学来的(在这里向我的导师致敬~~),我觉得很受用。之所以把如何使用放在最后,是因为在你没有搞清楚它的利弊和适用场合之前,如果上来就学习,即使学会了,在使用的过程中带来隐患。所以我会按照这个顺序来写,如果大家认为有道理的话,可以借鉴借鉴~~呵呵 1、为什么要使用ThreadPool?MSDN的官方说法是:许多应用程序创建的线程都要在休眠状态中消耗大量时间,以等待事件发生。其他线程可能进入休眠状态,只被定期唤醒以轮询更改或更新状态信息。线程池通过为应用程序提
阅读全文
一步一步学习C#中的多线程 --- 1、初识线程(3)--前台线程和后台线程
摘要:1、前台线程和后台线程的基本概念MSDN上对前台线程和后台线程有如下描述:http://msdn.microsoft.com/zh-cn/library/h339syd0(VS.80).aspx 前台线程和后台线程的主要区别就是:应用程序必须运行完所有的前台线程才可以退出;而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。 注意:通过Thread类创建的线程都是前台线程。线程池ThreadPool(后面将会介绍)中的线程都是后台线程。 在使用Thread创建前台线程时,可以通过IsBackground属性以确定该线程是前台线程还是后台
阅读全文
驱动程序安装类(C#)
摘要:回忆刚进公司那会儿,手头的第一个工作就是完成虚拟键盘,也就是通过驱动程序向键盘端口写入数据,这份活至今记忆犹新,那会儿写的是个过滤驱动程序,也就是将我的虚拟设备绑定到真实的键盘设备上,当驱动程序编译完成以后,我也总是通过下面的这个工具来安装驱动程序,每编译好一次就使用这个工具重新安装驱动一次,然后通过 DbgView 来打印消息,那会儿还真傻,为了弄出这么个虚拟键盘,都不晓得安装了驱动多少回,直到后来,当驱动程序完成以后,就需要部署驱动程序了,在网上找了很多资料,大部分也都是通过 INF 文件来实现,而对于 WDM 驱动程序,则还可以通过服务控制台来实现安装,模模糊糊还记得当初就是通过这个服务
阅读全文
asp.net(c#)上传图片到数据库
摘要:这几天一直在忙,怎么把图片保存到数据库中,在前台的图片切换中自动从数据库中检索最新的图片显示,按照这个过程,我首先讲一下我这几天的所得,因为也是刚学,又从网上查资料,也是找自己能看懂的来运用的,不难有与别人不一样的地方。其实,在数据库中是不能直接保存图片类型的。编程人员一般采取两种方法来保存图片:1、用来保存图片在服务器的虚拟路径;2、直接保存图片转换后的二进制数据流;在实际开发中,这两种都可以,但是各有各的优缺点。第一种方法,存取路径,当然比较简单,我们用Image控件的话,只要读取其路径,给了Image控件的ImageURL就可以了,但是它的缺点也就在于这个路径。如果本地的图片路径变换了或
阅读全文
asp.net(c#)从数据库里读取图片并显示到页面
摘要:上一篇我说了怎么将图片保存到数据库,这里我说一下,怎么将图片从数据库中提取出来并显示到页面中。图1:直接在页面输出二进制图片。图二:动态添加Image和显示多张图片使用一般处理程序。这里我就不讲怎么读取第一种的方法了,因为太简单了,只是读取路径出来再将路径赋给你想要绑定的控件上就可以了。这里我只是单独讲一下,怎么读取二进制流的图片。为了简单点讲,我就只是在页面显示一张图片。在page_load()事件里写上如下代码://连接数据库SqlConnection cn= new SqlConnection("server=.;uid=sa;pwd=****;database=za"
阅读全文
dynamic是FrameWork4.0的新特性
摘要:http://www.microsoft.com/china/community/clubs/blogs.mspxdynamic是FrameWork4.0的新特性。dynamic的出现让C#具有了弱语言类型的特性。编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性。比如,即使你对GetDynamicObject方法返回的对象一无所知,你也可以像如下那样进行代码的调用,编译器不会报错: dynamic dynamicObject = GetDynamicObject(); Console.WriteLine(dynamicObject.Name); Conso
阅读全文