摘要: http://tommyknight.cn 阅读全文
posted @ 2014-08-15 11:50 老鱼_678 阅读(312) 评论(0) 推荐(0) 编辑
摘要: warning CS0467: Ambiguity between method 'Microsoft.Office.Interop.Word._Document.Close(ref object, ref object, ref object)' and non-method 'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'. Using method group.类似诸如:warning CS0467: Ambiguity between method 'Microsoft.Off 阅读全文
posted @ 2014-03-15 21:21 老鱼_678 阅读(1555) 评论(0) 推荐(1) 编辑
摘要: Nonocast.Http is a free, open source developer focused web service via http for small and medium software.The library implement HTTP1.1 protocal and also support WebSockets.在项目中需要Post content body。body包含一些序列化数据。Server: public class Program : SmallHTTPServiceBase { static void Main(strin... 阅读全文
posted @ 2014-03-12 22:30 老鱼_678 阅读(749) 评论(0) 推荐(0) 编辑
摘要: 13年度啥事都还没干眨眼过了大半年,感慨下时间真是不够用啊。这大半年公司从技术、管理、过程都在转型和改进。有变化意味着需要付出更多的代价。年初定了个读书计划,圈了些书。话说好些年没这么大量的阅读了。这里做个无责任书评,给同僚或同行做个参考。一、纯技术类....................................................华丽分割线................................................................ Python核心编程(第二版)和机器学习实战合在一起说,因为机器学习实战给的例子都是python写... 阅读全文
posted @ 2013-08-26 23:40 老鱼_678 阅读(891) 评论(3) 推荐(1) 编辑
摘要: 网上找了几篇Phonegap在安卓上的部署,版本都比较老了,不过还是部署成功了,写篇博客以做纪录。1.先下载IDE:戳2.下载Phonegap:戳3.启动ADT,新建普通Android Application Project4.在Package Explorer的项目项下 assets目录下新建www文件夹, res目录下新建xml文件夹5.将下载的Phonegap解压, cordova.js copy to www folder, cordova-2.9.0.jar copy to libs folder, config.xml copy to res/xml folder.6.项... 阅读全文
posted @ 2013-08-21 16:20 老鱼_678 阅读(4586) 评论(1) 推荐(0) 编辑
摘要: Phonegap简介 PhoneGap是一能够让你用普通的web技术编写出能够轻松调用api接口和进入应用商店的html5应用开发平台,是唯一支持7个平台的开源移动框架。优势:1.兼容性:多平台支持2.标准化;3.易学:html5+js劣势:1.性能:图形、数据处理等2.还是性能,如果需要使用OpenGL进行图形编程,使用插件形式加载,还是需要根据各个平台定制插件开发安装PhoneGap本文以v2.9 为例,戳解压即可。创建PhoneGap项目进入PhoneGap目录,创建项目指令./Create {Project Dir} {Package} {Project Name},如图: ... 阅读全文
posted @ 2013-08-07 21:01 老鱼_678 阅读(3108) 评论(5) 推荐(0) 编辑
摘要: 接上篇Windows store app[Part 3]:认识WinRT的异步机制WinRT异步机制回顾:IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如标识、状态、操作。IAsyncInfo:1 public interface IAsyncInfo2 {3 AsyncStatus Status { get; }4 HResult ErrorCode { get; }5 uint Id { get; }6 7 void Cancel();8 void Close();9 }IAsyncInfo没有定义当操作完成... 阅读全文
posted @ 2013-08-01 14:32 老鱼_678 阅读(1003) 评论(2) 推荐(0) 编辑
摘要: WinRT异步机制的诞生背景当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应。流畅的操作感变的十分重要。在连接外部程序接口获取数据,操作本地数据等任务时,如果构建方式错误,应用程序会将大量的时间花费等待外部环境上,从而无法保证足够的时间来响应用户的需求。之前公司的项目需要在Win7系统下编写触控应用程序,不管同事们如何努力的优化着代码,都不能使操作体验达到需求的要求。究其原因,Win7与.NET Framework不是为触控而设计,在进行某些I/O操作时,系统内部降低的UI操作的优先级。很高兴的是,微软适时的推出了WinRT,配合Win8, 阅读全文
posted @ 2013-07-26 21:02 老鱼_678 阅读(946) 评论(0) 推荐(1) 编辑
摘要: 在Win 8 App的安全沙箱内,除了使用文件选取器FileOpenPicker外,没有其他办法调用某个盘符的数据。全新的Storage命名空间,借鉴了IOS与Android的设计。下面引用一个图片绑定的简单例子:原来WPF我们可以这样写:1 2 3 也可以在Code-Behind这样写:this.DataContext = new BitmapImage(new Uri("ms-appx:///Assets/shanghai.jpg"));XAML: 效果都是这样:下面我们用Win8 App的Storage来重写一下上面的代码。为了举例,我们需要引用本地图片库... 阅读全文
posted @ 2013-07-24 12:24 老鱼_678 阅读(934) 评论(1) 推荐(1) 编辑
摘要: Windows 8系统下开发App程序,对于.NET程序员来说,需要重新熟悉下类库。关于WinRT,引用一张网上传的很多的结构图: 图1针对App的开发,App工作在系统划定的安全沙箱内,所以通过Win32去调用U盘获取数据是不行了。下面来看下在WinRT下如何读取U盘数据。1.Win 8 store app项目打开Package.appxmanifest配置文件2.选择Capabilities标签页,勾选Removalbe Storage,也可以在配置文件中的 节点增加3.选择Declarations标签页,增加File Type Associatio... 阅读全文
posted @ 2013-07-23 14:49 老鱼_678 阅读(1090) 评论(2) 推荐(0) 编辑
摘要: Strategy(Policy) Pattern译名为策略模式,是Gof经典《设计模式》一书中23种模式之一。本文将引用实际项目场景使用策略模式对实际项目进行改造,来阐述策略模式的用途。下文使用Strategy代替Strategy(Policy) Pattern表述。Strategy的核心:Strategy允许算法或对象独立于使用它的客户而变化。Strategy的使用方法:把过程中的易变部分提取到一个单独的“策略”对象中,将规则与它所控制的行为区分开。Strategy实现规则或可替换的过程。Strategy的多种实现表示完成过程的不同方式。Strategy标准UML:Edit By: http 阅读全文
posted @ 2013-06-12 23:38 老鱼_678 阅读(1196) 评论(2) 推荐(2) 编辑
摘要: 目前Team在写WPF项目的时候,往往设计一个Business Manager类,它是一个Singleton,用来处理一些特定的业务,其实可以理解为Mvc中的Control,也可以理解为一个Service。当业务逻辑的需求需要应用程序的View上交互动作操作,View调用Service来完成特定的任务,如点击PhotoApp,PhotoApp调用Sevice的加载图片方法加载View所需的图片集合。通常最简单的办法是在App Load或者初始化时new创建一个Service对象,或者再高级一点,使用Factory Pattern来Decoupling(解耦)View与Serivce的具体实.. 阅读全文
posted @ 2013-05-26 00:25 老鱼_678 阅读(2724) 评论(0) 推荐(1) 编辑
摘要: 接[从Prism中学习设计模式之Event Aggregator模式]一文,上文中从源码的角度分析了Prism中EventAggregator的实现。Lz想通过本文再深入谈下EventAggregator,将自己对Prism项目组的设计意图的理解做下记录,并希望和其他对Prism有兴趣的兄弟一起探讨。对于Prism的设计团队来说,设计EventAggregator肯定是经过一番详细考虑的,不会像我们平时在项目中图怎么简单怎么偷懒怎么来~[耻远了]。通过对Prism的源码进行阅读,给Lz一个很强的感觉就是Prism大量运用了设计模式和领域设计的理念,随着对源码理解的深入,这种感觉越来越强,每个设 阅读全文
posted @ 2013-05-23 22:24 老鱼_678 阅读(4771) 评论(5) 推荐(2) 编辑
摘要: 在实际工作中,WPF提供的控件并不能完全满足不同的设计需求。这时,需要我们设计自定义控件。这里LZ总结一些自己的思路,特性如下:CouplingUITemplateBehaviourFunction Package下面举例说说在项目中我们经常用到调音台音量条,写一个自定义控件模拟调音台音量条。自定义控件SingnalLight,实现功能接收来自外部的范围0~100的数值实时显示接收数值数值范围0~50显示绿色,50~85显示黄色,85~100显示红色,没有数值显示褐色可在父控件上拖拽该控件首先New WPF Application Project,在Ui上放2个Button,代码:1 ... 阅读全文
posted @ 2013-05-22 14:12 老鱼_678 阅读(28513) 评论(9) 推荐(5) 编辑
摘要: 标题是一个测试题。在看到这道题的时候,第一反应这是一道考程序复杂度的题,其次再是算法问题。我们先来看看质数的规则:Link:http://en.wikipedia.org/wiki/Prime_numberC#求质数代码:1 public bool primeNumber(int n){2 int sqr = Convert.ToInt32(Math.Sqrt(n));3 for (int i = sqr; i > 2; i--){4 if (n % i == 0){5 ... 阅读全文
posted @ 2013-05-15 11:12 老鱼_678 阅读(1783) 评论(5) 推荐(0) 编辑
摘要: 今天收到一个Bug修复的任务,Bug为在页面上输入一个文件夹名包含空格,点击该文件夹的URL后链接错误。看URL是HttpUtility.UrlEncode将空格转换成了“+”号,原因找到就着手解决Bug。参考:http://www.cnblogs.com/xiang/archive/2006/07/18/453918.html引用: fileName=HttpUtility.UrlEncode(fileName,Encoding.UTF8); fileName=fileName.Replace("+","%20"); 通过Replace替换解决,虽然问 阅读全文
posted @ 2013-05-13 20:42 老鱼_678 阅读(870) 评论(0) 推荐(0) 编辑
摘要: 大家知道WPF有多种Panel,如Canvas,Grid,StackPanel,DockPanel,WrapPanel,VirtualizingPanel等。在一些场景下可以选择任何一种或多种Panel实现一种效果。本文谈一下在同一场景下使用哪种Panel性能会更好。 新建一个WPF项目,各放置Stackpanel,Canvas,Grid,看下所占的内存,如图1,2,3 图1 Grid 图2 Canvas 图3 StackPanel我们可以看到空内容情况下内存容量是Stac... 阅读全文
posted @ 2013-05-13 13:33 老鱼_678 阅读(2863) 评论(6) 推荐(4) 编辑
摘要: 在实际项目应用中,经常会需要本机中不同的进程相互直接需要通信。 典型应用场景: 剪切板在不同应用程序间操作。 控制程序给予第三方程序通信控制接口,如播放器控制开关等。 在Windows操作系统中,进程间相互通信的方式至少可以列5种以上,本文讲述在WPF环境下比较简便的解决方案: 1.WCF NetNamedPipeBinding 2.Win32 1.WCF NetNamedPipeBinding NetNamedPipeBinding适用于本机间进程通信,基于命名管道来进行消息传递。 Link:http://msdn.microsoft.com/zh-cn/lib... 阅读全文
posted @ 2013-05-09 17:10 老鱼_678 阅读(6083) 评论(3) 推荐(8) 编辑
摘要: 在学习Prism中涉及的MVVM之前,我想有必要分别把MVC&MVP,MVVM,Command三种模式进行简单的总结,这样可以更好的理解Prism尤其是WPF的设计理念。本文内容:MVVM的来龙去脉为什么Prism使用MVVM示例讲解一、MVVM的来龙去脉 在我们开发具有UI界面的应用程序时,MVC和MVP模式会被大量的采用,应用这些模式可以很容易的开发各类应用程序。随着WPF的普及,一种基于MVC&MVP模式的变种,MVVM模式被微软的p&p小组提出。通过页面,数据源,逻辑分离,MVVM使开发工作更容易分工,程序结构更清晰和易维护。 MVVM全称Model/View/ 阅读全文
posted @ 2013-04-22 12:21 老鱼_678 阅读(2174) 评论(4) 推荐(2) 编辑
摘要: Event Aggregator模式定义:渠道事件从多个对象通过一个单一的对象来简化clients的注册。结构图:Prism的Event Aggregator模式:Event Aggregator允许多对象定位和发布、订阅事件。我们从Prism源代码中的EventAggregator和CompositePresentationEvent可以学习它是如何管理和传递事件消息的。 1 public interface IEventAggregator 2 { 3 TEventType GetEvent<TEventType>() where TEventType... 阅读全文
posted @ 2013-04-21 14:42 老鱼_678 阅读(2416) 评论(0) 推荐(2) 编辑