IT技术博客

IT技术博客,精选各种精华文章供您阅读,是您学习各种IT技术的博客优选之地

[获奖公告]“博客无双”12月27日第一期获奖名单

经过一天一夜的激烈角逐,博客无双活动的首日拍卖已经顺利结束,两台印有“微软社区精英”LOGO的K8电子阅读器分别以10170颗园豆和10120园豆的高价竞拍成功,两位获胜者分别是MagicBoy110、撞破南墙。在这里向两位表示祝贺!同时,期待更多的朋友参与我们的活动,在分享技术的同时,也能有一份意外的收获。 请获奖园友通过邮件的方式将个人信息和快递地址告知我们,我们后续就会安排寄送礼品的事情。邮箱地址为:contact@cnblogs.com。 立即参与拍卖作者: 博客园团队 发表于 2010-12-29 09:58 原文链

谈CLR的装箱与拆箱

CLR类型系统有两种主要类型—Reference Type和ValueType。前者是在托管堆中被分配内存并接受管理,后者则有两种形态--装箱与未装箱,对于装箱形态的值对象是在托管堆中,未装箱形态的值对象是在栈上分配。 CLR堆上对象和栈上对象的差异 每一个堆上对象都有两个额外的字段,一个是类型引用表的指针,用于实现多态,类似于C++的多态机制,另一个字段是SyncBlockIndex,用于实现CLR线程同步机制。栈上对象则无这两个字段。 装箱的过程 装箱: 在堆上开辟内存,包括2个额外字段+值对象大小。 将值对象复制过去 3.返回新分配对象的地址。 拆箱的过程 1.如果为null,跑出NullReferenceException 2.如果引用指向的不是一个期望对象的已装箱对象,跑出InvalidCastException。 3

Silverlight MMORPG网页游戏开发课程(Game Lesson):目录

[感谢 银光中国 提供本课程所有源码资源分流] 一次全新的开始,一次全新的构建与诠释。渴望在时空长廊中寻觅传说中光的起源,我决定用这部课程编写一首血脉喷张之进行曲。一年前,我一个人在战斗,前行,引导我绝不放弃的是那遥远而飘渺的微米月光,循着光的足迹至今天,为这股越发坚定的力量所吸附更多的光无惧黑暗的吞噬,穿越,直至大地!何以扶平我此刻宽慰的心?交织着英雄与自由主义那勇往直前之无尚银光。 有朋友认为这次的课程毫无新意,其实不然。如果你选择仔细阅读每个角落,或许你收获的东西比我第一部教程给得更多且更实用。依旧是一节接一节循序渐进的模式推进着整个章节,对于有Silverlight基础的朋友可以说不存在任何难点。不要被“游戏开发”这几个大字所吓到,既然你选择来到这个世界上,就一定要比前人活得更坚强且更有价值!理想的实现与每每朝着理想的方向迈出那么一小步都将成为你毕

Silverlight C# 游戏开发:L7 HeightMap

在3D游戏中,我们经常能够看到连绵起伏的山脉,当在夕阳西下一览众山之时,可曾想过这美景在3D世界中是如何呈现,前面讲完了灯光和摄像机,本篇聊聊Silverlight3D游戏的HeightMap,并从文件中取得高度图信息形成下面的3D地形。 HeightMap是地形的输入数据,可以理解为位图,一个2D矩阵,和位图不同的是,把元素的颜色值映射为高度值,现实中的地形是真实的,不是由三角平面模拟的,但是3D图形图像处理中常常使用三角形来代替地形的表面,每个三角形的顶点高度在山脉到山谷之间转换,模拟自然地形。我们来看看HeightMap的原理: 使用HeightMap的原因是表示方便,存储和修改容易,从数据的角度上,HeightMap一般是灰度图,灰度图的一个像素数据只需要0xFF一个字节就可以表示,如果变成三维坐标,基本数据值类型就会变得大,不利于数据处理,同样一些阻挡算法也可以通过Heigh

ESB产品架构之愚见

1       主要概念 SOA :英文全称是 Service-oriented architecture ,现在概念比较的不统一,主要由以下几种定义 W3C :可以调用的一系列组件,其接口描述可以发布和发现。 CBDI :一组策略,实践和框架,支持将应用程序功能作为一组服务在与能够调用,发布和发现的服务使用者相关的粒度发布; 这组服务是使用接口的单一标准形式从实现抽象出来的。 Gartner: 面向服务的体系结构是一种客房机/ 服务器软件设计方法,其中的应用程序由软件服务和软件服务的使用者(也称为客户机或服务请求方)组成。SOA 与更为通用的客户机/ 服务器模型不同,其定义强调软件组件间的松散偶合及对独立接口的使用。 IBM :面向服务的体系架构(Service Oriented Architecture,SOA )是

PowerShell 2.0之使用WMI管理Windows(三)获取软硬件信息

管理大型的异构网络非常繁琐,而在本地计算机上用不同的自动化接口,如PowerShell、COM对象,甚至基于.NET的程序管理单独的程序和服务则容易得多。关键是存在于混合网络中的分布式系统,即如何操作防火墙后面的设备。如果它只是一种硬件设备,如路由器,则使用WMI(Windows Management Instrumentation)即可。WMI是协同工作的一系列技术,可以提供网络对象的统一访问形式。并且用其查询服务信息,尤其是各种形式的数据、触发命令,以及改变配置选项 1 查询硬件设备 与Windows内核紧密结合允许于WMI操作多种设备,获取不同计算接和硬件配置的信息,例如,可以通过查询Win32_DiskDirver对象获取系统中当前安装的硬盘,如图1所示。 图1 获取当前系统中安装的硬盘 其中列出了所有驱动器,包括此时所使用的U盘。上面的清单中只包含物理硬盘,如果要获

找工作的那些事

前一段时间去找实习工作,皆以失败告终。发现班级的很多同学都实习了,有点说不出的感觉。 可说心里急吧,好像又不急。 谈谈那些失败的经历吧! 第一次应聘的是一家还挺不错的公司。当时是那家公司来学校招的。 那天下午的笔试考了三份卷子:语言基础知识,数据库,还有智力题。 有幸笔试过了。面试其实挺顺利的。除了面试官问我是否考虑换语言(问了两三次)。我不想换结果当然是没戏了。 第二次面试的是一家小公司。到现在我都有点后悔去那家公司面试了。印象深刻呀!那他和我一起去的还有一个 是其它学校的。那个号称技术总监的家伙问得他什么都回答不出来。后来他说了一句:语言方面的知识不行的话,数学 得会好。然后他就问了傅里叶级数等等级别问题。后来他得意的笑了。问到我的时候,开头的问题很简单我基本答上了。然后他 就问我如何控制让cpu利用率呈sin曲线,我当时很慌呀。看我答不上他说了句:那

文章资源汇集

架构   我眼中的Visual Studio 2010架构工具 基于消息与.NET Remoting的分布式架构   设计   领域驱动设计实践 解除具体依赖的技术 期待的接口 软件隐喻的本质与模式 虚方法的使用 依赖之殇   敏捷   解开最后期限的镣铐 印第安人的灵魂——敏捷回顾 在Scrum中实施敏捷建模   重构   避免复制与粘贴 改造面向过程式设计 利用多态重构为带参方法   备注:我将持续维持此文章资源列表。作者: 张逸 发表于 2010-12-29 11:50 原文链

[SharePoint 2010 的那些事儿 – Excel Service]如何修改Excel工作表的值

EWA JavaScript 对象模型最大的功能就是让我们可以在页面中与EWA WebPart进行良好的交互,所谓交互是一个双向的过程,上篇博客中介绍了如何从EWA中获取值,在本篇中将继续介绍如何修改EWA中所承载的工作簿中的某个单元格的值。 下面仍然通过一个简单的例子来对这个功能进行说明。 在修改单元格中的值前,首先要做的就是获得想要修改的单元格的位置。我们可以先为要修改的单元格定义一个自定义名称,这样在后面设置该单元格的值时也比较方便。然后还需要调用workbook对象中的getRangeA1Async()方法来获得想要修改的单元格。 getRangeA1Async()方法是一个异步调用的方法,它有三个参数,分别是 addressA1 要操作的区域名称 callback 获得该区域后的回调函数 userContext 用户上下文

利用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.

设计模式速查手册-创建型

Is & Is Not 这篇文章是…… 仅包含模式的名称、简要说明、结构类图和结构示例代码。 可用于快速浏览、回顾、查询及复习设计模式。 模式的意图和使用场合来自作者的个人实践总结。 虽然示例代码使用C#,但是尽量不会用到C#中特有的特性、接口及方法,而是起到一个通用框架说明的作用。 这篇文章不是…… 对设计模式面面俱到。 对设计模式详细而深入的探讨和研究。 从其它文献中照搬的东西。 保证绝对没有错误(虽然我尽我所能让其准确)。 讲述设计模式在C#中具体实现方法。 01 Abstract Factory(抽象工厂) 简要说明 抽象工厂模式拥有一组工厂类,这些工厂类实现同一个抽象工厂接口,这个接口定义了一系列创建方法,每一个方法创建一种产品,所有方法所创建的产品组成一个系列。不同的具体工厂类创建不同系列的系列产品,系列中每一种产

取得祖先元素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

SilverLight搭建WCF聊天室详细过程(十九)WCF服务端变量以及对象设计思路

        SilverLight搭建WCF聊天室详细过程 系列文章为大家演示了如何使用SilverLight搭建WCF即时通讯系统过程,多人视频正在开发中,我会持续更新这个系列,以后几篇我会对群里提出最多的问题进行解答并给出设计思路,WCF和IIS配置已经包含在此系列,希望各位朋友在提问前先找找前面的帖子,QQ群:.NET集中营45656086,位置已经不多,群里高手很多,而且比较有开源精神,我是营长,有问题大家可以在博客园留言或者进营!         很多朋友在群里提问想知道SilverLight调用服务和WCF服务回调客户端的过程,我先给出大家这个过程的流程图,后面将会以聊天室为代码源通过代码为大家慢慢道来。   &n

查找最近的共有祖先元素

司徒正美给出的题,也尝试着写一下。先来看概念,首先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' &&

浅谈缓存的设计与使用注意项(上)

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调用对应的缓存项时首先在

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

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

GameKnifeEngine第一个游戏<TANK 3D> Demo版完成!

毕设中期检查前一天 终于完成了! 自从上个星期一从公司离职,回家闭关写了整整一个星期... 中间平安夜圣诞节也就和女友象征性的过了一下。终于,在毕设中期检查的前一天完成了!   toonshading + 复杂后处理 + 1920*1080... pixelshader表示压力很大... 等检查完了开始优化...检查嘛,主要是用画面感觉震住老师们...   这一个星期的成果   其实11月中旬那次检查,GameKnifeEngine的底层就已经出来了。模仿OGRE的几个核心:[gkSceneManager] [gkResourceManagers] [gkRenderSequence] 已经联系在一起了。   由于时间紧迫gkRenderTarget只是个[虚拟]的假象, 模型渲染直接继承了Renderable和Movable做了一个最基本的物体。这次的一个半月,主要

浅谈https\ssl\数字证书

在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的一种安全的http协议,因此可以称为安全的超文本传输协议。http协议直接放置在TCP协议之上,而https提出在http和TCP中间加上一层加密层。从发送端看,这一层负责把http的内容加密后送到下层的TCP,从接收方看,这一层负责将TCP送来的数据解密还原成http的内容。 SSL(Secure Socket Layer):是Netscape公司设计的主要用于WEB的安全传输协议。从名字就可以看出它在https协议栈中负责实现上面提到的加密层。因此,一个https协议栈大致是这样的: 数字证书:一种文件的名称,好比一个机构或人的签名,能够证明这个机构或人的

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