文章分类 -  编程那些事

摘要:从 MSDN 中看到这篇文章,觉得不错转了过来,对于我这样的.NET新手来说每个工具都是提高效率的好开始。将这十款软件的介绍重新格式化一下,方便以后查阅。以“.NET 程序员十种必备工具”开头的10篇文章都是从这篇文章中分离出来,每篇文章就不分别注明版权和出处了。本文自发布以来已经增加了新信息。请参阅下面的编辑更新。除非您使用能够获得的最佳工具,否则您无法期望生成一流的应用程序。除了像 Visual Studio?.NET 这样的著名工具以外,还可以从 .NET 社区获得许多小型的、不太为人所知的工具。在本文中,我将向您介绍一些目前可以获得的、面向 .NET 开发的最佳 阅读全文
posted @ 2011-02-22 09:50 愤怒的熊猫 阅读(161) 评论(0) 推荐(0) 编辑
摘要:CodeSmithCodeSmith 是一种基于模板的代码生成工具,它使用类似于 ASP.NET 的语法来生成任意类型的代码或文本。与其他许多代码生成工具不同,CodeSmith 不要求您订阅特定的应用程序设计或体系结构。使用 CodeSmith,可以生成包括简单的强类型集合和完整应用程序在内的任何东西。当您生成应用程序时,您经常需要重复完成某些特定的任务,例如编写数据访问代码或者生成自定义集合。CodeSmith 在这些时候特别有用,因为您可以编写模板自动完成这些任务,从而不仅提高您的工作效率,而且能够自动完成那些最为乏味的任务。CodeSmith 附带了许多模板,包括对应于所有 .NET 阅读全文
posted @ 2011-02-22 09:49 愤怒的熊猫 阅读(230) 评论(0) 推荐(0) 编辑
摘要:在上一篇文章中,我们从构建响应灵敏的界面以及构建高可伸缩性的服务应用来讨论我们为什么需要异步编程,异步编程能给我们带来哪些好处。那么知道了好处,我们就开始吧,但是在异步编程这个方面,说总是比做简单。套用那句不是名言的名言:编写异步程序是困难的,编写可靠的异步程序尤其困难。因为异步程序非常难以编写,而且非常容易出错,很多基本的构造元素在异步编程中都无法使用,这让我们这些开发人员更愿意编写同步的代码,虽然我们知道有些地方真的应该使用异步。如何实现异步对于很多人来说,异步就是使用后台线程运行耗时的操作。在有些时候这是对的,而在我们日常大部分场景中却不对。比如现在我们有这么一个需求:使用HttpWeb 阅读全文
posted @ 2011-02-22 09:48 愤怒的熊猫 阅读(137) 评论(0) 推荐(0) 编辑
摘要:在2010年的PDC上,微软发布了Visual Studio Async CTP,大大地降低了异步编程的难度,让我们可以像写同步的方法那样去编写异步代码。Async CTP也在社区里掀起了不小的波澜。在这之后,我也学习了一段时间,这个系列会将这段时间的学习作个梳理。好了,下面进入本文的正题。为什么需要异步编程既然同步的写法更自然简单,异步的代码(传统的)不好写,还容易出错,那我们为什么需要去编写异步的代码呢?微软还要费这么大劲投入对Async CTP的开发呢?这其中肯定有一些原因。快速响应的用户界面作为电脑的资深用户,我们肯定有多次“漏斗式鼠标”,“转圈式鼠 阅读全文
posted @ 2011-02-22 09:47 愤怒的熊猫 阅读(169) 评论(0) 推荐(0) 编辑
摘要:http://www.rainsts.net/feed.asp?q=comment&id=363SQLite 作为一个轻量级嵌入式数据库,还是非常好用的。雨痕极力推荐~~~~~~今天有个朋友测试 SQLite,然后得出的结论是:SQLite 效率太低,批量插入1000条记录,居然耗时 2 分钟!下面是他发给我的测试代码。我晕~~~~~~using System.Data;using System.Data.Common;using System.Data.SQLite;// 创建数据库文件File.Delete("test1.db3");SQLiteConnection.CreateF 阅读全文
posted @ 2011-02-22 09:45 愤怒的熊猫 阅读(262) 评论(0) 推荐(0) 编辑
摘要:前一阵子写了不少关于代码生成相关的文章,介绍了一些如何通过VS自动生成代码的解决方案,比如CodeDOM、T4以及ASP.NET的BuildProvider等。现在将它们作一个汇总,给广大读者作一个参考。[第1篇]通过CodeDOM定义生成代码的结构我不知道大家对CodeDOM的代码生成机制是否熟悉,但是有一点可以确定:如果你使用过Visual Studio,你就应该体验过它带给我们在编程上的便利。随便列举三种典型的代码生成的场景:在创建强类型DataSet的时候,VS会自动根据Schema生成相应的C#或者VB.NET代码;当我们编辑Resource文件的时候,相应的的后台代码也会自动生成; 阅读全文
posted @ 2011-02-22 09:43 愤怒的熊猫 阅读(177) 评论(0) 推荐(0) 编辑
摘要:本文与大家分享42个精美的PSD资源。非常感谢那些很有才华的设计师分享它们的劳动成果,让更多的设计师可以使用他们的创意设计。本文所有素材来自于:http://freepsdfiles.net在那,你将找到更多更精美的素材!1.Circle Arrows PSD Pack2.Arrow PSD Megapack3.8 Free Subscribe Badges4.Abstract Snowy Background Set5.Billboard Template6.PSD Comics Bubbles Pack7.Ultimate People Icon Set8.Email Guys Icon 阅读全文
posted @ 2011-02-22 09:40 愤怒的熊猫 阅读(167) 评论(0) 推荐(0) 编辑
摘要:在判断DataGridView中CheckBox选中列的时候,发现明明选中了CheckBox,但DataGridViewRow.Cells[0].FormattedValue值却为False.解决方法:1、在调用前提交操作,代码如下。然后使用FormattedValue取值。[代码]2、直接使用EditedFormattedValue。 FormattedValue是操作提交后的结果,而EditedFormattedValue是当前的结果,不管结果是否已经提交。 阅读全文
posted @ 2011-02-21 11:31 愤怒的熊猫 阅读(506) 评论(0) 推荐(0) 编辑
摘要:这篇文章主要跟大家分享下,在配餐系统的开发中,对tableLayoutPanel 和 flowLayoutPanel 控件的使用方法和技巧 ——后附上 测试demo, 相信需要的朋友下载看后能很快的知道其如何使用并实现一些效果和扩展应用!tableLayoutPanel: 表格布局面板,适合以表格形式规则的动态添加(显示)控件。使用方法概述:1.将tableLayoutPanel拖放到窗体指定区域 ——一般做些基本的设置 或添加行或列,其它的就需写代码来控制显示 2.代码:a.[代码]——删除默认的行和列样式,避免影响表格 阅读全文
posted @ 2011-02-21 11:22 愤怒的熊猫 阅读(1398) 评论(0) 推荐(1) 编辑
摘要:[代码] 阅读全文
posted @ 2011-02-21 11:21 愤怒的熊猫 阅读(433) 评论(0) 推荐(0) 编辑
摘要:在前面我们已经完成了ActiveX控件的开发,接下来的就是发布它了。 首先,我们建立一个windows安装项目,并将ActiveX控件的主输出添加到项目输出中。然后,改动ActiveX控件的主输出文件,将其Register属性改为vsdrpCOM.如图:下一步,我们改动项目属性,将引导程序更改为Web引导程序。很遗憾的是,在Web引导程序设置 中的安装文件夹URL中必须使用绝对路径,不能使用相对路径。这意味着生成安装程序的时候就必须确定路径,不是很方便。在示例中,我使用了localhost,在发布中可以改为实际的域名。现在我们生成安装程序,并把相应得程序拷贝到正确的目录中(本例中为默认网站目录 阅读全文
posted @ 2011-02-18 13:50 愤怒的熊猫 阅读(162) 评论(0) 推荐(0) 编辑
摘要:用C#编写ActiveX控件(二)Homer在我的上一篇blog中,已经实现了一个最基本的ActiveX控件。当然,我们编写的任务还没有完成。首先,我们先尝试实现和JS的交互能力。我们在Demo中加入ShowMessage方法:publicvoidShowMessage(stringmsg){if(msg!=null){MessageBox.Show(msg);}}我们重新编译。在重新访问页面之前,我们先来修改html代码:<bodybgcolor='#223344'><objectid="helloworld"classid="clsid:9551B223-6188-438 阅读全文
posted @ 2011-02-18 13:49 愤怒的熊猫 阅读(126) 评论(0) 推荐(0) 编辑
摘要:用C#编写ActiveX控件(一) 前些日子做一个Web项目,必须自己编写一个ActiveX控件。如今的ActiveX控件大多是使用VB/C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写ActiveX控件。 首先,建立一个WinForm控件项目HelloWorld,并拖入一个Label控件,文字设为HelloWorld,如图:UserControl1.cs内容如下:usingSystem;usingSystem.Collections;usingSystem.ComponentModel;usingSystem.Drawing;usingSystem.Data;usingSyst 阅读全文
posted @ 2011-02-18 13:47 愤怒的熊猫 阅读(166) 评论(0) 推荐(0) 编辑
摘要:自从微软对IE6的ActiveX更新后,每次用IE打开带有ActiveX控件的页面时,必须要进行控件激活操作(点击相关控件),否则该控件将无法正常工作。如果在页面上使用ActiveX控件不多的话,每次多点一下也就算了,不过一旦要频繁操作或者控件很多,每次要做这个重复劳动时,客户肯定会疯掉了。MSDN提供了相应的解决办法,可以不需要手工激活,回到以前一样的操作。下面三种办法,关键是把传统页面和控件输出进行分离,技术核心是DHTML和脚本。方法一(入门篇,解决问题即可):<!-- ActiveX.html --><html><body leftmargin=0 top 阅读全文
posted @ 2011-02-18 13:45 愤怒的熊猫 阅读(133) 评论(0) 推荐(0) 编辑
摘要:1、如果需要创建cab文件,首先需要Cabarc或者Makecab,它们随着Cabinet SDK的安装就有了,Cabinet SDK的下载地址是http://msdn.microsoft.com/workshop/management/cab/cabdl.asp。 Cabarc可以创建、查看或者解出cab里面的文件,而Makecab则只可以用来创建cab文件。 2、制作cab文件时需要将所有的相关文件都包含进去,可以通过Depends(VC自带的)检查需要的文件。使用inf文件将这些东西都写进去。 3、inf搞法:inf文件描述cab中所有的ocx及dll文件,inf通过一些命名区域来提供需 阅读全文
posted @ 2011-02-18 13:42 愤怒的熊猫 阅读(97) 评论(0) 推荐(0) 编辑
摘要:附件下载(源代码+安装文件+教程)0. 前言ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。使用ActiveX插件,可以轻松方便的在 Web页中插入多媒体效果、交互式对象以及复杂程序等等。通常使用C++或VB开发ActiveX控件,本文探讨一下在Visual Studio 2005环境中使用C#开发ActiveX控件的技术实现。1. 问题场景在C/S架构的系统中,客户端要实现某些业务功能,可以通过安装相关的应用程序集来方便的实现。同样的需求,在B/S架构的系统里实现起来却比较困难。因为所有的程序都放在服务器端,客户端只是采用 阅读全文
posted @ 2011-02-18 12:43 愤怒的熊猫 阅读(217) 评论(0) 推荐(0) 编辑
摘要:listbox和combox的数据绑定问题这几天在做一个小东西,有一个关于数据绑定的问题,自已一直很郁闷,害我耗费了很多的时间,到最后还是没有搞明白事怎么回事,我对ListBox和ComboBox进行数据绑定 ,在获取数据的时候一直出问题,以前学习的时候没有遇见过,的绑定方法是string SQL = "select * from UserInfo"; ds=DB.GetDataSet (SQL); lboxUser.DataSource = ds.Tables [0]; lboxUser.DisplayMember = "UserID";在我获取数据时候,总是的得到值总是 System.Da 阅读全文
posted @ 2011-02-17 11:22 愤怒的熊猫 阅读(542) 评论(0) 推荐(0) 编辑
摘要:·关于C#中timer类 在C#里关于定时器类就有3个1.定义在System.Windows.Forms里2.定义在System.Threading.Timer类里3.定义在System.Timers.Timer类里System.Windows.Forms.Timer是应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程序)无法使用。System.Timers.Timer和System.T 阅读全文
posted @ 2011-02-15 16:10 愤怒的熊猫 阅读(181) 评论(0) 推荐(0) 编辑
摘要:如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待Mutex对象被释放,如果它等待的Mutex对象被释放了,它就自动拥有这个对象,直到它调用Mutex.ReleaseMutex()方法释放这个对象,而在此期间,其他想要获取这个Mutex对象的线程都只有等待。下面这个例子使用了Mut 阅读全文
posted @ 2011-02-15 15:51 愤怒的熊猫 阅读(166) 评论(0) 推荐(0) 编辑
摘要:Timer类:设置一个定时器,定时执行用户指定的函数。定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象:Timer timer = new Timer(timerDelegate, s,1000, 1000);// 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要使用的信息的对象,或者为空引用;// 第三个参数:延迟时间——计时开始的时刻距现在的时间,单位是毫秒,指定为“0”表示立即启动计时器;// 第四个参数:定时器的时间间隔—&mdas 阅读全文
posted @ 2011-02-15 15:50 愤怒的熊猫 阅读(241) 评论(0) 推荐(0) 编辑