文章资源汇集
架构 我眼中的Visual Studio 2010架构工具 基于消息与.NET Remoting的分布式架构 设计 领域驱动设计实践 解除具体依赖的技术 期待的接口 软件隐喻的本质与模式 虚方法的使用 依赖之殇 敏捷 解开最后期限的镣铐 印第安人的灵魂——敏捷回顾 在Scrum中实施敏捷建模 重构 避免复制与粘贴 改造面向过程式设计 利用多态重构为带参方法 备注:我将持续维持此文章资源列表。作者: 张逸 发表于 2010-12-29 11:50 原文链
http://www.cyqdata.cn/cnblogs/article-detail-2254
[SharePoint 2010 的那些事儿 – Excel Service]如何修改Excel工作表的值
EWA JavaScript 对象模型最大的功能就是让我们可以在页面中与EWA WebPart进行良好的交互,所谓交互是一个双向的过程,上篇博客中介绍了如何从EWA中获取值,在本篇中将继续介绍如何修改EWA中所承载的工作簿中的某个单元格的值。
下面仍然通过一个简单的例子来对这个功能进行说明。
在修改单元格中的值前,首先要做的就是获得想要修改的单元格的位置。我们可以先为要修改的单元格定义一个自定义名称,这样在后面设置该单元格的值时也比较方便。然后还需要调用workbook对象中的getRangeA1Async()方法来获得想要修改的单元格。
getRangeA1Async()方法是一个异步调用的方法,它有三个参数,分别是
addressA1
要操作的区域名称
callback
获得该区域后的回调函数
userContext
用户上下文
http://www.cyqdata.cn/cnblogs/article-detail-2253
利用ArcServer实现地图查询
首先引入相应的命名空间:
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->using ESRI.ArcGIS.ADF;using ESRI.ArcGIS.ADF.Connection;using ESRI.ArcGIS.ADF.Connection.AGS;using ESRI.ArcGIS.Server;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;
1.指定连接用的用户。
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.
http://www.cyqdata.cn/cnblogs/article-detail-2252
设计模式速查手册-创建型
Is & Is Not
这篇文章是……
仅包含模式的名称、简要说明、结构类图和结构示例代码。
可用于快速浏览、回顾、查询及复习设计模式。
模式的意图和使用场合来自作者的个人实践总结。
虽然示例代码使用C#,但是尽量不会用到C#中特有的特性、接口及方法,而是起到一个通用框架说明的作用。
这篇文章不是……
对设计模式面面俱到。
对设计模式详细而深入的探讨和研究。
从其它文献中照搬的东西。
保证绝对没有错误(虽然我尽我所能让其准确)。
讲述设计模式在C#中具体实现方法。
01 Abstract Factory(抽象工厂)
简要说明
抽象工厂模式拥有一组工厂类,这些工厂类实现同一个抽象工厂接口,这个接口定义了一系列创建方法,每一个方法创建一种产品,所有方法所创建的产品组成一个系列。不同的具体工厂类创建不同系列的系列产品,系列中每一种产
http://www.cyqdata.cn/cnblogs/article-detail-2251
取得祖先元素2
这个以前已经研究过了,但嫌速度不够快,重新搞了一个。现在略略重申一下问题,比如有一个节点集合[a,b,c,d,e],其中,a是b的父节点, d是b的父节点,我要的结果是去掉这些存在包含关系的节点中的被包含者,换言之,最终得到[c,d,e]。
这里可能用到contains函数:预先列出来吧。
//http://www.cnblogs.com/rubylouvre/archive/2009/10/14/1583523.html
var contains = function(ancestor,node) {
if (node.compareDocumentPosition)
return (node.compareDocumentPosition(ancestor) & 8) === 8;
if (ances
http://www.cyqdata.cn/cnblogs/article-detail-2250
SilverLight搭建WCF聊天室详细过程(十九)WCF服务端变量以及对象设计思路
SilverLight搭建WCF聊天室详细过程 系列文章为大家演示了如何使用SilverLight搭建WCF即时通讯系统过程,多人视频正在开发中,我会持续更新这个系列,以后几篇我会对群里提出最多的问题进行解答并给出设计思路,WCF和IIS配置已经包含在此系列,希望各位朋友在提问前先找找前面的帖子,QQ群:.NET集中营45656086,位置已经不多,群里高手很多,而且比较有开源精神,我是营长,有问题大家可以在博客园留言或者进营!
很多朋友在群里提问想知道SilverLight调用服务和WCF服务回调客户端的过程,我先给出大家这个过程的流程图,后面将会以聊天室为代码源通过代码为大家慢慢道来。
&n
http://www.cyqdata.cn/cnblogs/article-detail-2249
查找最近的共有祖先元素
司徒正美给出的题,也尝试着写一下。先来看概念,首先DOM是一棵树,其根节点是Document,大致可以用下图来表示:
所谓“最近的共有祖先元素”,是指给定一系列元素,找出在树中深度最大的,但同时为所有这些元素的祖先元素的元素。
比如上图中,I和G的结果为C,G和H的结果为A,D和E的结果为html,C和B的结果为html等。
测试驱动
对于偏逻辑的题,并没有十足的把握函数是正确的,因此还是先构造测试的用命,力求让函数通过测试。
本次就以上图的结构作为DOM结构,A表示body,B表示head,其他节点均使用div元素,同时以上文中所说的作为测试的输入和输出,先构造一下测试:
function test() {
var result;
result = find('i', 'g');
result.id !== 'c' &&
http://www.cyqdata.cn/cnblogs/article-detail-2247
浅谈缓存的设计与使用注意项(上)
memory cache + backing store enterprise libiary中的caching block 在微软pattern&practise团队发布的enterprise library5版本中带有一个caching block,这个缓存块为我们提供了缓存数据大一些列方法。其架构如下图(这里再说明一下:caching block以后会被整合进.net framework之中,enterlib5的后续版本会将caching block剔除): caching block采用的是“内存缓存+backing store”结构(不过backing store是可选的),程序启动时缓存被加载到memory cache,也就是进程内存中(具体有两种加载策略,positive和reactive),当我们通过key调用对应的缓存项时首先在
http://www.cyqdata.cn/cnblogs/article-detail-2245
c#进阶params可变个数的参数
目录1 简单使用2 可变个数的参数params 的原理3 性能分析4 较佳实践建议 系列索引C#功能派的进阶2--类型的那些事 C#中的常量的使用 c#进阶 methods上 c#进阶 methods中 c#进阶 methods中2overload methods C#进阶 Methods下 Extension Methods C#进阶可选参数和命名参数 c#进阶-方法中的ref和out1简单使用 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->static Int32 Add(params Int32[] values) {&nb
http://www.cyqdata.cn/cnblogs/article-detail-2244
Gamemonkey编程---高级进阶4
这些东西是平时遇到的, 觉得有一定的价值, 所以记录下来, 以后遇到类似的问题可以查阅, 同时分享出来也能方便需要的人, 转载请注明来自RingOfTheC[ring.of.the.c@gmail.com]
继续翻译GameMonkey脚本语言的文章, 这些文章都是在GameDev网站上找到的. 在翻译的过程中, 更加深了我对GM的了解和兴趣, 它的协程机制确实比Lua的协程在原生支持方面增强了很多, so enjoy! 上次GM参考手册的翻译放在了一篇文章, 感觉显的太长了, 所以这次我决定将这些长篇翻译分成多篇文章, 这样阅读起来比较方便, 而且可以避免一次信息过大
原文地址: http://www.gamedev.net/reference/programming/features/gmScriptAdv/page2.asp
&nbs
http://www.cyqdata.cn/cnblogs/article-detail-2242
GameKnifeEngine第一个游戏<TANK 3D> Demo版完成!
毕设中期检查前一天
终于完成了!
自从上个星期一从公司离职,回家闭关写了整整一个星期... 中间平安夜圣诞节也就和女友象征性的过了一下。终于,在毕设中期检查的前一天完成了!
toonshading + 复杂后处理 + 1920*1080... pixelshader表示压力很大...
等检查完了开始优化...检查嘛,主要是用画面感觉震住老师们...
这一个星期的成果
其实11月中旬那次检查,GameKnifeEngine的底层就已经出来了。模仿OGRE的几个核心:[gkSceneManager] [gkResourceManagers] [gkRenderSequence] 已经联系在一起了。
由于时间紧迫gkRenderTarget只是个[虚拟]的假象, 模型渲染直接继承了Renderable和Movable做了一个最基本的物体。这次的一个半月,主要
http://www.cyqdata.cn/cnblogs/article-detail-2241
浅谈https\ssl\数字证书
在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。
名词解释
首先解释一下上面的几个名词:
https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议。http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层。从发送端看,这一层负责把http的内容加密后送到下层的TCP,从接收方看,这一层负责将TCP送来的数据解密还原成http的内容。
SSL(Secure Socket Layer):是Netscape公司设计的主要用于WEB的安全传输协议。从名字就可以看出它在https协议栈中负责实现上面提到的加密层。因此,一个https协议栈大致是这样的:
数字证书:一种文件的名称,好比一个机构或人的签名,能够证明这个机构或人的
http://www.cyqdata.cn/cnblogs/article-detail-2240
c#进阶理解property属性和属性值之惑
目录1 简单demo 2 使用reflactor分析3 使用属性的提醒 4 我对属性的理解5 属性需要定位吗? 6 扩展阅读 1 简单demo 以下是一个常见的属性的使用。其中Name 属性没有定义私有字段,而AGE定义了已有字段。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public sealed class Employee { // This property is an
http://www.cyqdata.cn/cnblogs/article-detail-2239
c#进阶理解property属性和属性值之惑
目录1 简单demo 2 使用reflactor分析3 使用属性的提醒 4 我对属性的理解5 属性需要定位吗? 6 扩展阅读 1 简单demo 以下是一个常见的属性的使用。其中Name 属性没有定义私有字段,而AGE定义了已有字段。 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public sealed class Employee { // This property is an
http://www.cyqdata.cn/cnblogs/article-detail-2238
PowerShell 2.0之使用WMI管理Windows(三)对WMI对象的语言支持
管理大型的异构网络非常繁琐,而在本地计算机上用不同的自动化接口,如PowerShell、COM对象,甚至基于.NET的程序管理单独的程序和服务则容易得多。关键是存在于混合网络中的分布式系统,即如何操作防火墙后面的设备。如果它只是一种硬件设备,如路由器,则使用WMI(Windows Management Instrumentation)即可。WMI是协同工作的一系列技术,可以提供网络对象的统一访问形式。并且用其查询服务信息,尤其是各种形式的数据、触发命令,以及改变配置选项。
在第2个PowerShell版本中针对WMI对象增加了很多语言增强功能,允许用户使用类似URL的字符串作为WMI对象的别名。
首先介绍将包含WQL查询字符串转换为WMI查询对象,这个类型是[wmisearcher],由此可以引申出ManagementObjectSearcher对象。搜索对象只有一个Get()方法,用于执
http://www.cyqdata.cn/cnblogs/article-detail-2237
当软件项目全部能靠自己搞定了,也能接几万元的软件项目时,未必适合创业
软件开发人员到了一定的境界后软件项目全部靠自己都能搞定了,同时几万元的项目能接到也能顺利完成时就会考虑到自己创业的事情,有些人头脑不够冷静这时候就盲目走上了创业之路,创业后自己很辛苦、生意也难做、还会遇到很多生存问题、资金问题、人力资源问题、可持续发展问题等等N多问题。
01:同一时间只做一个项目时人的精力都很集中、项目进展、工作效率都很快、管控项目总是会得心应手。
02:但是同时做好几个项目,人的精力分散了,往往出处于水上漂、应付表面,无法对项目进行强有力的推动、明显的进展,工作效率会明显下降。
03:干自己的事情与干别人的事情境界完全是不一样的,往往给你干活的人或者合作干活的人,不会那么拼命,不能期望值很高。
04:软件项目人员的变动可能性太大
http://www.cyqdata.cn/cnblogs/article-detail-2235
浅谈缓存的设计与使用注意项(下)
缓存的加载策略--Proactive 和Reactive proactive的策略就是一开始就将所有backing store中的数据加载到进程内存中,这样做的好处是在数据量相对不大的时候会显得很有效率,无需频繁的访问backing store调出数据,并且也不用再代码中判断缓存中是否缓存有数据,是否要从backing store中加载。 reactive策略是“按需加载”,在程序初始化阶段仅加载必要的数据到内存缓存起来,其余数据只有在需要时才从数据库中调出再缓存。这种策略比较保守,缺点是在数据量比较大且频繁访问之初由于要多次频繁的向backing store获取数据,但通常我们使用这种的就是这种策略。 下面是两种方案的示例代码比较:proactive的方式Code highlighting produced by Actipro CodeHighlight
http://www.cyqdata.cn/cnblogs/article-detail-2234
[WebGL] 简介,流程及示例
WebGL是一个附加的渲染上下文(context),支持HTML5的canvas对象。这个上下文允许通过一种与OpenGL ES 2.0 API非常相似的API来进行图像渲染。
创建WebGL上下文
通过使用canvas的getContext(“experimental-webgl”)方法来获取一个WebGLRenderingContext。
创建Shaders
Shaders是用来将图形信息(shape data)转换为屏幕上的像素。当使用GLSL这种shader格式时,我们会用到两种不同的shaders。
Vertex shader 使用在被渲染的三角形的每个顶点(corner)上。这个shader会转换点信息,传入贴图对其信息并且使用每个三角形的normals来计算光照。GLSL提供给用户一个特殊的变量gl_Position来存储经过转换的顶点信息。WebGL
http://www.cyqdata.cn/cnblogs/article-detail-2233
vc2010 std::tr1 bind库捉虫记
前两天发现了VC2010 tr1库中bind实现的一个bug,当时只是作了记录,没有详细分析.但作为一个QA,不找出问题所在实在不算称职,于是就有了这篇捉虫记.
闲言少叙,书归正传,tr1库就不多作介绍了,有兴趣的同学可以去 wikipedia上看.bind,顾名思义,就是把参数与函数绑定,以利于我们进行函数式编程,是从boost的bind库引入的,对bind不是很了解的可以看陈硕同学的这篇
以boost::function和boost:bind取代虚函数
假定笔者是 vc2010的QA,在做bind的功能测试,开始用gtest写test case, (笔者一般用gtest作为C++测试框架,就写到文章中了,但ms肯定不会用啦.笔者不在ms,请勿对号入座)
先写几个简单的函数供测试之用. Code highlighting produced by Actipro CodeHig
http://www.cyqdata.cn/cnblogs/article-detail-2232
[精] Matlab实现鼠标写字 鼠标绘图
最早的程序,实在忘了从哪里下载的了。能够实现鼠标的手写输入,但是一些不连续的点。
tmouse.m
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->function tmouse(action)% TMOUSE 本例展示如何以Handle Graphics来设定滑鼠事件(Mouse% Events)的反应指令(Callbacks)if nargin == 0 action = 'start'; end switch(action) % 开启图形视窗 case 'start', axis([0 1 0 1]);% 设定图轴范围 box on;% 将图轴加上图框 title('Click and
http://www.cyqdata.cn/cnblogs/article-detail-2231