摘要: http://www.cnblogs.com/huyq2002/archive/2011/08/18/2144208.html构建快速数据交易系统的思考(2)利用UnitOfWork和Repository模式-下在上一篇文章中,我们利用Entity framework来针对UnitOfWork,Repository设计模式做了一个非常简单的实现。但是这个实现有很多问题。我们现在逐步解决问题,形成一个具有好的扩展性的方案。新的类图(不包含两个Repository,我们暂时不考虑Repository的问题):现在解释一下新的设计中各个类的职责:名称类型描述IUnitOfWork接口UnitOfWo 阅读全文
posted @ 2013-01-16 17:37 .NET Fans 阅读(1964) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/huyq2002/archive/2011/08/16/2140721.html构建快速数据交易系统的思考(2)利用UnitOfWork和Repository模式-上摘要:在上一篇文章中,我们比较了ADO.net和其他Data Provider,以提高应用程序数据访问层的性能。下面我们的主题将是采用一些常用的设计模式来使用ORM(通常是N-hibernate和EF)建立数据访问层---UnitOfWork,Repository设计模式和SOA。其实ORM不应该属于这个系列的范围,因为它不会帮助改善我们的第一个应用程序的性能。ORM并不适合快速数据交 阅读全文
posted @ 2013-01-16 17:35 .NET Fans 阅读(1485) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/huyq2002/archive/2011/05/23/2054189.html微软objectBuilder解读:构造一个轻量级的Dependency Injection容器(3) Locator在上一节我们做了一个简单的容器,基本实现了类型/对象的注册和查询,main里面的代码现在比较稳定,无需再与各种工厂实例打交道,也无需了解各种接口和工厂的对应关系,但是我们实现的容器存在一些问题:1) 每种接口类型只能注册一个对应组件实例(接口的类型就是Dictionary里面的key, key不能重复,微软ObjectBuilder的Locator利用了 阅读全文
posted @ 2013-01-16 17:12 .NET Fans 阅读(197) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/huyq2002/archive/2011/05/20/2051940.html微软objectBuilder解读:构造一个轻量级的Dependency Injection容器(2) 工厂和容器微软objectBuilder解读:构造一个轻量级的Dependency Injection容器(2)工厂和容器我们利用简单工厂继续对示例进行修改为public class CreatorFactory{ public static IMessageCreator GetCreator() { return new ConsoleMessageCreator 阅读全文
posted @ 2013-01-16 16:58 .NET Fans 阅读(100) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/huyq2002/archive/2011/05/20/2051782.html微软objectBuilder解读:构造一个轻量级的Dependency Injection容器(1) 依赖倒置Dependency Injection或Inverse of Control(控制反转)设计模式来源于架构设计的一个基本原则:1. Dependency Inverse Policy (依赖倒置/依赖反转)什么是依赖倒置/依赖反转,看一个简单的例子:一个控制台程序读入用户从键盘输入的字符串输出到屏幕。static void Main(string[] arg 阅读全文
posted @ 2013-01-16 16:53 .NET Fans 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 这一段小程序,可以用来直接运行批处理(cmd)语句或者批处理文件(*.bat|*.com)等,并且可以获得批处理语句运行后的返回文字。很好,很强大。除了可以运行cmd之外,也可以直接运行exe或者其他程序,设置是否以后台静默的方式运行。主要采用的技术就是Process。 protected static void RunCmd(String cmd, Boolean showWindow, Boolean waitForExit) { WriteLine("RunCmd " + cmd); var p = new Proc... 阅读全文
posted @ 2013-01-16 15:52 .NET Fans 阅读(764) 评论(0) 推荐(0) 编辑
摘要: http://www.codingthink.com/c/20121225/201212251725353.html1. 启动外部程序,不等待其退出。2. 启动外部程序,等待其退出。3. 启动外部程序,无限等待其退出。4. 启动外部程序,通过事件监视其退出。// using System.Diagnostics;private string appName = "calc.exe";/// <summary>/// 1. 启动外部程序,不等待其退出/// </summary>private void button1_Click(object send 阅读全文
posted @ 2013-01-16 15:34 .NET Fans 阅读(452) 评论(0) 推荐(0) 编辑
摘要: 控件名称开头缩写TextBoxtxtButtonbtnComboBoxcbbLabellabDataGridViewdgvListBoxlboxTimertmrCheckBoxchbLinkLabelllabRichTextBoxrtbCheckedListBoxclbRadioButtonrbtnNumericUpDownnudownpanelplGroupBoxgboxTabControltabctrErrorProvidereproImageListimglistHelpProviderhproListViewlvTreeViewtvPictrueBoxpboxNotifyIconnic 阅读全文
posted @ 2013-01-16 15:29 .NET Fans 阅读(202) 评论(0) 推荐(0) 编辑
摘要: http://www.codingthink.com/c/20121217/201212172036531.html一说到Cookie我想大家都应该知道它是一个保存在客户端,当浏览器请求一个url时,浏览器会携带相关的Cookie达到服务器端,所以服务器 是可以操作Cookie的,在Response时,会把Cookie信息输出到客服端。下面我们来看一个demo吧,代码如下:第一次请求结果如下:第二次请求结果如下:到这里我们可以看到第二次请求传入的Cookie正好是第一次请求返回的Cookie信息,这里的cookie信息的维护主要是我们客户端的浏览 器,但是在Asp.net程序开发时,Cooki 阅读全文
posted @ 2013-01-16 15:16 .NET Fans 阅读(232) 评论(0) 推荐(0) 编辑
摘要: http://www.codingthink.com/c/20121215/201212151219043.html关于网站的性能优化 (一家之言,感谢指正)前端:1.减少http请求:每一次请求都需要服务器进行处理响应,这都需要耗用服务器资源和时间,我们在设计网站是应该尽量减少http请求。 1>有时候为了清晰我们会将css和javascript脚本分开书写,但如此就会增加我们请求的次数,所以在保持条理清晰的前提下,我们应该尽量将javascript脚本和css分别整合到同一个文件中,这样我们就避免了上述的问题。 2>同样的,对于频繁出现的图标等内容,我们也应该加以整合,以CSS 阅读全文
posted @ 2013-01-16 15:13 .NET Fans 阅读(161) 评论(0) 推荐(0) 编辑
摘要: http://www.codingthink.com/c/20121223/201212231458171.html原文出处:http://www.c-sharpcorner.com/UploadFile/rmcochran/csharp_memory01122006130034PM/csharp_memory.aspx尽管在.NET framework下我们并不需要担心内存管理和垃圾回收(Garbage Collection),但是我们还是应该了解它们,以优化我们的应用程序。同时,还需要具备一些基础的内存管理工作机制的知识,这样能够有助于解释我们日常程序编写中的变量的行为。在本文中我将讲解栈 阅读全文
posted @ 2013-01-16 15:02 .NET Fans 阅读(191) 评论(0) 推荐(0) 编辑
摘要: http://www.codingthink.com/c/20121223/201212232246371.html在C#4.0之前需要执行一个复杂的异步操作时,只能使用CLR线程池技术来执行一个任务。线程池执行异步任务时,不知道任务何时完成,以及任务的在任务完成后不能获取到返回值。但是在C#4.0中引人了一个的任务(System.Threading.Tasks命名空间的类型)机制来解决异步操作完成时间和完成后返回值的问题。1.使用Task类创建并执行简单任务 通过使用Task的构造函数来创建任务,并调用Start方法来启动任务并执行异步操作。创建任务时,必须传递一个Action或Action 阅读全文
posted @ 2013-01-16 14:42 .NET Fans 阅读(363) 评论(0) 推荐(0) 编辑
摘要: appSettings 配置节点与应用程序配置文件分离的解决方案。可以用一下方式来解决<configuration><appSettings configSource="settings.config" /><system.web>然后新建一个settings.config<appSettings> <add key="test" value="test" /> <add key="abcd" value="abcd" /> 阅读全文
posted @ 2013-01-16 14:20 .NET Fans 阅读(357) 评论(0) 推荐(0) 编辑
摘要: /// <summary> /// 泛型类(最多容纳100个T) /// </summary> /// <typeparam name="T"></typeparam> public class SampleCollection<T> { private T[] arr = new T[100]; public T this[int index] { get { //检查索引范围 return (index < ... 阅读全文
posted @ 2013-01-16 12:35 .NET Fans 阅读(286) 评论(0) 推荐(0) 编辑