自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(68)
  • 收藏
  • 关注

原创 IOS数组的深浅拷贝

看了一下网上对于NSArray和NSMutableArray的深浅拷贝的文章,觉得有些地方不靠谱,自己做了一下实验,将结果留档 NSArray *mArray1 = [NSArray arrayWithObjects:[NSMutableString stringWithString:@"a"],@"b",@"c",nil]; NSArray *mArrayCop

2013-05-29 03:21:15 8636

原创 Smart Client学习笔记(8) 智能客户端中的离线数据访问

本次课程主要讲解了以下几个议题•什么是智能客户端?•离线用户需求与技术挑战•数据通讯策略•连接管理•客户端数据缓存和同步•Offline Application Block什么是智能客户端?•丰富的用户界面(Microsoft® Windows® Forms):利用winform的用户界面•后台连接服务•客户端安全运行•支持通过网络自动部署和更新•支持断开连接操作:数据保存在本地,当连

2008-12-14 16:19:00 2037

原创 Smart Client学习笔记(7) 使用多线程创建高响应智能客户端应用程序

这次课程讲解了如何进行多线程编程多线程应用程序的特点:• 具有同时有多条“执行线路”的能力• 行为无法预知并且每次调试时行为不同• 线程增加了程序的复杂性• 多线程不但可以用于我们所关注的SmartClient当中,也可以用于任何应用程序当中为什么要讨论多线程应用程序?• 向用户提供及时响应• 在运行时层面并行执行任务• 获得更好的全面的应用程序性能• 硬件资源得到全面利用在w

2008-11-21 00:14:00 1407

原创 Smart Client学习笔记(6) 分布式智能客户端应用程序开发最佳实践

 首先我们需要了解为什么需要构建分布式应用程序•客户端仅需较少硬件支持,共享高效的服务器硬件•在客户端仅仅部署少量组件,因此易于应用程序更新•易于监视应用程序,备份数据•服务器为安全提供了额外的层面那么也就可以在分布式应用程序中,计算的主力实在服务端,而客户端主要是用于呈现和操作数据的,并且,由于数据在服务端,我们可以很容易的监视应用程序及其数据分布式设计分为两类 1.同步:客户端

2008-11-12 00:39:00 1425

原创 Smart Client学习笔记(5) 托管代码的增强调试功能

这一课讲解自定义视图调试和多线程调试的一些方法我们在调试过程中可以看到很多的数据,难以定位到我们所需要的数据,并且也不知道我们看到的数据是属于属性还是字段是静态的还是非静态的。有些内部信息在调试的时候我们也不希望别人可以看到。我们还需要自定义默认数据视图。首先介绍的是如何在debug时隐藏一个字段或属性的显示,我们通过[DebuggerBrowsable(DebuggerBro

2008-11-03 01:39:00 1402

原创 Smart Client学习笔记(4) Windows Form中的智能客户端部署

在这一课中主要讲解了ClickOnce的基础、安全性和编程方式来进行ClickOnce更新在传统的c/s开发中,我们都会面临部署的难题。如果客户端只是10台以内,问题还不是很大,但是当客户端在10台以上,那么问题就会出现很多,我们需要在每台客户端上搭配环境,安装程序等工作。并且,每台客户端由于不一样,我们安装程序是否会破坏客户端上其他的应用程序呢?是否会碰上dll地狱的问题呢?当我们的应用程序

2008-11-03 00:44:00 1620

原创 Smart Client学习笔记(2) 创建专业用户界面的Windows Form应用程序

这次课程主要学习了ToolStrip控件、Web Browser控件、数据绑定控件、布局控件和新的控件属性的相关知识ToolStrip控件为工具条,菜单,下拉菜单和上下文菜单提供了通用的API,所有的工具条项目都继承与ToolStripItem首先说明ToolStrip控件的样式,也就是RenderModeProfessional样式:呈现出来的菜单及状态栏样式类似与xp的样式,比较好

2008-11-02 21:08:00 1364

原创 Smart Client学习笔记(1) 智能客户端开发概览

 今天开始学习智能客户端的开发。首先讲解了胖客户端和瘦客户端两者之间的优缺点及Smart Client的特点。1.胖客户端就是我们常用的windows form(c/s)程序,它有以下几个特点:较好的用户体验,因为winform程序可以开发更好的特效。响应速度较快。难于部署。我们开发winform应用程序之后要部署到很多客户机上时,这个就非常的麻烦。Dll地狱。dll地

2008-11-01 23:10:00 1439

转载 CSS样式表中的选择符

一、类型选择符什么是类型选择符?指以网页中已有的标签类型作为名称的行径符。body是网页中的一个标签类型,div,p,span都是。如下:body {}div {}p {}span {} 二、群组选择符对于XHMTL对象,可以对一组同时进行了相同的样式指派。使用逗号对选择符进行了分隔,这样书写的优点在于同样的样式只需要书写一次即可,减少代码量,改善CSS代码结构。使用时应该

2008-10-30 14:41:00 1213

原创 由字符集编码引起的错误

在asp.net中由于vs开发环境统一了字符集的编码,所以我们很少碰到字符集造成的错误。但是在我现在的项目中碰到了。我们这个项目通过vss进行源代码管理,我使用vs2008进行开发,我同事使用vs2005进行开发。由于项目时间紧张,页面的美化工作和功能的开发同步进行,美工做完页面美化工作就讲切好的html代码给我们。但是我们在套去css样式表的时候,发现有的样式能够生效,有的样式不能生效。百思不得

2008-10-30 00:31:00 1570

原创 在Asp.Net中不使用基于Cookie的Session

在传统的Asp中我们知道,如果客户端禁止使用Cookie会导致服务器端Session不可用,因为SessionID是保存在客户端的Cookie里面的。如果客户端禁止使用Cookie,那么SessionID将无处存储。但是在.net中我们可以使用不基于Cookie的Session,为什么不使用Cookie?因为Cookie由于一些安全性方面的问题,有一部分的客户会禁止使用它。那么我们在.net中如何

2008-10-12 01:38:00 1994

原创 C#面向对象设计模式纵横谈 学习笔记24 Visitor访问者模式(行为型模式)

动机:在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的改变,将会给子类带来很繁重的变更负担,甚至破坏原有设计。如何在不更改类层次结构的前提下,在运行时根据需要透明的为类层次结构上的各个类动态添加新的操作,从而避免上述问题?意图:标识一个作用于某对象结构中的各元素的操作。它可以在不改变各元素的类的前提下定义作用于这些元素的新的操作。

2008-10-07 23:56:00 1460 1

原创 C#面向对象设计模式纵横谈 学习笔记22 State模式(行为型模式)

动机:在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化,比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同,如何在运行时根据对象的状态来透明的更改对象行为?而不会为对象操作和状态转化之间引入紧耦合?意图:允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为public class Context    { 

2008-10-06 00:20:00 1217

原创 C#面向对象设计模式纵横谈 学习笔记21 Memento备忘录模式(行为型模式)

动机:在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态.如果使用一些共有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。我们需要实现对象状态的良好保存与恢复,但同时不会因此而破坏对象本身的封装性。意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态

2008-10-05 01:50:00 1128

原创 C#面向对象设计模式纵横谈 学习笔记20 Chain of Responsibility职责链模式(行为型模式)

动机:在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显示指定,将必不可少的带来请求发送者与接受者的紧耦合。必须是请求的发送者不需要指定具体的接受者,让请求的接受者自己在运行时决定来处理请求,从而使两者解藕。意图:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理为止。

2008-10-04 00:57:00 1172

原创 C#面向对象设计模式纵横谈 学习笔记19 Observer观察者模式(行为型模式)

  意图       定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。动机在软件构建过程中,我们需要为某些对象建立一种"通知依赖关系"。一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好的抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关

2008-09-28 01:19:00 1377

原创 C#面向对象设计模式纵横谈 学习笔记18 Iterator迭代器模式(行为型模式)

迭代器模式我们在平时的开发中应该经常用到。不直接使用也会间接使用,我们使用foreach语句来循环就是在间接的使用迭代器模式迭代器就像指针一样可以向前向后移动,在.net中迭代器只能向后移动.动机:在软件的构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“同一种算法在多种集合

2008-09-24 00:53:00 1024

原创 C#面向对象设计模式纵横谈 学习笔记17 Mediator 中介者模式(行为型模式)

意图       用一个中介对象来封装一系列对象的交互。中介者使得各对象不需要显式相互引用,从而使其松散耦合,而且可以独立地改变它们之间的交互。Mediator模式解决了一个问题,多个类相互引用相互,相互影响,这时候类的关系模型是复杂的,一个类对象的变化会导致其他类对象的变化,这种场景有点连锁反应的意思。下面有一段代码class CutMenuItem    {  

2008-09-23 21:05:00 1387

原创 C#面向对象设计模式纵横谈 学习笔记16 Interpreter 解释器模式(行为型模式)

Interpreter模式是一种比较不常用的模式,因为这种模式存在一些弊端,他的使用有很大的条件限制。Interpreter是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。简单地说,Interpreter模式是一种简单的语法解释器构架。先借用李建忠老师的代码例子  public class Program    {        s

2008-09-20 14:58:00 1601 2

原创 C#面向对象设计模式纵横谈 学习笔记15 Command命令模式(行为型模式)

命令(Command)模式属于对象的行为模式【GOF95】。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。每一个命令都是一个操作:请求的一方发出请求要求执行一个操作;接收的一方收到请求,并执行操作。命令模式允许请求的一

2008-09-18 00:14:00 1097

原创 C#面向对象设计模式纵横谈 学习笔记14 Template Method模板方法(行为型模式)

Template Method模式是纯粹利用面向对象语言多态性来实现的一种模式意图       定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 其实这种模式是设计模式中最简单的一种,他代表的意义是,比如基类需要写一个方法,但是某些事情需要延迟到子类才能确定(或某些事情子类可以进

2008-09-17 00:05:00 631

原创 C#面向对象设计模式纵横谈 学习笔记13 Proxy代理模式(结构型模式)

代理模式从本质上来看类似与明星的代理制度。明星出名之后有许多事情,如广告的洽谈、演唱会的洽谈,形成的安排等等繁琐的事情,但是明星亲自去解决这些事情会非常繁琐,那么他就会去找一个代理人帮助他安排、计划这些事情。在软件开发中也如同这个类似。最典型的就是远程方法调用,或者是WebService的调用。假设在远程服务器上有一个类Employeeclass Employee : IEmplo

2008-09-12 22:52:00 722

原创 C#面向对象设计模式纵横谈 学习笔记12 FlyWeight享元模式(结构型模式)

在我们面向对象编程时,我们会经常将很多对象封装在一起,成为对象A,如果A中的某个对象所占用的内存比较大,同时我们需要创建很多对象A,我们需要一种设计模式来解决这个问题。打个比方,假设有一个网络游戏,同时有很多用户在线,那么我们就要创建很多网游用户对象,但是每个用户对象都包含了衣服对象,但是这个衣服对象的类别就3中,我们肯定不希望为每个用户来创建一个衣服对象,那么我们就将衣服对象放入一个共享池里,那

2008-09-11 22:45:00 690

原创 在.net中保证WebService的通讯安全

Web Service现在是很通用的技术,在Web Service我们需要验证用户是否有使用此Web Service的权限,并且要保证在通讯过程中的数据安全,防止数据在传输过程中被网络窃听。首先是如何保证Web Service被授权使用,在这里我说的是通过SoapHeader来判断调用Web服务的用户。1.定义一个安全上下文,并且继承于SoapHeader类public class

2008-04-20 23:29:00 4665 2

原创 在.net中给Oracle上传文件超过一定大小出错的问题

在.net中,上传文件可以直接实例化一个OracleParameter参数,这个参数的类型为 OracleType.Blob类型,可以直接将二进制文件的byte[]类型的数组直接赋值给这个参数的Value值。但是在实际使用中,出了一点问题,当文件的大小大于1M(好像是的),执行存储过程会报参数错误。说明了这样给参数赋值是有局限的,参考了msdn的文档,发现给Oracle参数赋二进制的值的确不能这样

2008-03-29 00:36:00 1550 1

原创 CodeDom使用心得

  CodeDom是.net提供源代码生成器,他可以通过CodeDomProvider来生成源代码,因为CodeDomProvider是CSharpCodeProvider、VBCodeProvider的抽象基类,表示CodeDomProvider是跨语言的源代码生成器,只需要提供相应的CodeProvider就可以生成相应的语言的源代码。CodeDom在System命名空间下,CSh

2008-03-24 23:34:00 5931

原创 C#面向对象设计模式纵横谈 学习笔记11 Facade外观(结构型模式)

假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系统构成。 public class Wheel...{    public void WAction1()    ...{     }    public void WAction2()    ...{    }}public class Engine...{    publ

2008-01-25 00:28:00 717

原创 Asp.Net Ajax 学习笔记25 利用Microsoft AJAX Library开发客户端组件(下)

这次课程的首先将$create方法的详细签名描述了一遍。$create( type, properties, events,references, element);那么什么时references呢?references是一个字典,保存了对象属性与其它对象的关系,key是属性名,value是其他对象id。保证在initialize方法被调用时属性已经被设置为所需对象,即使调用$create

2008-01-24 01:23:00 903

原创 Asp.Net Ajax 学习笔记24 利用Microsoft AJAX Library开发客户端组件(中)

在上一次课程中,Component的成员还有四个没有涉及到。 beginUpdate方法:开始更新控件的属性,有点类似与线程锁一样,为了保证控件属性值的一致性 isUpdating只读属性:判断控件是否在更新中 endUpdate方法:完成更新控件的属性,类似与释放线程锁。 updated方法:提交组件的更新信息。 这里涉及到控件的Upda

2008-01-21 03:19:00 989

原创 Asp.Net Ajax 学习笔记23 利用Microsoft AJAX Library开发客户端组件(上)

Asp.Net Ajax框架已经为我们提供了组件的设计模型 Sys.Component:组件的基类,他实现了下面三个接口 Sys.IDisposable:组件的销毁接口 Sys.INotifyDisposing:组件销毁的通知接口 Sys.INotifyPropertyChange:组件属性改变的通知接口 下面是这些基类和接口的成员说明

2008-01-20 02:21:00 1092

原创 C#面向对象设计模式纵横谈 学习笔记10 Decorator 装饰(结构型模式)

当我们在设计一个一个类继承结构的时候,我们可能会存在以下的情况。首先有一种坦克的抽象类,那么这个坦克会有很多中类型,那么我们就派生这个坦克吧。比如说有德国虎式坦克,轻型坦克和工程坦克,那么现在又有三种功能要扩展到这三种坦克上,如两栖功能、夜视功能、雷达功能,可以把这三种功能设置为接口。按类继承的设计方案,如果需要这三种坦克每种坦克都有相应的功能坦克,我们需要继承Tank类,并实现相应功能的接口,那

2008-01-19 00:56:00 788

原创 Asp.Net Ajax 学习笔记22 使用Microsoft Ajax Library中的浏览器兼容功能

 现在市面上流行的浏览器有IE,FireFox, Opera,Safari等等,不同浏览器对于JavaScript的语言特性实现大致相同,但是对于DOM操作方式则大相径庭。 几乎所有的JavaScript框架都提供了浏览器兼容功能 Microsoft AJAX Library自然也不例外。判断浏览器类型和版本。浏览器兼容层的优势,就是在于使用同样的编码方式,让相同的代码在不同的浏览器下表现统一

2008-01-14 21:28:00 1202

原创 C#面向对象设计模式纵横谈 学习笔记9 Composite 组合(结构型模式)

在我们开发过程中,我们可能需要用到一种设计,一个容器可以包含一个对象,并且也可以包含一个容器,我们需要通过一个接口或一个抽象类来表示这个容器或对象,也就是说容器或对象是同一总类型,但是包含关系,也就是说我们需要用一种模式来实现多叉树的结构。节点可以包含字节点,也可以包含子项。我们可以通过Composite模式来实现。首先看看Composite模式的动机:如何将"客户代码与复杂的对象容器

2008-01-11 00:33:00 938

原创 Asp.Net Ajax 学习笔记21 VS2008的JavaScript代码提示功能

这次课程主要讲的是VS2008的环境问题,其中包含 JavaScript Intellisense JavaScript智能提示 JavaScript Comment JavaScript注释 1、JavaScript Intellisense功能 自动识别变量的运行时类型 自动判断方法返回类型 自动识别引用的JS文件内容

2008-01-10 01:08:00 1556

原创 C#面向对象设计模式纵横谈 学习笔记8 Bridge桥接(结构型模式)

桥接模式的动机假设我们有一个坦克游戏的开发,那么这个坦克有多种类型,并且这个游戏要支持多种平台的游戏事实上由于Tank类型的固有逻辑,使得Tank类型具有了两个变化的维度--一个变化的维度为"平台的变化",一个变化的维度为"型号的变化"。如何应对这种"多维度的变化"?如何利用面向对象技术来使得Tank类型可以轻松地沿着"平台"和"型号"两个方向变化,而不引入额外的复杂度?桥接模式的意图

2008-01-09 01:47:00 922

原创 C#面向对象设计模式纵横谈 学习笔记7 Adapter适配器(结构型模式)

.从现实生活上来说,适配器可以想象为三相插头和二相插头的转换接头。那么适配的定义就是在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。适配器模式的动机在软件系统中,由于应用环境的变化,常常需要将"一些现存的对象"放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。如何应对这种"迁移的变化"?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?

2008-01-08 01:24:00 728

原创 C#面向对象设计模式纵横谈 学习笔记6 Prototype 原型(创建型模式)

Prototype模式的动机在软件系统中,经常面临着"某些结构复杂的对象"的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。如何应对这种变化?如何向"客户程序(使用这些对象的程序)"隔离出"这些易变对象" ,从而使得"依赖这些易变对象的客户程序"不随着需求改变而改变?Prototype模式的意图使用原型实例指定创建对象的种类,然后通过拷贝这些原

2008-01-07 01:00:00 730

原创 Asp.Net Ajax 学习笔记20 ASP.NET AJAX的全球化与本地化功能

本次课程讲的是对Asp.Net Ajax的全球化和本地化的开发。首先说明了全球化和本地化的定义。 全球化是一个面向多种文化开发和设计一个应用程序的过程。 本地化是面向特定文化和地区定制应用程序的过程 全球化:面向多种文化,设计本地化:面向特定文化,定制结论:- 全球化为应用程序提供多文化的支持- 本地化"全球化"带来的支持进行定制- 两者密不可分在Asp.

2008-01-06 04:20:00 892

原创 C#面向对象设计模式纵横谈 学习笔记5 Factory Method 工厂方法(创建型模式)

1、Factory Method工厂方法模式的动机在软件系统中,经常面临着"某个对象"的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的接口。如何应对这种变化?如何提供一种"封装机制"来隔离出"这个易变对象"的变化,从而保持系统中"其他依赖该对象的对象"不随着需求改变而改变?2、Factory Method工厂方法模式的意图:定义一个用于创建对象的接口,让子类决定

2008-01-03 00:04:00 718

原创 Asp.Net Ajax 学习笔记19 关注ASP.NET AJAX的核心-ScriptManager

这一讲的内容主要是把以前课程的ScriptManager的使用统一归纳起来首先我们看看ScriptManager的静态方法。 static void RegisterArrayDeclaration 注册一个Array对象,可在页面上注册,或在控件上注册

2008-01-01 03:00:00 1249

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除