现在ORM已经是一门非常成熟的技术了,相信用的人不少.加上Linq to sql和Entity Framework的推波助澜.现在还用DataSet和DataTable的人已经越来越少了.不过,如果项目里面不用ORM工具,就不得不回归到DataSet时代吗?也许,我们没法改变项目的决策,但是,我们可以自己制造工具。这里先忽略掉那些麻烦的sql,调用那个存储过程之类的事情,假设我们已经通过各种手段(不管你是SqlHelper的拥护者还是enterprise library的支持者,或者是自己动手丰衣足食的DIY派),得到了一个IDataReader实例(什么,你不知道IDataReader接口? Read More
posted @ 2012-08-18 09:21 韬韬韬你羞得无礼 Views(1811) Comments(2) Diggs(0) Edit
1.知道现在编程什么是最宝贵的?数据库连接,它其实是很耗费资源的。这里我们就连接池这个问题我们来一起讨论讨论吧。数据库连接池是为了更有效地利用数据库连接的最重要措施。它对于一个大型的应用系统的性能至关重要,特别是Web应用。ADO.NET Data Provider(以下简称Data Provider)会帮我们管理连接池,所以有人说使用连接池就像游儿童池一样轻松。但并不是说有了Data Provider程序员就万事无忧的,不正确地使用连接池可能导致你的应用在池里淹死。2.什么是ADO.NET连接池?ADO.NET连接池是Data Provider提供的一个机制,使得应用程序使用的连接保存在连接 Read More
posted @ 2012-08-18 09:18 韬韬韬你羞得无礼 Views(152) Comments(0) Diggs(0) Edit
这篇博文给大家分享的是,如何使用VS自带的性能分析工具来分析我们编写的.NET程序,一边找出程序性能的瓶颈,改善代码的质量。在实际开发中,性能真的很重要,往往决定一个产品的生死~良好的用户体验的基础之一也是程序要有好的性能~下面以一个大家熟悉比较极端的例子,来说明编写代码时考虑性能的重要性。这里DebugLZQ用的是10.0版本的VS。示例程序代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace VS2010性能测试{ class Program... Read More
posted @ 2012-08-18 09:17 韬韬韬你羞得无礼 Views(301) Comments(0) Diggs(0) Edit
请参考:http://bbs.51aspx.com/showtopic-9504.htmlhttp://bbs.51aspx.com/showtopic-44661.html Read More
posted @ 2012-08-18 09:16 韬韬韬你羞得无礼 Views(76) Comments(0) Diggs(0) Edit
需要时Ctrl+F用关键字查找吧using System;using System.Collections.Generic;using System.Text;using Microsoft.Win32; //对注册表操作using System.Collections; //使用Arraylistusing System.Security.Cryptography;//加密解密using System.IO; //文件操作using System.Runtime.InteropServices;//调用DLL DllImportusing System.Management; //获... Read More
posted @ 2012-08-18 01:11 韬韬韬你羞得无礼 Views(192) Comments(0) Diggs(0) Edit
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, 如: select id from t where num is null 可以在nu Read More
posted @ 2012-08-18 01:09 韬韬韬你羞得无礼 Views(231) Comments(0) Diggs(0) Edit
根据上次的评测结果,我们了解了几种字符串拼接方式的性能高低。从中可以看出,广受追捧的StringBuilder性能似乎并不是最好的,String.Concat方法有时候有时候更适合使用。那么为什么String.Concat方法性能那么高,StringBuilder又为什么落败,而我们又有没有什么可以改进的做法呢?为此,我们不妨动用.NET Reflector这一利器,看一下两者是怎么实现的。String.Concat为什么这么快String.Concat方法有多个重载,其中我们关注那个接受字符串数组作为参数的重载,它是实现的核心。代码如下:public static string Concat Read More
posted @ 2012-08-18 01:07 韬韬韬你羞得无礼 Views(197) Comments(0) Diggs(0) Edit
首先先声明 除了对字符串的操作比较多之外 随便用哪种其实对系统的性能都差不太多看到这个标题是不是觉得很奇怪呢?字符串连接的性能,这个话题已经被谈了一遍又一遍,一次又一次,似乎已成定论,这又有什么好谈的呢?不过说来奇怪,根据我的实验结果在网上进行搜索,却找不到答案。因此,我现在和大家一起重新再作一次实验并观察结果。在文章最后我也会给出完整的代码,您可以自由地运行,修改,尝试,我们再一起进行交流。说起字符串拼接,最简单的方式便是使用最普通的连接操作“+”,以及StringBuilder了。为此,我们准备一些测试代码:private static readonly string STR = &quo Read More
posted @ 2012-08-18 01:05 韬韬韬你羞得无礼 Views(187) Comments(0) Diggs(0) Edit
为什么要用多线程: 让计算机“同时”做多件事情,节约时间 后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况 可以让一个程序“同时”处理多个事情 计算机CPU大部分时间处于空闲状态,浪费了CUP资源进程与线程:运行的一个程序就叫进程,一个进程至少有一个线程(默认UI线程),同一个进程中的多个线程之间可以“并发”执行线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同线程来执行不同的任务(代码),也就是说允许单个程序创建多个并执行的线... Read More
posted @ 2012-08-18 01:04 韬韬韬你羞得无礼 Views(542) Comments(0) Diggs(0) Edit
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.ServiceModel;using System.Runtime.InteropServices;namespace MyWeather{ public partial class Form1 : Form { [StructLa... Read More
posted @ 2012-08-18 01:01 韬韬韬你羞得无礼 Views(447) Comments(0) Diggs(0) Edit
[转载]HttpModule和HttpHandler 区别与比较HttpModule概述暂时先不考虑我们自己实现Http Module的情况。在.Net中,Http Module 是实现了IHttpModule接口的程序集。IHttpModule 接口本身并没有什么好大写特写的,由它的名字可以看出,它不过是一个普普通通的接口而已。实际上,我们关心的是实现了这些接口的类,如果我们也编写代码实 现了这个接口,那么有什么用途。一般来说,我们可以将Asp.Net中的事件分成三个级别,最顶层是 应用程序级事件、其次是页面级事件、最下面是控件级事件,事件的触发分别与 应用程序周期、页面周期、控件周期紧密相 Read More
posted @ 2012-08-18 00:57 韬韬韬你羞得无礼 Views(184) Comments(0) Diggs(0) Edit
1.飞机会飞,鸟会飞,他们都继承了同一个接口“飞”;但是F22属于飞机抽象类,鸽子属于鸟抽象类。2. 就像铁门木门都是门(抽象类),你想要个门我给不了(不能实例化),但我可以给你个具体的铁门或木门(多态);而且只能是门,你不能说它是窗(单继承);一个门可以有锁(接口)也可以有门铃(多实现)。 门(抽 Read More
posted @ 2012-08-18 00:50 韬韬韬你羞得无礼 Views(247) Comments(0) Diggs(0) Edit
在我们日常的编程当中,常常会遇到判断某个整数属于奇数还是偶数的情况。 一般我们都是用的取模的操作,前几天在网上看到了一种称作快速有效的判断做法,利用2进制进行判断。大家都知道,奇数的最低位一定是1,而偶数的最低位一定是0.所以我们可以根据这个特性,让需要判定的整数和1进行“与”运算,这样就只留下了原数的最低位,然后直接判断这个数等于1还是等于0即可。实现代码如下: class Program { static void Main( string [] args) { bool s = OddEven.IsEven( 4 ); ... Read More
posted @ 2012-08-18 00:49 韬韬韬你羞得无礼 Views(361) Comments(0) Diggs(0) Edit
IIS 6的核心在于工作进程隔离模式,而应用程序池则是定义工作进程如何进行工作,因此,可以说应用程序池是整个IIS 6的核心。和IIS 5中只能使用单个应用程序池不同,工作在工作进程隔离模式的IIS 6可以创建多个应用程序池,不同的应用程序池之间是完全隔离的,某个应用程序池停止服务时不会影响到其他应用程序池。在使用应用程序池之前,你应该确定你所需要的应用程序池数量。可能有很多朋友会认为,既然不同的应用程序池之间是完全隔离的,那么我只需要为每个Web站点创建一个应用程序池就可以了。这个办法在IIS服务器上具有较少的Web站点数量时可以使用,但是如果IIS服务器上具有很多Web站点数量,那么这个办 Read More
posted @ 2012-08-18 00:44 韬韬韬你羞得无礼 Views(122) Comments(0) Diggs(0) Edit
在.net 编程环境中,系统的资源分为托管资源和非托管资源。 对于托管的资源的回收工作,是不需要人工干预回收的,而且你也无法干预他们的回收,所能够做的只是了解.net CLR如何做这些操作。也就是说对于您的应用程序创建的大多数对象,可以依靠 .NETFramework 的垃圾回收器隐式地执行所有必要的内存管理任务。 对于非托管资源,您在应用程序中使用完这些非托管资源之后,必须显示的释放他们,例如System.IO.StreamReader的一个文件对象,必须显示的调用对象的Close()方法关闭它,否则会占用系统的内存和资源,而且可能会出现意想不到的错误。 我想说到这里,一定要清楚什么是... Read More
posted @ 2012-08-18 00:36 韬韬韬你羞得无礼 Views(263) Comments(0) Diggs(0) Edit
一个良好的易维护的可扩展的软件,应该满足【高内聚 低耦合】原则 内聚:高内聚表示某个特定的软件模块 无论是一个子程序,一个类型还是一个类库,都应完成一系列极为相关的功能,换句话说,内聚表示同一个类型中不同方法,同一个类库中不同函数,同一个方法中不同操作表达式的逻辑之间的距离等。 高内聚的衡量标准从低 Read More
posted @ 2012-08-18 00:29 韬韬韬你羞得无礼 Views(309) Comments(0) Diggs(0) Edit
TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间。 它的用途是为数据库访问提供了一个“轻量级”[区别于:SqlTransaction]的事物。使用之前必须添加对 System.Transactions.dll 的引用。 下列代码就是一个正在创建的事务,这 Read More
posted @ 2012-08-18 00:26 韬韬韬你羞得无礼 Views(216) Comments(0) Diggs(0) Edit