C#基础
文章平均质量分 65
wyxhd2008
这个作者很懒,什么都没留下…
展开
-
代码规范
为了统一代码风格,减少代码阅读难度,提高代码质量,大家写代码的时候需要遵循以下的规则1、 winform控件命名规范数据类型数据类型简写标准命名举例LabellbllblMessageLinkLabelllblllblTodayButton原创 2013-04-23 17:54:37 · 1221 阅读 · 0 评论 -
将Quartz.NET集成到 Castle中
将Quartz.NET集成到 Castle中原创 2013-03-04 14:47:45 · 929 阅读 · 0 评论 -
Quartz.NET的管理工具
Quartz.NET的管理工具方面的几个开源项目工具有两类:完整的一个管理站点和嵌入你的项目里头的一个模块。1、quartznet-admin 是一个完整的asp.net mvc的Quartz.NET 管理应用,地址是http://code.google.com/p/quartznet-admin/ 通过基于Web的管理工具Quartz.net。计划能力:允许注原创 2013-03-04 14:29:37 · 3302 阅读 · 0 评论 -
Quartz.NET--分步式应用
Quartz.NET--分步式应用原创 2013-03-04 11:00:13 · 843 阅读 · 0 评论 -
Quartz.NET--Calendar 灵活的触发策略
Quartz.NET--Calendar 灵活的触发策略原创 2013-03-04 10:59:25 · 1236 阅读 · 0 评论 -
C#系统缓存全解析
系统缓存有什么好处呢?举个简单的例子,你想通过网页查询某些数据,而这些数据并非实时变化,或者变化的时间是有期限的。例如查询一些历史数据。那么每个用户每次查的数据都是一样的。如果不设置缓存,ASP.NET也会根据每个用户的请求重复查询n次,这就增加了不必要的开销。所以,可能的情况下尽量使用缓存,从内存中返回数据的速度始终比去数据库查的速度快,因而可以大大提供应用程序的性能。毕竟现在内存非常便宜,用空原创 2012-10-16 10:55:20 · 14838 阅读 · 0 评论 -
C# 传真服务
1、使用WORD接口来发送2、使用webservice来发送3、调用XP传真组件发送 /// /// 传真发送 /// /// 文件内容 /// 文档名 /// 收件人姓名或者收件人公司名 /// 收件人传真号码 public v原创 2012-10-15 10:00:10 · 2231 阅读 · 0 评论 -
C#缓存
缓存主要是为了提高数据的读取速度。因为服务器和应用客户端之间存在着流量的瓶颈,所以读取大容量数据时,使用缓存来直接为客户端服务,可以减少客户端与服务器端的数据交互,从而大大提高程序的性能。缓存所在的命名空间“System.Web.Caching”,主要涉及简单数据的缓存、数据缓存依赖和数据库缓存依赖三个技术要点 System.Web.Caching简介System.Web.Ca原创 2012-10-12 08:27:34 · 2982 阅读 · 0 评论 -
ASP.NET 成员资格与权限
1、概念Web用户权限管理,简单地说,要解决两个任务:1.身份验证(authentication):即确定访问网站的用户身份,解决“用户是谁”的问题;2.使用权限(authorization):即在用户身份确定之后,授予他一定的权限,允许他使用特定的服务,这是解决“用户能干什么”的问题。ASP.NET成员资格的系统架构:2、操作 新建用户权限数据原创 2012-09-15 21:34:18 · 1139 阅读 · 0 评论 -
TransactionScope
一、概念1、在项目中引用using System.Transactions命名空间(先要在添加net组件的引用);TransactionScope有三种模式:TransactionScopeOptions描述Required如果已经存在一个事务,那么这个事务范围将加入已有的事务。否则,它将创建自己的事务。RequiresNew这个事务范围将创建自己的事务。S原创 2012-09-08 16:48:00 · 2292 阅读 · 0 评论 -
X509证书
1、原理 X.509 给出的鉴别框架是一种基于公开密钥体制的鉴别业务密钥管理。一个用户有两把密钥:一把是用户的专用密钥(简称为:私钥),另一把是其他用户都可得到和利用的公共密钥(简称为:公钥)。该鉴别框架允许用户将其公开密钥存放在CA的目录项中。一个用户如果想与另一个用户交换秘密信息,就可以直接从对方的目录项中获得相应的公开密钥,用于各种安全服务。创建X509 证书创原创 2012-09-10 11:03:33 · 22555 阅读 · 0 评论 -
C#中的Stopwatch
1、命名空间:System.DiagnosticsStopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间2、运行方法先调用 Start 方法,然后调用Stop 方法,最后使用 Elapsed 属性检查运行时间。Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwatch 的当前状态。使用 Star原创 2012-09-07 22:20:53 · 733 阅读 · 0 评论 -
Quartz.NET--Trigger 触发器
Quartz.NET 实现了3个具体的触发器类,SimpleTrigger 简单地在某一时间重复执行多少次,NthIncludedDayTrigger 在每一年、月、周的第几天(Nth)执行作业,CronTrigger 使用 Unix 平台下的'cron-like’表达式来实现非常灵活的触发时间。SimpleTrigger 它有一个起始时间和结束时间,起始时间触发器触发原创 2013-03-04 10:50:49 · 10479 阅读 · 0 评论 -
Quartz.NET--基于配置的调度方案
在Quartz.NET有一个叫做quartz.properties的配置文件,它允许你修改框架运行时环境。缺省是使用Quartz.dll里面的quartz.properties文件。当然你可以在应用程序配置文件中做相应的配置,下面是一个配置文件示例:xml version="1.0"encoding="utf-8"?> configuration>configSection原创 2013-03-04 10:59:49 · 1276 阅读 · 0 评论 -
代码质量管理
一个项目的实施,代码质量好似人的穿着,影响的不仅仅是形象,会对项目的未来进度、可维护性、代码可靠性都会造成影响,最终的结果会是每个人都辛苦的工作,但是最后结合再一起却是一盘散沙,问题不断。大致分为四个层次:框架约束,合理的编码规范,工具检查,代码评审。第一,框架约束减少程序员代码中的Bug的最好方法,就是少写代码。结合大多数业务,编制出一个编程框架,将我们的程序员从编写原创 2013-04-23 14:45:28 · 1359 阅读 · 0 评论 -
异常处理
1、在哪里处理异常?在异常发生的地方还是让它冒泡到主程序?我们的原则:永远不处理你不知道怎么处理的异常,换句话说,永远不遮掩异常。2、什么时候捕捉一般异常(Exception)?除了在主程序,永远不要捕捉它,除非你有特别的理由,因为你很可能违反了前一条,掩盖了你不知道的异常。但还是有少数情况,你需要捕捉它,一定特别说明,并在项目小组里一致通过。这个看似容易,其实很难(以我们的经原创 2013-03-27 14:40:57 · 628 阅读 · 0 评论 -
异步调用
.NET中提供的异步操作,对于开发搞系统性能开发有非常重要的意义,常用场合:一、常用应用范围1、文件 IO、流 IO、套接字 IO2、网络3、远程处理信道(HTTP、TCP)和代理4、使用 ASP.NET 创建的 XML Web services5、使用 MessageQueue 类的消息队列二、常用方法 1、代理类: BeginInvoke:开始异步操作原创 2013-03-31 21:51:32 · 679 阅读 · 0 评论 -
基于事件的异步调用模式
基于事件的异步模式(EAP模式)基于事件的C#异步编程模式是比IAsyncResult模式更高级的一种异步编程模式,也被用在更多的场合。该异步模式具有以下优点:· “在后台”执行耗时任务(例如下载和数据库操作),但不会中断您的应用程序。· 同时执行多个操作,每个操作完成时都会接到通知(在通知中可以区分是完成了哪个操原创 2013-04-01 23:34:45 · 903 阅读 · 0 评论 -
Quartz.NET--JOB作业
作业流程是在调度器的统一调度下完成的,它可以调度多个作业,触发器提供作业执行的条件(每天 8:00 am),触发器与作业关联,它们是 1:N 的关系,1个触发器可以关联1个或多个作业。附带的作业 我们知道要实现自己的作业功能只要继承 IJob 接口并实现 Execute(JobExecutionContext context) 方法,再把它添加到调度器,调度器会调原创 2013-03-04 10:36:58 · 5262 阅读 · 0 评论 -
Quartz.NET--Schedule 调度器
Quartz.NET--Schedule 调度器原创 2013-03-04 10:57:54 · 1202 阅读 · 0 评论 -
Quartz.NET
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。Quartz.NET框架的核心是调度器。调度器负责管理Qua原创 2013-02-07 16:15:02 · 2272 阅读 · 0 评论 -
Quartz.NET 初步源代码初步分析
原创 2013-03-12 16:18:40 · 1791 阅读 · 0 评论 -
Quartz.NET 通过配置文件实现任务调度
默认的quartz任务配置文件为quartz_jobs.xml,在quartz服务的根目录下,可以通过quartz.config中quartz.plugin.xml.fileNames = ~/quartz_jobs.xml进行设置默认quartz.config文件结构如下# You can configure your scheduler in either configu原创 2013-03-08 14:52:27 · 13774 阅读 · 1 评论 -
Quartz.NET 2.0与以前版本的改进
2012年4月9日 Quartz.NET 2.0发布了Released版,对应于Java Quartz的2.1版本,下载地址 http://quartznet.sourceforge.net/download.html 。整个版本相对于1.0版本进行了大量的修改,单元测试的代码更友好(重构了更多的接口),API是基于泛型和.NET 3.5 SP1之后的特性,例如DateTimeOffset。这原创 2013-03-08 14:00:07 · 2273 阅读 · 0 评论 -
Quartz.NET--AdoJobStore作业存储
Quartz提供两种基本作业存储类型。第一种类型叫做RAMJobStore,它利用通常的内存来持久化调度程序信息。这种作业存储类型最容易配置、构造和运行。Quartz.net缺省使用的就是RAMJobStore。对许多应用来说,这种作业存储已经足够了。然而,因为调度程序信息是存储在被分配在内存里面,所以,当应用程序停止运行时,所有调度信息将被丢失。如果你需要在重新启动之间持久化调度信息,则将需原创 2013-03-08 10:00:41 · 4648 阅读 · 1 评论 -
Func,Action
1、概念阐述Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中使用就可以弥补反射所损失的性能。Action和Func的功能是一样的,只是Action没有返类型,Func:有参数,有返回类型Action,则既没有返回也没有参数,使用Func和A原创 2012-09-07 09:53:58 · 527 阅读 · 0 评论 -
在ADO.NET中实现事务
1. ADO.NET事务的主要成员 需要使用事务管理的情况很多,在数据层使用得特别广泛,几乎每一个系统的数据层都会实现事务。数据层的事务都是继承自DBTransaction,派生自IDbTransaction的。下面介绍一下IDbTransaction的基本成员:public interface IDbTransaction:IDisposable{ IDbConne原创 2012-09-06 09:11:26 · 1056 阅读 · 0 评论 -
VS2010中的任务并行
VS2010提供了任务并行库TPL增强了应用程序的并发性,在客户端系统中,并发任务的操作是不可缺少的一项功能,这样可以加强用户体验,在VS2010中有了全新的操作方式。原创 2011-11-30 15:27:02 · 618 阅读 · 0 评论 -
实体框架
在VS2010中提供了一个全新的名为实体框架的技术,可以用它来查询和操作数据库,在.NET中,可以利用ADO.NET与LINQ TO SQL查询数据库,使用起来都比较简单,实体框架彻底的在内存中建立了一个实体数据模型,将数据库中的模型映射到逻辑层中,从而可以直接操作,完全屏蔽了数据存储层的概念,这样使得编程所需要考虑的更少,在维护与数据库之间的关系之间的操作将会更少。原创 2011-11-29 16:40:21 · 461 阅读 · 0 评论 -
LINQ编程总结
LINQ to SQL 查询表达式适用于关系数据库,查询表达式是基于对象的,它要求将数据库表和试图映射到实体,LINQ TO SQL让数据库的操作变得更加的简单,完全弱化了数据库层的相关操作,我们可以像使用普通对象一样使用数据。 LINQ TO SQL 操作分5个步骤即可完成,首先是要定义好数据库表实体,这个用来做相应的实体映射,其次是定义连接字符串,接下来就是定义Dat原创 2011-11-23 17:11:37 · 531 阅读 · 0 评论 -
元数据和反射
元数据通常认为是关于数据的数据,是对程序集中的数据的描述。原创 2011-11-25 13:49:29 · 455 阅读 · 0 评论 -
LINQ TO XML
LINQ TO XML来管理XML数据十分方便,XElement是其核心组件,实现了如下功能: 1、从文件或流加载 XML。 2、将 XML 序列化为文件或流。 3、使用功能构造从头创建 XML 树。 4、使用 LINQ 查询来查询 XML 树。 5、操作内存中的 XML 树。 6、使用 XSD 验证 XML 树。原创 2011-11-24 15:11:52 · 395 阅读 · 0 评论 -
委托总结
在我们日常的对现实世界的抽象模拟中,经常要遇到数据、对象、数组、方法等问题的抽象,如果一个对象中的数据、对象、数组依赖于外部的某个对象,那么我们可以定位成属性的形式来动态获得数据,然而有些对象的方法也是需要动态获得的,也是依赖于其他对象的,这个时候委托便派上用场了,委托是一个或多个函数指针的抽象,有了委托,我们就可以将函数当做数据来看待,包括使用委托作为变量或数据成员,委托使函数能偶作为参数进行传原创 2011-11-23 13:51:39 · 403 阅读 · 0 评论 -
运算符重载
现在的软件开发都是面向接口与扩展,而对修改关闭,C#提供了很好的机制来支持这个开发观念,运算符重载与扩展方法的灵活运用,使得系统的灵活性得到非常大的扩充。系统定义的操作符仅仅限制于已有的类型,而对于自定义的类型,在使用的时候需要进行强制转换以及编写代码指定到对象中的某个属性,然后进行运算符运算,当这个操作运用的越多,就会有越多的代码重复,可是运算符重载却能很好的解决这个问题,让使用者不会再因为自定原创 2011-11-21 11:18:16 · 395 阅读 · 0 评论 -
泛型总结
泛型是针对于程序性能提高而增加的功能,在程序的定义中,经常要进行很多的强制转换,会涉及到装箱与拆箱的问题,特别是数组的操作,会严重的影响性能,而使用泛型则可以很好的解决这个问题,取消了不必要的装箱和拆箱操作,泛型可以用于类的定义、方法的定义,但是也有很多的地方不能是泛型的类型和成员函数:非托管类型、构造函数、运算符成员函数、属性、索引器、属性。 泛型的运用比较简单,其中最为关键的原创 2011-11-21 10:40:49 · 356 阅读 · 0 评论 -
Linq入门基础总结
Linq的介入,让.NET语言的开发又增加了一道利器,为了让Linq融合到已有的.NET语言之中,C#增加了很多的扩展功能,扩展功能如下列表: 1、类型推断,这可以让我们局部定义一个变量而无需定义类型,在编译时根据赋予的值再来定义其类型 2、对象初始值设定项,这允许我们初始化一个对象而无需构造函数 3、匿名类型,无需使用class、struct原创 2011-11-18 16:29:15 · 558 阅读 · 0 评论 -
C#中数组与集合总结
系统的模型建立,在其中流动的就是数据,保存数据的方式有很多,在数据持久化方面可以存储在各种数据库之中,也可以保存在文件系统,而在内存中的数据可以保存在变量、对象、数组之中,我们时时刻刻都需要使用到批量的数据,而数组与集合则是每日必用的结构。 首先明白System.Array是一个抽象类,不允许用new关键词初始化,但是可以使用其中提供的静态方法static,用Array.Crea原创 2011-11-17 18:28:40 · 990 阅读 · 0 评论 -
Visual Studio学习总结
微软的VS升级很快,还在使用VS2005,现在VS2010都已经出来好久了,VS最大的好处就在于每个版本的更新是向下兼容的,并且提供程序转换功能,能够迅速的将低版本的软件转换成高版本从而实现无缝链接。VS2008中的界面就不想多详细的去讲了,谈谈本人觉得最有用处的四个方面吧。 1、类关系图,系统提供的代码与设计的相互转换功能实在强大,这个功能在VS2005中已经有了,可是一直没有原创 2011-11-17 13:55:25 · 2276 阅读 · 0 评论 -
LINQ TO Object
1、语法2、应用3、常用代码原创 2012-08-29 22:23:23 · 309 阅读 · 0 评论 -
LINQ TO XML
LINQ to XML 提供了改进的 XML 编程接口,这一点可能与 LINQ to XML 的 LINQ 功能同样重要。 通过 LINQ to XML,对 XML 编程时,您可以实现任何预期的操作,包括:从文件或流加载 XML。将 XML 序列化为文件或流。使用函数构造从头开始创建 XML。使用类似 XPath 的轴查询 XML。使用 Add、Re原创 2012-08-29 21:55:21 · 407 阅读 · 0 评论