摘要: //----引入必要的命名空间using System.IO;using System.Drawing.Imaging;//----代码部分----//        private byte[] photo;//公用缓冲区        public string SourFilePath;//源图片文件路径        public string ObjFilePath;//目标图片路径  ... 阅读全文
posted @ 2009-07-31 16:43 awp110 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 在web程序开发中,相信很多同行们都碰到过图片压缩,生成缩略图的操作,比如产品的图片,会员的照片等等功能。 为了满足此类操作今天给大家介绍ImageUtility类,该类几乎实现了常规网站开发图片处理的功能,比如按大小生成缩略图,指定位置和大小裁剪,以前给图片添加 文字或图片水印等。此外此类生成的文件格式均为.jpg格式,如果想要.GIF或PNG的透明效果的朋友,就不要再向下看了。 老样子,先上图... 阅读全文
posted @ 2009-07-31 16:30 awp110 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 对于稍微有点经验的.NET开发人员来说,倘若被问及如何保持线程同步,我想很多人都能说好好几种。在众多的线程同步的可选方式中,加锁无疑是最为常用的。如果仅仅是基于方法级别的线程同步,使用System.Runtime.CompilerServices.MethodImplAttribute无疑是最为简洁的一种方式。MethodImplAttribute可以用于instance method,也可以用于... 阅读全文
posted @ 2009-07-31 15:18 awp110 阅读(269) 评论(0) 推荐(0) 编辑
摘要: lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。 此语句的形式如下:复制代码 Object thisLock = new Object();lock (thisLock){ // Critical code section.}有关更多信息,请参见 线程同步(C# 编程指南)。 备注 lock 关键字可确保当一个线程位于代码的临界区时,另一个线程不会进入该临... 阅读全文
posted @ 2009-07-31 14:56 awp110 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 使用C# lock同时访问共享数据 经常碰到同时需要对某个数据进行操作,或者对某个文件进行读写操作,对于这些操作我们以前往往不能很好的进行处理,自从C#语言中引入了lock这个关键字,以上问题就比较容易予以解决了,下面就是一段简单的代码。Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHi... 阅读全文
posted @ 2009-07-31 14:53 awp110 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 通过HttpModule实现IP地址屏蔽功能 此前本想在网上找找实现Asp.Net的IP地址屏蔽功能的文章来参考,但是一搜索“IP 屏蔽 asp.net”,出现的全都是: 这些都是对我此前写的《细说Asp.net的IP地址屏蔽功能设计》一文的无情转载,不仅不保留出处、作者,而且连标题都没一个与我原文相同的~~这篇文章写的是程序设计部分,并没有编程实现屏蔽功能,搜索引擎上翻了... 阅读全文
posted @ 2009-07-31 14:43 awp110 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 开始-所有程序-Microsoft .NET Framework SDK v2.0-Tools-MSIL 反汇编程序 阅读全文
posted @ 2009-07-31 11:31 awp110 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 第五章 并发和事务 并发和事务是企业开发中常遇到的棘手问题,尤其对于新人来说有的时候他们是一个难以琢磨的名词,但是企业开发中总会跟它们打交道,它们如影随形总会在某个时候成为开发者梦魔。本章我们通过一些简单的例子来说明并发和事务的一些基本概念。5.1 常见的并发情况如果我们在多线程或多进程中操作同一数据,就会遇到并发问题。企业开发中系统常常访问的是存储在数据库中的业务数据,我们最常见的例子就是两个用... 阅读全文
posted @ 2009-07-31 11:23 awp110 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 第四章 单元测试 单元测试:开发者编写的一小段代码,用于检验被测代码中的一个很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。 编写单元测试是一种验证行为,验证编写的功能单元是否满足设计需求;更是一种设计行为,根据测试反馈调整改进设计逻辑,特别如果使用了TDD开发模式测试先行,可以迫使我们把程序设计成易于调用和可测试的,帮助我们不知不觉中解除软件中... 阅读全文
posted @ 2009-07-31 11:22 awp110 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 第三章 层次优势前一章我们谈到了分层有很多好处,那么到底有些什么好处呢,本章我们在上一章的例子的基础上增加两个不同类型的客户端来简要说明,分层后我们在某些需求发生变化是如View的要求变了,我们只是通过增加View来解决问题,而不是在单层例子的时候,需要几乎全部的重写来完成这一工作。3.1 WinForm的客户端例子假定一个场景由于客户某些需求发生了变化,或者通过Web开发的界面无法实现客户要求的... 阅读全文
posted @ 2009-07-31 11:20 awp110 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 第二章 分层架构 本章我们重点来描述如何实现开发中软件层次结构,通过对第一章的例子的重构,以实例的方式展示一个分层结构是何样子,力求简要说明如何考虑软件开发中的分层问题,建立一个关于软件分层一个初步的印象。在个人以往的项目经历中,遇到了各种各样的软件层次概念,尤其对物理分层与逻辑分层没有清晰的认识,很多开发人员一谈软件分层必然是远程调用、远程服务之类;要不就是过度分层,不管项目和开发环境情况的实... 阅读全文
posted @ 2009-07-31 11:19 awp110 阅读(245) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/haozi0804/archive/2009/07/31/1535524.html第一章 简单的开始本章我们从一个简单的项目开始,一个基于NHibernate2.1数据库O/R Mapping工具的简单编程实例,来说明即使我们使用了O/R Mapping工具仍然有可能会把程序写成没有层次结构和杂乱无章。不是说这样的看上去简单的结构不是好结构,正如很多程... 阅读全文
posted @ 2009-07-31 11:17 awp110 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 多线程: Type text hereclassActiveDate{privatestring_CusID;privatestring_Visitor;privateint_ShopNum;privateint_flag=0;publicintFlag{get{return_flag;}set{_flag=value;}}publicstringCusID{get{return_CusID;}s... 阅读全文
posted @ 2009-07-31 10:32 awp110 阅读(159) 评论(0) 推荐(0) 编辑
摘要: [代码] 阅读全文
posted @ 2009-07-31 10:30 awp110 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 有关多线程的一些技术问题:1、何时使用多线程?2、线程如何同步?3、线程之间如何通讯?4、进程之间如何通讯?先来回答第一个问题,线程实际主要应用于四个主要领域,当然各个领域之间不是绝对孤立的,他们有可能是重叠的,但是每个程序应该都可以归于某个领域:1、offloading time-consuming task。由辅助线程来执行耗时计算,而使GUI有更好的反应。我想这应该是我们考虑使用线程最多的一... 阅读全文
posted @ 2009-07-31 10:30 awp110 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 前两篇简单介绍了线程同步lock,Monitor,同步事件EventWaitHandler,互斥体Mutex的基本用法,在此基础上,我们对它们用法进行比较,并给出什么时候需要锁什么时候不需要的几点建议。最后,介绍几个FCL中线程安全的类,集合类的锁定方式等,做为对线程同步系列的完善和补充。1.几种同步方法的区别lock和Monitor是.NET用一个特殊结构实现的,Monitor对象是完全托管的、... 阅读全文
posted @ 2009-07-31 10:29 awp110 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 本篇继续介绍WaitHandler类及其子类Mutex,ManualResetEvent,AutoResetEvent的用法。.NET中线程同步的方式多的让人看了眼花缭乱,究竟该怎么去理解呢?其实,我们抛开.NET环境看线程同步,无非是执行两种操作:一是互斥/加锁,目的是保证临界区代码操作的“原子性”;另一种是信号灯操作,目的是保证多个线程按照一定顺序执行,如生产者线程要先... 阅读全文
posted @ 2009-07-31 10:27 awp110 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 本篇从Monitor,Mutex,ManualResetEvent,AutoResetEvent,WaitHandler的类关系图开始,希 望通过本篇的介绍能对常见的线程同步方法有一个整体的认识,而对每种方式的使用细节,适用场合不会过多解释。让我们来看看这几个类的关系图: 1.lock关键字lock是C#关键词,它将语句块标记为临界区,确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果... 阅读全文
posted @ 2009-07-31 10:26 awp110 阅读(259) 评论(0) 推荐(1) 编辑
摘要: 数据库事务中的基本概念 数据库事务是指,由一个或多个SQL语句组成的工作单元,这个工作单元中的SQL语句相互依赖,如果有一个SQL语句失败,那么整个操作都要撤销。在并发环境中,当多个事务同时访问同一资源时,可能会造成并发问题,此时可以使用数据库系统的事务隔离级别来避免各类并发问题。此外,在应用程序中还可以使用悲观锁和乐观锁来解决丢失更新的并发问题。 数据库事务必须具备ACID的特征(Atomic原... 阅读全文
posted @ 2009-07-31 09:43 awp110 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 引言  B/S构架的应用越来越普及,但由于它有别于C/S构架的特殊性,并发控制始终没能得到很好的解决,如售票系统经常会出现同一张火车票出售多次的现象。典型的案例如下:  例如若有两个客户端,A客户先读取了账户余额2000元,之后B客户也读取了账户余额2000元的数据,A客户提取了500元,对数据库作了变更,此时数据库中的余额为1500元,B客户也要提取1300元,根据其所取得的资料,2000-13... 阅读全文
posted @ 2009-07-31 09:27 awp110 阅读(326) 评论(0) 推荐(0) 编辑