.NET
文章平均质量分 78
Giraffe_zj
这个作者很懒,什么都没留下…
展开
-
log4net 将不同级别的信息写入不同的日志文件
项目中需要把所的错误信息写入一个文件(log_infoYYYY.MM.DD),用户操作信息写入另一个文件(log_infoYYYY.MM.DD)中。原创 2009-01-06 18:55:00 · 2542 阅读 · 0 评论 -
log4net使用手册
1 简介 1.1Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API。因为一旦程序被部署以后,就不太可能再利用专门的调试工具了。然而一个管理员可能需要有一套强大的日志系统来诊断和修复配置上的问题。 经验表明,日志记录往往是软件开发周期中的重要组成部分。它具有以下几个优点:它可以提供应用程序运行时的精确环境,可供开发人员尽快找到应用程序中的Bug;一旦在程序中加入了Log原创 2009-11-24 21:42:00 · 1434 阅读 · 0 评论 -
.NET设计模式(3): 抽象工厂模式
引入:在前面介绍的两个创建型模式里面,我们解决的都是有关"new"的问题,用它们来避免显式指定类创建对象。我写的也非常简单易懂,相信看过的朋友们都应该对简单工厂模式、工厂方法模式的意图、所能解决的问题及适用情景有一定的了解了。但是若要达到灵活运用,什么时候用,怎样用合适还不是看一篇文章就能解决的问题。呵呵..这需要你对OO的理解程度,你的项目开发经验等等许多方面的积累。一起努力喔。。好了,咱们言原创 2009-11-25 21:40:00 · 740 阅读 · 0 评论 -
NET设计模式(1): 简单工厂模式
介绍:简单工厂模式不能说是一个设计模式,说它是一种编程习惯可能更恰当些。因为它至少不是Gof23种设计模式之一。但它在实际的编程中经常被用到,而且思想也非常简单,可以说是<a title=".NET设计模式(2): 工厂方法模式希望对你有所帮助" href="anlyren/archive/2008/01/26/factory_method.html" target="_blank">工厂方转载 2009-11-25 19:42:00 · 578 阅读 · 0 评论 -
我的WCF之旅(4):WCF中的序列化[上篇]
SOA 和MessageWindows Communication Foundation (WCF) 是基于面向服务架构(Service Orientation Architecture——SOA)的一种理想的分布式技术(Distributed Technology), 相信在今后在建立基于SOA企业级别的解决方案和进行系统集成方面将会大有作为。一个基于SOA结构的互联系统(Connected S转载 2010-01-17 21:14:00 · 720 阅读 · 0 评论 -
log4net面观之工作原理
要知道Log4net究竟是咋干活的,咱们可以从下面这个脉络简图入手。你的程序中的语句log4net.LogManager.GetLogger().Info(“hello world!”);就会引发log4net如下内部工作流程。不要管上面的对象(Appender/Filter等等)是什么东东,先看着这个流程,我们来摸摸log4net工作的脉络,然后我们再按关节一一打通。1. 第一件事就是找调度转载 2009-11-24 21:21:00 · 1443 阅读 · 0 评论 -
我的WCF之旅(2):Endpoint Overview
WCF实际上是构建了一个框架,这个框架实现了在互联系统中各个Application之间如何通信。使得Developers和Architect在构建分布式系统中,无需在考虑如何去实现通信相关的问题,更加关注与系统的业务逻辑本身。而在WCF Infrastructure中,各个Application之间的通信是由Endpoint来实现的。Endpoint的结构Endpoint包含以下4个对转载 2010-01-14 11:00:00 · 703 阅读 · 0 评论 -
我的WCF之旅(1):创建一个简单的WCF程序
为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用。本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构。对那些对WCF不是很了解的读者来说,这个例子将带领你正式进入WCF的世界。在这个例子中,我们将实现一个简单的计算服务(CalculatorService),提供基本的加、减、乘、除的运算。和传统的分布式通信框架一样,WCF本质上提供一转载 2010-01-14 09:02:00 · 1333 阅读 · 2 评论 -
趣味理解ADO.NET对象模型
数据库的应用在我们的生活和工作中已经无处不在,无论是一个小企业的OA系统,还是中国移动的运营系统,似乎都离不开数据库的应用。对于大多数应用程序来说,不管它们是Windows桌面应用程序,还是Web应用程序,存储和检索数据都是其核心功能。所以针对数据库的开发已经成为软件开发的一种必备技能。如果说过去是“学好数理化,走遍天下都不怕”,那么,对于今天的软件开发者而言就是“学好数据库,走到哪儿都不怵!”。原创 2009-06-18 15:23:00 · 711 阅读 · 0 评论 -
.NET设计模式(2): 工厂方法模式
介绍:在简单工厂模式中,我们提到,工厂方法模式是简单工厂模式的一个延伸,它属于Gof23中设计模式的创建型设计模式。它解决的仍然是软件设计中与创建对象有关的问题。它可以更好的处理客户的需求变化。引入我们继续来说"new"的问题,我们在简单工厂模式中,将实例化对象的工作推迟到了专门负责创建对象的工厂类中,这样,在我们事先预知的情况下,可以根据我们的需要动态创建产品类。但是,我们的预知是有限的,客户转载 2009-11-25 20:39:00 · 624 阅读 · 0 评论 -
OO与设计模式的原则、目标
OO(Object–Oriented )面向对象 OO方法(Object-Oriented Method,面向对象方法,面向对象的方法)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO (Object-Oriented)方法,是建立在“对象”概念基础上的方法学。对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。而转载 2010-01-24 22:21:00 · 652 阅读 · 0 评论 -
c# Invoke和BeginInvoke 区别
转自http://www.cnblogs.com/c2303191/articles/826571.htmlControl.Invoke 方法 (Delegate):在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。(一)Control的Invoke和BeginInvoke我们要基于以下认识:(1)Control的Invoke和BeginInvoke与Delegate的Invoke和Begi原创 2011-01-18 16:03:00 · 896 阅读 · 0 评论 -
240多个jQuery插件
概述<br />jQuery 是继 prototype 之后又一个优秀的 Javascript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不及的,它兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 jQuery 是一个快速的,简洁的 javaScript 库,使用户能更方便地处理 HTML documents、events、实现动画效果,并且方便地为网站提供 AJAX转载 2011-01-03 22:18:00 · 1040 阅读 · 0 评论 -
WCF并发:2
<br /><br />5.ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant,InstanceContextMode = InstanceContextMode.PerSession) --Reentrant并发与PerSession实例模型<br /><br /><br />《图5》<br />对于PerSession的实例模型,每个客户端拥有一个服务实例,如果该客户端采用多线程模式与服务端交互,那这个客户端的所有线程共享一个实例。而R转载 2010-08-04 16:29:00 · 2069 阅读 · 0 评论 -
WCF与AJAX编程开发实践(4):支持JSON的Ajax WCF服务
<br />上一节学习了WCF与AJAX编程开发实践(3):支持ASP.NET AJAX的WCF服务。今天继续学习WCF与AJAX编程开发实践(4):支持JSON的AJAX WCF服务。 本文重点介绍的是如何在支持AJAX的WCF服务里使用JSON进行数据交换。这里会首先介绍JSON的基本概念,为了说明问题。我们会给出一个JSON的例子。中间介绍WCF的JSON编程模型,最后给出的是示例代码。<br /> 首先我们来看一下JSON的定义。<br />【1】JSON:<br /> JSON(Jav转载 2010-07-24 10:44:00 · 998 阅读 · 0 评论 -
WCF与AJAX编程开发实践(1):AJAX基础概念和纯AJAX示例
<br />【0】开篇序言: <br /> 在《WCF分布式安全开发实践》系列文章之后,很想重新开启一个系列文章,来完善WCF的学习知识。思考很久,决定写一下WCF和AJAX学习的文章,取名为《WCF与AJAX编程开发实践》。 <br /> 这个系列主要关注在WCF于AJAX集成的开发学习上。考虑到很多没有AJAX的朋友,可能要接触WCF。这里会从头开始。最初的AJAX概念和原理,然后会讲解微软的ASP.NET AJAX,中间是支持AJAX的Web Service,因为在WCF之前,Web Ser转载 2010-07-24 10:14:00 · 888 阅读 · 0 评论 -
提高ASP.Net应用程序性能的十大方法
提高asp.net应用程序性能的常说的神话有用的提高asp.net应用程序性能的技巧asp.net应用程序操作数据库的建议asp.net中的缓存与后台处理进程现在写一个asp.net的web应用程序变得非常的简单,许多的程序员都不愿花时间去构建一个性能良好的应用程序。本文将要讨论提高web应用程序性能的十大方法。我将不限于只讨论asp.net应用程序的内容,因为它们只是web应用程序的一个子集。本原创 2010-03-24 09:34:00 · 720 阅读 · 0 评论 -
程序员能力矩阵 你属于哪一层?
注意:每个层次的知识都是渐增的,位于层次n,也蕴涵了你需了解所有低于层次n的知识。计算机科学 Computer Science软件工程 Software Engineering程序设计 Programming经验 Experience 【CSDN编者按】上述图书中,第一级对应的英文为Unleashe转载 2010-03-24 10:48:00 · 863 阅读 · 0 评论 -
HttpModule和Http Handler (比较与区别)
HttpModule概述暂时先不考虑我们自己实现Http Module的情况。在.Net中,Http Module 是实现了IHttpModule接口的程序集。IHttpModule 接口本身并没有什么好大写特写的,由它的名字可以看出,它不过是一个普普通通的接口而已。实际上,我们关心的是实现了这些接口的类,如果我们也编写代码实现了这个接口,那么有什么用途。一般来说,我们可以将Asp.Net中的事件转载 2010-01-27 14:40:00 · 1241 阅读 · 0 评论 -
C#也能动态生成Word文档并填充数据
要使用C#操作word,首先要添加引用: 1、添加引用->COM->Microsoft Word 11.0 Object Library 2、在.cs文件中添加 using Word; 下面的例子中包括C#对Word文档的创建、插入表格、设置样式等操作: (例子中代码有些涉及数据信息部分被省略,重要是介绍一些C#操作word文档的方法)原创 2009-08-17 22:24:00 · 772 阅读 · 0 评论 -
委托与事件代码详解与(Object sender,EventArgs e)详解
引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对原创 2009-06-14 00:10:00 · 1487 阅读 · 1 评论 -
C#多线程学习(五) 多线程的自动管理(定时器)
Timer类:设置一个定时器,定时执行用户指定的函数。定时器启动后,系统将自动建立一个新的线程,执行用户指定的函数。初始化一个Timer对象: Timer timer = new Timer(timerDelegate, s,1000, 1000); // 第一个参数:指定了TimerCallback 委托,表示要执行的方法;// 第二个参数:一个包含回调方法要使用的信息的对象原创 2009-07-27 17:56:00 · 546 阅读 · 0 评论 -
多线程的自动管理(线程池)
在多线程的程序中,经常会出现两种情况:一种情况: 应用程序中,线程把大部分的时间花费在等待状态,等待某个事件发生,然后才能给予响应这一般使用ThreadPool(线程池)来解决;另一种情况:线程平时都处于休眠状态,只是周期性地被唤醒这一般使用Timer(定时器)来解决;ThreadPool类提供一个由系统维护的线程池(可以看作一个线程的容器),该容器需要 Windows 200原创 2009-07-27 17:55:00 · 656 阅读 · 0 评论 -
c#中使用多线程访问winform中控件的若干问题
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。 首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeComponent(转载 2009-07-27 11:32:00 · 737 阅读 · 0 评论 -
C#多线程学习(三) 生产者和消费者
前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字lock定义如下:原创 2009-07-27 15:54:00 · 443 阅读 · 0 评论 -
高性能网页开发新20条规则详解
上个月,Yahoo!优异性能(Yahoo!s Exceptional Performance)开发团队成员 Stoyan Stefanov 出席了蒙特利尔的2008魁北克PHP会议演讲。他提供了他们团队最新的研究成果和提高网页性能规则20条。在早先的高性能网页开发14条军规已经让大家耳熟能详,此次新增的20条更加全面,覆盖了服务器端、cookies、页面内容、JavaScript、CSS、图片转载 2008-12-21 22:31:00 · 533 阅读 · 0 评论 -
解决log4net独占日志文件的问题以及 log4net的各种输出配置(Appender)
由于log4net默认情况下会独占日志文件,该文件不能被File.Open。可以通过增加配置:lockingModel type="log4net.Appender.FileAppender+MinimalLock" />来使用最小锁定模型(minimal locking model),以允许多个进程可以写入同一个文件。各种appender说明:在log4net的配置中,appende原创 2008-12-16 14:18:00 · 1790 阅读 · 1 评论 -
解决log4net独占日志文件的问题以及 log4net的各种输出配置(Appender)
由于log4net默认情况下会独占日志文件,该文件不能被File.Open。可以通过增加配置:lockingModel type="log4net.Appender.FileAppender+MinimalLock" />来使用最小锁定模型(minimal locking model),以允许多个进程可以写入同一个文件。各种appender说明:在log4net的配置中,appender原创 2008-11-20 23:55:00 · 7397 阅读 · 5 评论 -
性能比较:.NET Remoting 与 ASP.NET Web 服务
摘要:本文对 Microsoft ASP.NET Web 服务与 Microsoft .NET Remoting 的相关性能进行比较。Microsoft ASP.NET Web 服务的互操作性最好,并完全支持 HTTP 上的 WSDL 和 SOAP;而 Microsoft .NET Remoting 可实现公共语言运行库类型系统的高保真,并支持其他数据格式和通信信道。(14 页打印页)下载 B转载 2008-11-21 00:03:00 · 978 阅读 · 0 评论 -
c# Default关键字
1、在switch语句中,如果没有任何 case 表达式与开关值匹配,则控制传递给跟在可选 default 标签后的语句。如果没有 default 标签,则控制传递到 switch 以外。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/原创 2009-07-24 15:46:00 · 567 阅读 · 0 评论 -
C#多线程学习(一) 多线程的相关概念
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程原创 2009-07-27 14:08:00 · 548 阅读 · 0 评论 -
ComponentArt.web.ui中文帮助之Grid(五)
ComponentArt Grid检验栏列介绍 就象大多数数据表格控件,ComponentArt Grid包括扩展的在表格列中操作检验栏的功能,这种功能可以用于列属性设置为"CheckBox"的boolean列.这本质上是将列永久的设置为编辑模式,允许开发者响应列的变化,在checkboxes获得似乎更多的信息.注意,这些功能的一部分能够有选择的被服务器端模板执行可选的数据绑定转载 2009-06-10 23:06:00 · 964 阅读 · 0 评论 -
ComponentArt.web.ui中文帮助之Grid(四)
使用ComponentArt Grid中的客户端模板ComponentArt的表格控件具有最新的模板技术:客户端模板.通过ComponentArt的客户端渲染技术来实现,客户端模板扩充了模板技术到客户端,使用客户端脚本代替服务器端脚本可以允许数据绑定到客户浏览器, 对ComponentArt表格使用客户端模板前,必须浏览一遍Web.UI控件中的模板概述,根据你的需要,也许服务器端模板更适合转载 2009-06-10 22:56:00 · 1824 阅读 · 0 评论 -
ComponentArt.web.ui中文帮助之Grid(三)
使用ComponentArt Grid的服务器端模板通过它的不同的用户个性化定制特征,ComponentArt Grid包括服务器控件对内部内容使用服务器模板的正常能力,这篇文章概述了表格使用服务器端模板的典型用法,同时也指出了开发者可以获得的这些功能支持的事件和方法在选择使用服务器段模板之前,必须保证读过一遍Web.UI控件模板概述。可能客户端模板更适合你的程序概述Compone转载 2009-06-10 22:48:00 · 1307 阅读 · 0 评论 -
ComponentArt.web.ui中文帮助之Grid(一)
为ASP.NET设计的ComponentArt Grid结合了我们的专利表现技术和AJAX技术,包括客户端,服务器端和回传运行模式 主要特征包括:分页,排序,分组,过滤,查找,列缩放和排序,分级显示和多重表格,客户端和服务器端模板,多种记录选择,记录编辑,条件格式化,右键菜单,键盘控制 实现客户端运行模式客户端运行模式下的ComponentArt Grid(RunningMode="Client原创 2009-06-10 22:44:00 · 931 阅读 · 0 评论 -
ComponentArt.web.ui中文帮助之Grid(六)
ComponentArt Grid触发和处理服务器端事件ComponentArt Grid的一个重要特征是它能够触发服务器端事件。为了充分发挥他的优势,适当的响应这些事件是至关重要的。这篇文章提供了服务器端事件的概述,同时也是一系列典型应用实例下面是服务器事件的列表以及相应的类定义,版本3.0事件EventArgs意义Colu转载 2009-06-10 23:06:00 · 1783 阅读 · 0 评论 -
ComponentArt.web.ui中文帮助之Grid(二)
2.使用回调模式(AJAX)实现一个Grid 当你有大量数据—数百万条记录时,ComponentArt Grid在(RunningMode="Callback")回调运行模式能够提供最好的界面. 在这种模式下, ComponentArt Grid 使用回调来只刷新分页的数据.其他页面元素如图象不刷新,没有数据的表格区域保持原状态.对于很少的数据要得到好的界面效果,客户端运行模式是转载 2009-06-10 22:47:00 · 1355 阅读 · 0 评论 -
asp.net ajaxtoolkit CascadingDropDown从数据库中读取数据绑定到DropDownList控件上
需求是这样的,有三个DropDownList控件,分别用来选择国家,省份,和城市。他们具有依赖关系,当我选择某个国家的时候,我需要无刷新的动态加载这个国家的所有的省份,同样,当我选择某个省份的时候,我需要无刷新的选择这个省份的所有的城市。而这些国家,省份和城市的数据全部是储存在sql server数据库中。 我看了这个需求后,我打算利用AjaxToolKit中的CascadingDropDown控原创 2009-05-22 15:06:00 · 2001 阅读 · 0 评论 -
C#多线程学习(二) 如何操纵一个线程
下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。 打开你的V转载 2009-07-27 14:45:00 · 475 阅读 · 0 评论 -
SQL Server 2008无日志文件附加数据库
我们的“DBA”晚上执行了一个涉及用户的操作,结果执行数据量太大,导致sql server存放日志的磁盘空间不足,第二天早起发现论坛出现问题,不能发帖。收缩日志不见效果的情况下,和其主管商议决定直接删除日志文件.ldf 。没有进一步验证自己的方案,就付诸实施。1、停服务;2、删除日志文件(直接物理删除了:(;3、再启动服务,4、原设想是可以直接建立日志文件,或者通过手工创建,未果;转载 2012-03-21 14:18:35 · 11290 阅读 · 2 评论