代码改变世界

随笔分类 -  c#

ASP.NET缓存依赖--自定义缓存依赖

2012-04-08 22:09 by 马伟, 908 阅读, 收藏, 编辑
摘要: 在ASP.NET中,它允许你继承CacheDependency类创建自定义的缓存依赖,这和上一节所讲的SqlCacheDependency类所做的差不多。设计一个自定义的CacheDependency类很简单,你要做的只是启动一个异步任务,它检查依赖项目何时发生变化。依赖项目发生变化时,将调用基方法CacheDependency.NotifyDependencyChanged。作为回应,基类更新HasChanged与UTclastModified属性值,并且ASP.NET自动从缓存中移除所有相关项目。我们知道,现在的许多网站都提供了RSS功能,从而方便我们去订阅。因此,在我们的应用程序里订阅. 阅读全文

ASP.NET缓存依赖--SQL Server 2005与SQL Server 2008缓存依赖

2012-04-08 21:57 by 马伟, 1281 阅读, 收藏, 编辑
摘要: 其实,在某些方案中,使用带有 SQL 依赖项的缓存可显著提高你的应用程序的性能。例如,假定你正在构建一个从数据库显示产品信息的电子商务应用程序。如果不进行缓存,则每当用户要查看产品时,应用程序都必须从数据库请求数据,执行相关的数据库连接、查询等命令。如果查询访问量很大时,这对于服务器与数据库来讲其耗费的资源是不可估量的。要解决这样的问题,你可以根据需要在某一时刻将产品信息缓存一天或者一段时间,由于产品信息已经在内存中,因此可确保较快的响应时间,从而也减少了数据库的访问量。 但是,当数据库的产品信息发生变化时,缓存的产品信息就会失去与数据库中的产品信息的同步,且不同步的时间最长可达你设置的缓存. 阅读全文

<<易学C#>>全书目录

2009-10-13 23:44 by 马伟, 1240 阅读, 收藏, 编辑
摘要: 经过一年之久的创作,我的新书终于出版了,目录如下: 预备课:学习从这里开始 1 1.软件=程序+文档 1 2.程序起什么作用 2 3.为何要面向对象 2 4.什么是UML 3 5..NET与C# 4  谈微软公司的.NET战略 4  C#的产生与特点 5  C#与.NET的关系 6 6.开启C#的钥匙——兴趣与正确的学习方法 7 7.习题练习 8 .......................................... 阅读全文

用C#编程合并多个WORD文档

2009-09-26 17:46 by 马伟, 4692 阅读, 收藏, 编辑
摘要: 今天因为客户需要,需要将多个WORD文档合并成为一个WORD文档。其中,对WORD文档的合并方式分两种形式: 一是复制合并; 一是插入合并,即将多个文档按照先后顺序合并到另一个文档中. 阅读全文

荣获2009年“微软最有影响力开发者”

2009-03-25 20:49 by 马伟, 2870 阅读, 收藏, 编辑
摘要: 今天无意中收到微软“最有影响力开发者”礼包,这比起博客园的其他兄弟虽然不算什么,但这毕竟是我第一次得到微软的称号,还是值得纪念一下。 “最有影响力的开发者”,您好很高兴能够通过“最有影响力的开发者”这个项目将微软最新的技术资源与您一同分享。第一期技术资源我们已经随此次“最有影响力的开发者欢迎礼包”一同邮... 阅读全文

[易学C#]C#3.0语言新特性

2009-03-13 21:42 by 马伟, 1828 阅读, 收藏, 编辑
摘要: 大家都知道,微软的脚步一向比较快。在微软发布Visual Studio 2005和C#2.0之后,又马不停蹄的展示了人们所期望的C#的下一代版本:C# 3.0。其实,在2008年中,大部分公司已经尝试着将自己的开发环境转向Visual Studio 2008和C#3.0,下面我们就来总结一下C#3.0相关新特性: [易学C#]C#3.0语言新特性之隐式类型 [易学C#]C#3.0语言... 阅读全文

[易学C#]C#3.0语言新特性之Lambda表达式

2009-03-12 08:38 by 马伟, 5625 阅读, 收藏, 编辑
摘要: 在C#2.0中引入了匿名方法,允许在期望出现委托的时候以“内联”的代码替代之。尽管匿名方法提供了函数式编程语言中的很多表达能力,但匿名方法的语法实在是太罗嗦了,并且很不自然。Lambda表达式为书写匿名方法提供了一种更加简单、更加函数化的语法。 实际上Lambda表达式的本质是匿名方法,也即是当编译我们的程序代码时,编译器会自动帮我们将Lambda表达式转换为匿名方法。 阅读全文

[易学C#]C#3.0语言新特性之对象和集合初始化器

2009-03-10 21:09 by 马伟, 1720 阅读, 收藏, 编辑
摘要: 在C#3.0中,一个对象创建表达式可以包含一个对象或集合初始化器,用于初始化新创建的对象的成员或新创建的集合的元素。 对象创建表达式: new type (argument-list(可选)) 对象或集合初试化器(可选) new type 对象或集合初试化器 一个对象创建表达式可以省略构造器参数列表,并将其连同圆括号一起替换为一个对象或集合初始化器。省略构造器参数列表并将其连同圆括号一起替换为一个对象或集合初始化器等价于指定一个空的参数列表。 在执行一个带有对象或集合初始化器的对象创建表达式时,首先调用实例构造器,然后执行对象或集合初始化器指定的成员或元素初始化。对象或集合初始化器不能引用正在初始化的对象实例。 阅读全文

[易学C#]C#3.0语言新特性之扩展方法

2009-03-09 23:04 by 马伟, 2019 阅读, 收藏, 编辑
摘要: 当我们需要对已有类的功能进行扩展时,我们通常会想到继承,继承已有类,然后为其加入新的行为。而C# 3.0中加入的扩展方法(Extension Methods)特性,则提供了另一种实现功能扩展的方式。 扩展方法是一种特殊的静态方法,它定义在一个静态类中,但可以在其他类的对象上像调用实例方法那样进行调用。因此,通过扩展方法,我们就可以在不修改一个类型的前提下对一个类型进行功能上的扩充,这种方法并不会产生新的类型,而是采用向已有类中加入新方法的方式来完成功能扩展;同时,也可以将一些近似的类型中近似的功能同一实现在一个类中,便于阅读和维护。从最终效果上看,扩展方法使得扩展一个现有类型和构造一个具有附加方法的类型变成了现实。 阅读全文

[易学C#]C#3.0语言新特性之匿名类型

2009-03-08 16:01 by 马伟, 4580 阅读, 收藏, 编辑
摘要: 上面我们向读者讲解了隐式类型,接下来我们继续来讨论C#3.0另一个新特性:匿名类型。 阅读全文

[易学C#]C#3.0语言新特性之隐式类型

2009-03-08 00:11 by 马伟, 1914 阅读, 收藏, 编辑
摘要: 在C#3.0中增加了一个变量声明var,这个声明和JavaScript 的var类似,但也有不同。相同之处是它可以用var来声明任何类型的局部变量;而不同之处在于它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量。 阅读全文

[讨论]程序之路在何方?

2009-03-07 12:04 by 马伟, 2559 阅读, 收藏, 编辑
摘要: 曾经何时,在那个DOS与Windows的年代,汇编与C/C++横行天下,无人可比!与此同时,汇编与C/C++程序员无疑成为新的IT时代的弄潮儿,呼风唤雨。 在这之间,也不怎么的,突然有一天,有一个叫Linus的家伙静悄悄地搞出个Linux来,经过几年的开源的发展,终成气候,誓与Windows争霸天下。当然,因为它的开源性,不知不觉冒出了许多版本的Linux来。这时候Windows/Linux/Un... 阅读全文

删除ORACLE数据库中重复的数据

2008-11-02 18:54 by 马伟, 361 阅读, 收藏, 编辑
摘要: declare maxrecords constant int:=599; i int :=1; begin for i in 1..maxrecords loop delete from sf_para_jlddidu where JILIANGDIAN in ( select JILIANGDIAN from... 阅读全文

用C#解决Oracle9i和Oracle10g字符集不兼容的问题

2008-07-08 14:59 by 马伟, 845 阅读, 收藏, 编辑
摘要: 前段时间,我应公司派遣去云南给南方电网开发一个电力分析系统。因为我们的系统主要作用是统计计算和数据分析,所以本身并不采集基础数据,基础数据都是从别的第三方系统采集而来。还好的是大部分系统的数据采集都是通过WEB服务的方式,当时只有一家系统要求我们直接从他们的数据库里去读取(呵呵,这在电力部门一般是不被允许的,毕竟数据需要安全吗),大概是人家不愿意写接口吧。本来对于我们来说直接去数据库读... 阅读全文

重拾 DirectX 一:配置Visual Studio 2008+Microsoft DirectX SDK (June 2008) 开发环境

2008-07-04 10:32 by 马伟, 3785 阅读, 收藏, 编辑
摘要: 几年前,我曾经搞了一小段时间DirectX开发,但最后因为工作的原因还是放弃了.直到今天,出于兴趣的原因,我又翻开DirectX的第一页....  好了,我还是直接进入主题:  首先是安装Microsoft DirectX SDK . 然后选择工具-选项,打开选项框.    最后选展开“项目和解决方案”,选择“VC++目录”,在右边的界面中有一个“显示以下内容的目录”下拉选择框,分别配置其中“包含文件”和“库文件”。  如:"D:\Program Files\Microsoft DirectX SDK (June 2008)\Include"和"D:\Program Files\Microso 阅读全文

Oracle 查询语句截取字符串

2008-07-03 10:12 by 马伟, 2167 阅读, 收藏, 编辑
摘要: 平时我们截取字符串大多数都是在程序里进行,比如用split函数等.由于因为程序的需要和性能,我们更希望选择直接在查询语句里截取. 例如我们现在需要截取电度参数表里描述字段里"*"符号以前的字符串,包括"*": select distinct Substr(描述, 1, Instr(描述, '*', 1)) from 电度参数表 如果不包括"*",如下: select d... 阅读全文

一个C#操作Oracle的通用类

2008-07-01 20:39 by 马伟, 2661 阅读, 收藏, 编辑
摘要: 前段时间,因为开发一个项目需要Oracle10g数据库,所以就快速写了一个Oracle的通用类,希望各位网友参考! 阅读全文

C#动态分配一维数组和二维数组函数

2008-06-12 14:07 by 马伟, 4783 阅读, 收藏, 编辑
摘要: //动态调整一维数组长度 public static Array Redim(Array origArray, int length) { //确定每个元素的类型 Type t = origArray.GetType().GetElementType(); //创建新的数组 Array newArray = Ar... 阅读全文

C#把DataSet内数据转化为Excel和Word文件的通用类

2008-03-07 18:15 by 马伟, 4065 阅读, 收藏, 编辑
摘要: 前不久因为项目的需要写的一个C#把DataSet内数据转化为Excel和Word文件的通用类,这些关于Excel、Word的导出方法,基本可以实现日常须要,其中有些方法可以把数据导出后 生成Xml格式,再导入数据库!有些屏蔽内容没有去掉,保留下来方便学习参考用之。 最后请引用Office相应COM组件,导出Excel对象的一个方法要调用其中的一些方法和属性。 阅读全文