02 2012 档案

摘要:享元模式是使用共享部件减少内存占用享元模式http://zh.wikipedia.org/wiki/享元模式享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。典型的享元模式的例子为文书处理器中以图形结构来表示字符。一个做法是,每个字形有其字型外观, 字模 metrics, 和其它格式资讯,但这会使每个字符就耗用上千字节。取而代之的是,每个字 阅读全文
posted @ 2012-02-29 21:43 kiminozo 阅读(542) 评论(0) 推荐(1) 编辑
摘要:作为Web App访问远程图片是经常的遇到功能,Wp本身提供了Image 很好的支持通过图片的Uri显示图片public ImageSource Source { get; set; }<Image Source="https://www.google.com/intl/en_com/images/srpr/logo3w.png" />为了减少网络流量,需要将图片缓存到本地数据存储中。复习一下WP的本地数据存储:Windows Phone 本地数据存储Windows Phone 应用程序可以使用独立存储将数据储存到手机本地。应用程序可以通过三种方式储存数据:设置 阅读全文
posted @ 2012-02-28 23:05 kiminozo 阅读(2411) 评论(6) 推荐(6) 编辑
摘要:C#开发中经常需要使用使用异步操作,特别是Windows phone和Silverlight下层的很多IO相关的访问都是异步的。标准异步方法一般都是Begin[Invoke]和End[Invoke]的一对方法,用法就不多说了。我最近在写用命令模式常用的HttpRequest操作,就想将命令包装成异步方法,想了很久使用了下面的方式包装异步:首先是常规的异步调用时序:现在使用包装使用了2个类一个用于包装AsyncCallback,一个用于包装IAsyncResult,来包装这个时序。类的代码如下: /// <summary> /// 异步回调代理 /// </summary> 阅读全文
posted @ 2012-02-27 17:18 kiminozo 阅读(1839) 评论(0) 推荐(1) 编辑
摘要:log4net在.net 4.0 ClientProfile无法使用,原因是log4net里面有AspNetTraceAppender、AspNetPatternConverter等使用了System.Web,而 ClientProfile没有包含这个命名空间。解决办法很简单下载 log4net的源代码,将 ClientProfile不支持的类全部去掉,重新编译就可以了。我这里已经编译好了一个:http://files.cnblogs.com/kiminozo/log4net.ClientProfile.zip 阅读全文
posted @ 2012-02-22 21:11 kiminozo 阅读(846) 评论(0) 推荐(1) 编辑
摘要:装饰模式是通过包装类动态地往一个类中添加新的行为装饰模式http://zh.wikipedia.org/wiki/修饰模式通过使用修饰模式,可以在运行时扩充一个类的功能。原理是:增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用到新功能的地方,它可以直接调用原来的类中的方法。修饰类必须和原来的类有相同的接口。修饰模式是类继承的另外一种选择。类继承在编译时候增加行为,而装饰模式是在运行时增加行为。FCL中的装饰模式在流处理中装饰模式非常常用,典型的就是GZipStream提供用于压缩和解压缩流的方法和属性。结构如下:其中 阅读全文
posted @ 2012-02-22 20:43 kiminozo 阅读(374) 评论(0) 推荐(0) 编辑
摘要:适配器模式是让一个接口兼容并适应另一个通用的接口的模式。适配器模式http://zh.wikipedia.org/wiki/适配器模式适配器模式(英语:adapter pattern)有时候也称包装样式或者包装。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类工作在一起,做法是将类别自己的接口包裹在一个已存在的类中。FCL中的适配器模式比较典型的是WindowsFormsHost 类允许在 WPF 页面上承载 Windows Forms控件的元素。也就是将Windows Forms控件适配为Wpf的FrameworkElement结构如下:示例代码:<Win 阅读全文
posted @ 2012-02-22 20:29 kiminozo 阅读(308) 评论(0) 推荐(0) 编辑
摘要:原型模式就是由对象创建当前自身的副本的模式。副本是指深拷贝的内存空间,一般用于比较复杂的对象。原型模式http://zh.wikipedia.org/wiki/原型模式原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。FLC中的原型模式DataTable.Clone方法 是典型的原型应用。克隆 DataTable 的结构,包括所有 DataTable 架 阅读全文
posted @ 2012-02-21 21:13 kiminozo 阅读(286) 评论(0) 推荐(0) 编辑
摘要:Builder建造者模式 ,它可以将复杂对象的建造过程抽象分割出来。建造者模式http://zh.wikipedia.org/wiki/生成器_(设计模式)建造模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。FLC中的建造者模式最常用的是StringBuilder 它是简化的建造者模式使用方法如下:StringBuilder stringBuilder =new StringBuilder();stringBuilder.Append("Hello");stringBuilder.App 阅读全文
posted @ 2012-02-21 20:59 kiminozo 阅读(410) 评论(0) 推荐(0) 编辑
摘要:工厂方法是一组方法, 他们针对不同条件返回不同的类实例,这些类一般有共同的父类。工厂方法模式来自: http://zh.wikipedia.org/wiki/工厂方法模式工厂方法模式 是一种面向对象的设计模式。通过调用不同的方法返回需要的类,而不是去实例化具体的类。 对实例创建进行了包装。 工厂方法是一组方法, 他们针对不同条件返回不同的类实例,这些类一般有共同的父类。工厂方法模式实施一种按需分配的策略, 即传入参数进行选择, 工厂方法根据参数进行选择,返回具体的实例。FLC中的工厂方法模式在FLC中比较典型的就是WebRequest.Create(Uri requestUri)方法MSDN的 阅读全文
posted @ 2012-02-15 20:36 kiminozo 阅读(398) 评论(0) 推荐(0) 编辑
摘要:抽象工厂模式 Abstract Factory 为一个产品家族提供了统一的创建接口。抽象工厂模式来自:http://zh.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82抽象工厂模式(英语:Abstract Factory)是一种常见的设计模式。此模式为一个产品家族提供了统一的创建接口。当需要这个产品家族的某一系列的时候,可以从抽象工厂中选出相对系的系列来创建一个具体的工厂类别。FLC中的抽象工厂模式在FLC中比较典型的就是DbConnection .CreateDbCommand方法抽象类DbConnection表示到数据库的连接 阅读全文
posted @ 2012-02-15 20:11 kiminozo 阅读(307) 评论(0) 推荐(0) 编辑
摘要:单例模式Singleton:一个类仅有一个实例,自行实例化并向整个系统提供一个访问它的全局访问点。单例模式Singleton来自:http://zh.wikipedia.org/wiki/单例模式单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。实现单例模式的思路是:一个类 阅读全文
posted @ 2012-02-15 19:50 kiminozo 阅读(482) 评论(0) 推荐(0) 编辑
摘要:VisualState是什么?VisualState 指定控件处于特定状态时的外观。例如,按下 Button 时,它的边框颜色可能与正常时的颜色不同。VisualState 类具有更改控件外观的 Storyboard 属性。控件进入 VisualState.Name 属性指定的状态时,Storyboard 开始。控件退出该状态时,Storyboard 停止。例如CheckBox就有下面几种状态组:使用 VisualStateManager 通过将 VisualState 对象的名称传递到 GoToState 方法,来进行状态过渡。深入学习:谈谈Silverlight 2中的视觉状态管理http 阅读全文
posted @ 2012-02-12 13:49 kiminozo 阅读(2018) 评论(0) 推荐(4) 编辑
摘要:最近时间比较少了,完成了本地化语言版本的开发,不过提供更新APP的时候没有通过。原因是这条手动测试没有过。5.5.2 - 内容和主题 无论使用哪种手机主题,应用程序内容(例如文本和可视元素)都必须清楚易读。例如,如果手机主题从黑色背景更改为白色背景,则应用程序的文本和可视元素必须清楚易读。调试是找到的问题是一个背景使用了本地值:黑色,但是在白色主题下文本也会变成黑色所以成了一片黑。使用系统资源{StaticResource PhoneBackgroundBrush}就解决了这个问题。主要还是自己测试太粗心了,反省!系统主题提供了很多资源,比如我使用了的下表。名称类型说明PhoneAccentB 阅读全文
posted @ 2012-02-12 12:55 kiminozo 阅读(460) 评论(0) 推荐(0) 编辑
摘要:提供在各种同步模型中传播同步上下文的基本功能。,同步上下文的工作就是确保调用在正确的线程上执行。同步上下文的基本操作Current 获取当前同步上下文var context = SynchronizationContext.Current;Send 一个同步消息调度到一个同步上下文。SendOrPostCallback callback = o => { //TODO: ... 阅读全文
posted @ 2012-02-06 21:41 kiminozo 阅读(5655) 评论(0) 推荐(0) 编辑
摘要:CodePlex是微软的开源工程网站,涉及诸多微软最新技术的开源工程,同时也可以建立自己的开源工程,大家应该比较熟悉了吧。ClickOnce 是一种部署技术,使用该技术可创建自行更新的基于 Windows 的应用程序,这些应用程序可以通过最低程度的用户交互来安装和运行。而CodePlex支持ClickOnce的在线发布,可以减少安装部署和特别是更新的成本。当然只能是开源程序。下面就介绍一下如何在CodePlex发布ClickOnce应用程序/发布步骤1 在Codeplex申请你的开源项目在Codeplex上注册,添加开源项目并提交源代码,具体过程就不详细介绍了。申请后会得到一个二级域名,我申请 阅读全文
posted @ 2012-02-04 21:43 kiminozo 阅读(666) 评论(2) 推荐(0) 编辑
摘要:WP程序面向的是App Hub市场发布,支持多种语言是一个很重要的需求,也能为程序提供更广泛的用户群。如何实现让程序实现语言本地化呢?使用资源文件熟悉.net开发都知道资源文件中是可以支持多语言与本地化的基本。创建资源文件右键单击项目名称,在“添加新项”对话框中,选择“资源文件”,可以命名为 AppResources.resx。此文件包含应用程序默认语言的资源。最常用的是字符串资源。字符串资源是一种键-值(还有备注)方式的表,如下图。AppResources.resx资源文件会自动生成AppResources类用于获取资源的值。使用资源文件替换文本现在要做的是将所有界面相关的字符串全部换成资源 阅读全文
posted @ 2012-02-01 20:24 kiminozo 阅读(2943) 评论(5) 推荐(6) 编辑

点击右上角即可分享
微信分享提示