摘要:
在使用.Net 3.5里的Entity Framework开发网站的时候,遇到了一个问题:添加记录时,对于DateTime型的数据,无法使用数据库的默认值。 具体的情况是这样的,我的数据库有个Users表,三个字段,id,username,createtime。 id是int型,自增长,主键 username是nvchar(10)型,不允许为空 createtime是DateTime型字段,不允许为空,默认值 是getdate() 如果用Entity框架生成实体类,直接添加数据,不指定createtime,那就会在SaveChanges时出错: using (Linq... 阅读全文
随笔分类 - [01].NET技术
艾伟_转载:你知道吗?——ASP.NET的Session会导致的性能问题
2011-08-29 00:22 by 狼人:-), 152 阅读, 收藏,
摘要:
你的站点有被客户投诉很慢吗?是不是查了很多遍还是没有完全解决?是不是数据库没有发现异常,CPU也没有异常,内存占用量没有异常,GC计数没有异常,硬盘IO也没有异常,带宽没有异常,线路没有异常,没有丢包,但就是被投诉?而且还是阵发性的,有某个用户投诉慢的时候,你访问却很快,本地又复现不出来?今天你访问了博客园真是太幸运了,也许这里就有你想要的一个答案——假如你的站点动态处理了图片或者其他原本不会动态处理的非网页资源的话。没想到吧,这是Session惹的祸!
我们公司某个站点访问量一直很大,几年前就已经发现客户经常投诉说很慢,而这个问题我们一直都在排查和解决。从线路问题,到数据库连接泄露,到数据库 阅读全文
艾伟_转载:谈*静态页*(或网页*静态化*)
2011-08-29 00:22 by 狼人:-), 150 阅读, 收藏,
摘要:
“静态页”,在Web应用程序开发中是很常见的概念。只是我发现目前还是有相当部分的朋友,在这方面的存在一定的误区。因此现在独立写一篇文章,也想把一些问题讲讲清楚,以后在讨论的时候也好有个准。 不久前有朋友写了一篇题为《提供生成静态页核心代码》的文章,介绍了一种“向硬盘写入页面文件”的方式。这篇文章的内容在此并不多作讨论,这里引用一下作者给出的摘要: 网页生成静态Html文件有许多好处,比如生成html网页有利于被搜索引擎收录,不仅被收录的快还收录的全。前台脱离了数据访问,减轻对数据库访问的压力,加快网页打开速度。 这种说法存在一个严重的问题,因为它混淆了两个概念:“静态页”有利于... 阅读全文
艾伟_转载:C# Design Patterns (4) - Proxy
2011-08-29 00:22 by 狼人:-), 157 阅读, 收藏,
摘要:
本帖介绍 Proxy Pattern (代理模式)。Proxy Pattern (代理模式)The Proxy Pattern provides a surrogate or placeholder for another object to control access to it... - Design Patterns: Elements of Reusable Object-Oriented Software在 GoF 的书中,对 Proxy 模式的定义为:替某个对象,提供一个替身,以控制外界对这个对象的访问。而这个被替身代理的对象 (被代理者),可能是远端的对象、创建时需要高成本或. 阅读全文
艾伟_转载:企业库缓存依赖的实现-基于文件依赖
2011-08-29 00:22 by 狼人:-), 170 阅读, 收藏,
摘要:
最近在做项目的时候,采用用Codesmith和Nettiers生成的框架来实现,生成的代码核心是基于企业库的。所以最近在恶补企业库,对于缓存的学习当然是必不可少的,尤其是经常要用到得缓存依赖,这里我用到的是文件依赖来举例子,其他的都大同小异,主要就是要实现ICacheItemExpiration中的返回值类型为bool类型的HasExpired方法,来控制到期与否,实现此方法是关键所在。下面是程序清单,欢迎大家指正:
step1 实现缓存到期接口,此类就为缓存项依赖的类,为缓存依赖的核心,尤其是其中HasExpired方法的定义,此类的核心就是使用lastCount是否变化来判断缓存是否到期; 阅读全文
艾伟_转载:VS 2008快捷键
2011-08-29 00:22 by 狼人:-), 176 阅读, 收藏,
摘要:
编辑: CTRL + M, O:折叠当前源代码文件中的所有大纲
CTRL + M, L:将当前源代码的大纲在折叠与展开间切换
CTRL + M, M:将当前选中的源代码在折叠与展开间切换
CTRL + M, P:将当前源代码文档中的所有大纲信息清除
CTRL + K, C or CTRL + E, C:注释掉所有选中的源代码部分
CTRL + K, U or CTRL + E, U:取消掉所有选中的源代码部分的注释
CTRL + K, D or CTRL + E, D:按源码缩进和标准格式来格式化当前文档
CTRL + K, F or CTRL + E, F:按源码缩进和标准格式来格式化选中. 阅读全文
艾伟_转载:WCF安全之EndPointIdentity
2011-08-29 00:22 by 狼人:-), 134 阅读, 收藏,
摘要:
最近在做一个项目,应用了WCF进行分布式开发,中间还涉及到消息路由器等,好在有WCF提供了强大的基础支持,当然,本身也作了不少的扩展,实际,我 最关心的是WCF的安全问题,网上不少朋友介绍的WCF的安全也是少得可怜,微软发布的WCF Security GUID好像讲得也只是入门级别的教程,离真正应用到项目中还是有很大的距离,这也让我萌发了分享的想法,今天先放出来占个位置吧,有反对的朋友砖头轻 点,呵~,可以告诉你,WCF的安全里,有很多的小秘密,当然还是要告诉你,并且有此小秘密是要自己去体验后才知道,在博客排版方面,李会军(军哥)让人 感觉最舒服,在解说方面,军哥也是以简洁著称,我在这里... 阅读全文
艾伟_转载:正则表达式30分钟入门教程
2011-08-29 00:22 by 狼人:-), 154 阅读, 收藏,
摘要:
本文目标
30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它。
如何使用本教程
最重要的是——请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内入门——除非你是超人 :)
别被下面那些复杂的表达式吓倒,只要跟着我一步一步来,你会发现正则表达式其实并没有你想像中的那么困难。当然,如果你看完了这篇教程之后,发现自己明白了很多,却又几乎什么都记不得,那也是很正常的——我认为,没接触过正则表达式的人在看完这篇教程后,能把提到过的语法记住80%以上的可能性为零。这里只是让你明白基本的原理,以后你还需要多练习,多使用,才能熟练掌握正则表达式。. 阅读全文
艾伟_转载:C# Design Patterns (5) - Prototype
2011-08-29 00:22 by 狼人:-), 159 阅读, 收藏,
摘要:
本帖介绍 Prototype Pattern (原型模式),并以一个「人事招聘程序」作为示例来说明。--------------------------------------------------------本帖的示例下载点:http://files.cnblogs.com/WizardWu/090713.zip第一个示例为 Console Mode (控制台应用程序) 项目,第二个示例为 ASP.NET 网站项目。执行示例需要 Visual Studio 2008 或 IIS + .NET 3.0,不需要数据库。-------------------------------------- 阅读全文
艾伟_转载:C# Design Patterns (2) - Strategy
2011-08-29 00:22 by 狼人:-), 126 阅读, 收藏,
摘要:
Strategy Pattern (策略模式)
所谓 Strategy Pattern 的精神,就是将策略 (算法) 封装为一个对象,易于相互替换,如同 USB 设备一样可即插即用;而不是将策略、具体的算法和行为,硬编码在某个类或客户程序中,导至事后的修改和扩展不易。
若有多种「策略」,就将这些个策略,和这些策略的算法、行为,封装在各个类中,并让这些类,去继承某个公用的抽象类或接口。接着在客户程序中,就可动态引用,且易于更换这些不同的「策略」,不会因为日后添加、修改了某一个「策略」,就得重新修改、编译多处的源代码。此即为一种「封装变化点」的做法,将常会变化的部分进行抽象、定义为接口,亦即实现「 阅读全文
艾伟_转载:C# Design Patterns (3) - Decorator
2011-08-29 00:22 by 狼人:-), 144 阅读, 收藏,
摘要:
Decorator Pattern(装饰模式)
装饰模式可「动态」地给一个对象添加一些额外的职责,提供有别于「继承」的另一种选择。就扩展功能而言,Decorator Pattern 透过 Aggregation (聚合) 的特殊应用,降低了类与类之间的耦合度,会比单独使用「继承」生成子类更为灵活。
一般用「继承」来设计子类的做法,会让程序变得较僵硬,其对象的行为,是在「编译」时期就已经「静态」决定的,而且所有的子类,都会继承到相同的行为;然而,若用「装饰模式」以及 UML 的 Aggregation 的设计,来扩展对象的行为,就能弹性地 (flexible) 将多个「装饰者」混合着搭配使用,而 阅读全文
艾伟_转载:Regex.Replace 方法的性能!
2011-08-29 00:22 by 狼人:-), 173 阅读, 收藏,
摘要:
园子里有很多关于去除Html标签的文章。一个常用的经验是使用 Regex.Replace 方法利用正则去替换。这里有一篇使用该方法的文章C#中如何去除HTML标记。下面我贴出该方法的代码,见代码清单1-1
代码清单1-1引用http://www.cnblogs.com/zoupeiyang/archive/2009/06/22/1508039.html ///
///去除HTML标记
///
///包括HTML的源码
///已经去除后的文字
publicstaticstringReplaceHtmlTag(stringHtmlstring)
{
//删除脚本
Htmlstring=Htm... 阅读全文
艾伟_转载:编写自文档化的代码
2011-08-29 00:22 by 狼人:-), 121 阅读, 收藏,
摘要:
文所以载道也。 —— 宋·周敦颐《通书·文辞》
对于我们程序员来说,我们的工作也是写作——几乎每天都要写代码;而且还要载“道”,不仅仅要满足客户的需求,还要让代码具有高度的可读性,这样其他的程序员可以更容易地对代码进行修改和扩展。
按这样的要求,我们需要为代码编写足够的文档,也就是将代码“文档化”。常见的做法有两种,外部文档和注释。
外部文档 外部文档指的是在代码文件之外编写的附加文档,比如在Word文档中采用大量的篇幅(如UML图、表格)来设计或记录相关的包、类型、类型成员、成员参数之类的信息。这看起来很规范,但如果你用过这种方式,一定会讨厌它。这种方式的主要问题在于:
阅读全文
艾伟_转载:一次挂死(hang)的处理过程及经验
2011-08-29 00:22 by 狼人:-), 687 阅读, 收藏,
摘要:
前言:
CPU占用率低,内存还有许多空余,但网站无法响应,这就是网站挂死,通常也叫做hang。这种情况对于我这样既是CEO,又是CTO,还兼职扫地洗碗的个人站长来说根本就是家常便饭。以下是一次处理hang的经验及总结,前后用了一个月,不仅涉及程序排查,数据库优化,还有硬件升级的苦恼。其中辛酸苦辣只有经历过的站长才能体会,希望此文能对各位有所帮助! 首先介绍一下网站基本情况,是一个在线小说阅读网站,每天有一定页面访问量,在优化开始前由两台服务器运行,均为Dell PowerEdge 2950,配置为一台Intel xeon E5410 2.33G*2 ,4GB ECC内存,另一台Intel xe 阅读全文
艾伟_转载:[原创]再谈IIS与ASP.NET管道
2011-08-29 00:22 by 狼人:-), 163 阅读, 收藏,
摘要:
在2007年9月份,我曾经写了三篇详细介绍IIS架构和ASP.NET运行时管道的文章,深入介绍了IIS 5.x与IIS 6.0HTTP请求的监听与分发机制,以及ASP.NET运行时管道对HTTP请求的处理流程:
[原创]ASP.NET Process Model之一:IIS 和 ASP.NET ISAPI[原创]ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part I[原创]ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II 很多人留言为何没有IIS. 阅读全文
艾伟_转载:C# Design Patterns (1) - Factory Method
2011-08-29 00:22 by 狼人:-), 119 阅读, 收藏,
摘要:
Simple Factory Pattern (简单工厂模式)
特性: 把类的实例化工作,集中到一个「工厂类」去处理,亦即将 new instance 的工作,都交给一个「工厂」去处理,而不要分散写在各个类中。
客户端程序,与创建实例 (对象) 的工作必须隔离,亦即「解耦」,客户端程序只要专注于自己的业务逻辑。适用于客户端程序在开发过程中,尚无法预知要创建的具体类型。
产品具体的实现能和客户端隔离,便于事后抽换。 Simple Factory Pattern (简单工厂模式)、Factory Method Pattern (工厂方法模式),在实作的代码中,有时很难明确去界定此二者。Simp.. 阅读全文
艾伟_转载:关于.NET中的循环引用
2011-08-29 00:22 by 狼人:-), 171 阅读, 收藏,
摘要:
在现在开发模式日益增多,框架泛滥的时代里,人们越来越多的依赖于固有的框架模式的开发而忽略了对项目底层架构的理解。所以在部署项目结构的时候,会遇到“循环引用”这个问题,今天我就遇到了。 其实说起来并不复杂,就是我有5个项目A,B,C,D,E,然后我在项目A中引用了B的类,然后又在B中引用了C的类,最后又在C中引用了A中的类,这就构成了循环引用。 那么碰到这样的问题,怎么解决呢? 解决方案一: 我们考虑创建新的一个项目Z,然后分别添加对A,B,C的引用,这样A,B,C只要引用Z就行了。 解决方案二: 也可以创建一个类库项目,然后将A,B,C,D,E,F... 阅读全文
艾伟_转载:基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现
2011-08-29 00:22 by 狼人:-), 196 阅读, 收藏,
摘要:
本系列文章导航基于.NET平台的Windows编程实战(一)——前言基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计基于.NET平台的Windows编程实战(四)—— 数据库操作类的编写基于.NET平台的Windows编程实战(五)—— 问卷管理功能的实现基于.NET平台的Windows编程实战(六)—— 题目管理功能的实现 申明:本系列课程是专为新手们写来入门练习用的,目的是想通过一个完整的问卷调查管理系统的案例开发来让新手们了解、加深或是熟悉软件项目的开发流程及在.NET平台上使用VS2005和C# 进行Windows方面的编程;在整个课程的设计上,... 阅读全文
艾伟_转载:基于.NET平台的Windows编程实战(三)—— 项目的创建及主界面的设计
2011-08-29 00:22 by 狼人:-), 146 阅读, 收藏,
摘要:
第一步:创建一个新的Windows项目
打开VS2005,点击“文件”-->“新建”-->“项目”,在弹出的对话框里,在左边选择“Windows”,在右边选择“Windows应用程序”,并在下面的名称里输入“QuestionnaireSystem”,选择相应的保存位置后,点“确定”,如下图3-1所示: 图3-1
这样一个新的Windows项目就创建好了。
另:为了整个系统的操作需要,我们为项目新建二个文件夹:一个是DataBase[用来存放数据库文件],另一个为Images[用来存放用户所要用到图片资源],创建方法为:右击项目名称,选择“添加”à“新建文件夹”;创建好后, 阅读全文
艾伟_转载:老赵谈IL(3):IL可以看到的东西,其实大都也可以用C#来发现
2011-08-29 00:22 by 狼人:-), 200 阅读, 收藏,
摘要:
在上一篇文章中,我们通过一些示例谈论了IL与CLR中的一些特性。IL与C#等高级语言的作用类似,主要用于表示程序的逻辑。由于它同样了解太多CLR中的高级特性,因此它在大部分情况下依旧无法展现出比那些高级语言更多的CLR细节。因此,如果您想要通过学习IL来了解CLR,那么这个过程很可能会“事倍功半”。因此,从这个角度来说,老赵并不倾向于学习IL。不过严格说来,即使IL无法看出CLR的细节,也不足以说明“IL无用”——这里说“无用”自然有些夸张。但是,如果我们还发现,那些原本被认为需要通过IL挖掘到的东西,现在都可以使用更好的方法来获得,并且可以起到“事半功倍”的效果,那么似乎我们真的没有太多.. 阅读全文
浙公网安备 33010602011771号