IT技术博客

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

【web开发】Javascript点点小技巧

1、特性检测而非浏览器检测 因为某某特性某浏览器不支持,我们经常的做法是在代码中直接先做浏览器判断如:   if(Broswer.isFirfox){ //do something }   其实这样做是不科学的,因为很可以其它浏览器上可以支持你要用的特性,所以,比较好的做法为是直接做特性判断。 如:   if(window.localStorage){ //使用本地存储功能 }     2、使用方括号来访问属性或方法 这一点到不是强制的,只不过如果使用方括号来访问可以享受一些动态特性带来的好处,而且命名方面有少了许多限制。 如:   for(var i=0;i<9;i++){ obj["method"+i](); }     3、表单的那些事 这里主要提两个很有用的属性

SharePoint安装后修改计算机名称的问题

安装了SharepointFoundation2010后,完成了配置并开发部署了webpart,由于之前计算机名称一直没有改过,特别长,就顺手修改了一下机器名称,这下问题来了,Sharepoint居然打不开了,一直提示数据库连接错误,很纳闷为什么修改一个机器名会影响到数据库的访问呢?到网上查了一下才找到解决办法,原来是修改机器名的方法不对。 如果想在安装了Sharepoint之后修改计算机名称,一下三步可以解决: (一)在SharePoint3.0管理中心中修改“替代访问映射”: 进入SharePoint管理中心 找到“备用访问映射”链接 修改URL (二):用stsadm命令中的renameserver选项: cmd进入命令行,进入目录:C:\Program Files(x64)\Comm

Linux设备模型 (1)

随着计算机的周边外设越来越丰富,设备管理已经成为现代操作系统的一项重要任务,这对于Linux来说也是同样的情况。每次Linux内核新版本的发布,都会伴随着一批设备驱动进入内核。在Linux内核里,驱动程序的代码量占有了相当大的比重。下图是我在网络上搜索到的一幅Linux内核代码量的统计图,对应的内核版本是2.6.29。 我们可以很明显的看到,在Linux内核中驱动程序的比例已经非常高了。 Linux 2.6内核最初为了应付电源管理的需要,提出了一个设备模型来管理所有的设备。在物理上,外设之间是有一种层次关系的,比如把一个U盘插到笔记本上,实际上这个U盘是接在一个USB Hub上,USB Hub又是接在USB 2.0 Host Controller (EHCI)上,最终EHCI又是一个挂在PCI Bus上的设备。这里的一个层次关系是:PCI->EHCI->USB Hub->

PowerShell 2.0 远程管理之启用和执行命令

PowerShell 2.0的远程管理功能很强大,为了方便读者学习这里首先介绍学习环境的设置,便于读者在理解原理的同时有相对形象的体验。在本文中,将会分别介绍了如何启用和禁用powershell的远程管理,以及如何在工作组和混合域环境下配置计算机。以及如何使用Invoke-Command cmdlet用于在远程主机上执行命令,创建持久线程,在多个命令间同一线程传递的变量和参数。用户还可以在执行较费时的命令时以后台任务的形式实现,并在执行完毕后使用命令回调执行结果。 1 启用和禁用远程管理 PowerShell 2.0中能通过在PowerShell提示符下执行下列的cmdlet启用远程管理 PS C:\> Enable-PSRemoting 该cmdlet会向用户询问几个问题如下图1所示 当执行该cmdlet时执行了以下操作,其中包括: 1. 启动或重新启动

30天敏捷结果(20):好的问题可以获得好的结果

“There are no right answers to wrong questions.”–Ursula K. Le Guin  错误的问题是得不到正确的结果的   你的结果: 学会如何问关键的问题来帮助你立即改善你的结果     在30天敏捷结果:开篇中说到接下来我们将进行敏捷结果练习,前一篇学习了19:你在为谁做事?,今天我们要进行Getting Result练习的第20天:好的问题可以获得好的结果(Day 20 — Ask Better Questions, Get Better Results)     问问题是一个需要自己不断发生的事情,你问的越好对你来说可以获得更多。通过改善你问自己的问题,你可以改善你生活中不同热点区域的生活质量。 为什么要问问题 问对问题可以帮助我们平衡、聚焦,做出

一个.net客户端通讯框架的设计(二)---准备FastBuffer和BOConverter

  在网络编程中,我们会频繁用到两个东西,一个是buffer。一个是bit-order。把数据填充到buffer中,然后通过buffer读写我们所需要的基本数据,还好.NET为我们提供了BitConverter这个非常好用的util,方便我们编写自己的Buffer和字节序转换器。 IBuffer 通常Buffer会有如下几个概念;position,limit,capacity,flip,mark,reset,free position:即将读/写的位置 limit:有效读/写的极限位置 capacity:buffer的最大长度 flip:limit设为置position,position设为0 mark:记录当前的position,对应reset操作 reset:将position设置为之前mark的位置 free:将缓冲标识为空闲,可在入池前调用。 比

对不能用using的成对操作,快速扩展IDisposable的方法

日常操作中有很多需要打开/关闭   加锁/解锁的成对操作 有时候一些操作原生支持  IDisposableMonitor 可以用Lock(){}   但是ReadWriteLock 就难了。 还有WCF Channel等)。这种情况就要用  try/catch/finally,很是丑 封装成IDisposable可能很烦,因为多一个对象要多好多文档。 虽然AOP可能解决一些问题, 但是又没办法精确定位  scrope.  还是 IDisposable +using最爽   所以写了一个缺省实现。 /// <summary> /// 销毁帮手,生成可以支持using的自定义IDisposable实例 /// </summary> public str

设计模式系列-适配器模式

一、上篇回顾         通过上篇的简单讲解,我们知道了,组合模式意图是通过整体与局部之间的关系,通过树形结构的形式进行组织复杂对象,屏蔽对象内部的细节,对 外展现统一的方式来操作对象,是我们处理更复杂对象的一个手段和方式。本文以查询控件为例,说明了,查询控件内部的组成元素,及如何操作内部的组 成元素,包括添加元素,删除和处理相应事件的Handler,当然组合模式的作用远比这些强大,后面我们肯定会在一些实例代码中运用到组合模式的。组合 模式如果在条件允许的情况下,我们尽量使用组合模式来处理复杂对象,远比通过继承出来的对象来的有效。         组合模式-强调的是如何组织整体和局部之间的结构,将整体和局部之间的关系,通过树形这样的结构来组织这种

WPF企业内训全程实录(下)

摘要   WPF企业内训全程实录由于文章比较长,所以一共拆分成了三篇,上篇WPF企业内训全程实录(上)主要讲了基础,中篇WPF企业内训全程实录(中)主要讲解开发模式、团队协作及应用框架,起着承上启下的作用,主要讲解开发模式、团队协作及应用框架。这篇作为该实录的下篇——终结篇,起着总结的作用,主要讲解其他技术的引用、WPF项目及性能优化、部署与更新等议题。   其实如果大家仔细看目录,可以发现我安排的顺序是首先讲解最基本的概念和基础内容、然后过渡到开发模式及框架、最后结合其他技术和项目实际运用,这也是学习并应用一门技术最好的流程。上篇实际上主要有两个侧重点:一则就是理清脉络——历史渊源、概念引入及基本阐述;二则是讲解WPFBasic——主要细究WPF的每个知识点,基本涵盖了WPF的方方面面;如果大家感兴趣,可以下载代码并

微软企业库(1):Enterprise Library 5.0介绍

Microsoft Enterprise Library 5.0 – 2010四月 patterns & practices Developer Center 【1】摘要 PP小组2010年4月发布了企业库5.0,这是MSDN企业库5.0主页英文版的翻译。译者:Frank Xu Lei 微软企业库是一系列应用程序块的集合,目标是帮助开发人员来处理常见的企业应用开发遇到的挑战。应用模块是作为指南,提供的代码开发人员可以在企业项目里用作扩展或修改使用。 【1.1】下载: Microsoft Enterprise Library 5.0 Microsoft Enterprise Library 5.0 Documentation 【1.2】发布指南: Release Notes 【1.3】类库: Enterprise Library 5.0 Class Library o

.Net 4.0 之 Dynamic 动态类型

        本文主要旨在与网友分享.Net4.0的Dynamic 对Duck Type 的支持。       一、.net4.0主要新特性         .Net4.0在.Net3.5基础上新增的主要特性有:可选参数、命名参数和Dynamic。具体请阅生鱼片的这篇博文。这里我们着重讲解C#4.0的Dynamic特性,对于其他特性大家可以在VS2010内尝试一下。总之.Net在不断进步中。        二、ExpandoObject普通应用          ExpandoObject 类,&

使用Repository模式支持产品的客户化

    本篇博客简单描述了Repository模式在OEA中的应用。 不使用Repository时的问题     OEA框架中使用了DDD的思想,面向领域对象进行开发。在DDD中,有很多重要的概念,例如:聚合实体对象、值对象、仓储、工厂、服务等。(不太了解的Repository和DDD的朋友,可以看Evans写的《Domain Driven Design》。)     在OEA中,实体的实现框架使用了CSLA分布式框架。原来为了简单并保持和CSLA开发模式的兼容,一直都把实体的获取模式直接以静态方法的方式直接写在实体的对应列表类中。例如下面这段代码:     随着应用的慢慢深入,出现了一些问题: 不易支持客户化。OEA是基于产品线的开发,如果采用前面的开发模式,

CRM2011实体介绍(二)

会计日历类实体Fiscal Calendar以及销售区域实体Territory: 这两个实体用于跟踪销售人员的销售信息。 销售人员就是系统中的系统用户SystemUser,而每个销售员都有其销售目标与任务,而Fiscal Calendar定义了每个销售员的销售配额。所谓的销售配额sales quota,就是在一定的财务阶段内,按照某个货币单位,必须完成的利润额度。Fiscal Calendar就是定义了会计年度,即用于计算组织内会计活动的时间跨度。每个财年将会分解为多个财务区间,例如被分解为半年、季度、月等等。会计日历实体包括有AnnualFiscalCalendar、 FixedMonthlyFiscalCalendar,、MonthlyFiscalCalendar、QuarterlyFiscalCalendar, 以及 SemiAnnualFiscalCalendar,分别对应了年、固

Silverlight MMORPG网页游戏开发课程[一期] 第十三课:战斗系统之技能/魔法攻击

引言 游戏因为华丽而精彩!这是所有游戏开发者发自肺腑的不懈追求!绚丽的技能/魔法效果将游戏的内涵渲染得淋漓尽致,本节我将继续拓展游戏中的战斗系统,以最简单直接的方式实现超酷的技能/魔法攻击效果。 13.1战斗系统之技能/魔法攻击(交叉参考:大法师 - 华丽经典之轮回 超酷万变的矢量魔法  雷、混、冰、毒、火、风 - 幻化中的魔法魅力!锦上添花之魔法特效装饰  落雷!治疗!陷阱!连锁闪电!多段群伤!魔法之终极五重奏①  落雷!治疗!陷阱!连锁闪电!多段群伤!魔法之终极五重奏② ) 传统即时类RPG游戏通常以右键作为技能/魔法的触发,战士类职业以技能为主,法师类职业以魔法为主,区别在于近身与远距离之分。这样我们大致可将其进行如下归类:近/远距离单体/群体技能攻击、近/远距离单体/群体魔法攻击;其中的单体又可分为速效型、持续型或按受益性质化分

数据库性能优化总结

  对于web应用开发,多数性能瓶颈均出现在数据库上,除了采用分布式架构或云处理(大公司基本上都是),更重要的是平时程序设计时要遵照一些规则,从根本上提高系统的性能,以下总结了一些常用的规则方法,仅供参考,欢迎跟帖补充。。。   1、 把数据、日志、索引放到不同的I/O设备上,增加读取速度。数据量(尺寸)越大,提高I/O越重要。 2、 纵向、横向分割表,减少表的尺寸,如:可以把大数据量的字段拆分表。 3、 根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。注意填充因子要适当(最好是使用默认值0)。索引应该尽量小,尽量使用字节数小的列建索引,不要对有限的几个值的列建单一索引。 4、 用OR的字句可以分解成多个查询,并且通过UNION链接多个查询。它们的速度只与是否使用索引有关,如果查询需要用到联合索引,用UNIO

Silverlight DataGrid使用WCF RIA Service实现Load-on-demand的数据加载

在Windows或者ASP.NET Web应用程序中,我们经常可以看到在Grid控件上通过Load-on-demand的方式来提高系统性能,提升用户体验。 所谓Load-on-demand就是在最初表格数据加载时只加载当前表格中用户可以看到的行数,当用户向下滚动或拖拽纵向滚动条时,再将需要显示的数据通过某种方式动态加载进来。 那么对于Silverlight,我们可以使用DataGrid通过WCF RIA Service来实现这个功能。 1.      WCF RIA Service 我们将会使用WCF Service来提供数据,并且将这个WCF Service host到ASP.Net应用程序中。 -         定义数据对象 [DataCont

WPF自定义ListBox(二)

Helloj2ee的自定义ListBox(一),虽然很用心,但看出来反响不强烈。只能这一篇再给力一点。虽然评论很少,但是也看出一些讯息。 讯息之一,就是Helloj2ee的WPF看不懂。的确在这里写的不是基本的东西,而是对其WPF的相关基础概念掌握了之后,才能看的一个系列。自定义控件在《葵花宝典——WPF自学手册》一书中,是放到第六卷——华山之巅,足见其高阶。因此Helloj2ee在后面列出的参考文献,就很有价值了。因为您若是看不懂,不妨去参考相关文献,即便您没有葵花宝典一书,但总可以知道需要掌握的相关概念是什么,参阅其他书又何妨? 讯息之二,是提供的源码无法打开,那么Helloj2ee已经更新过。如果解压还是失败,您不妨在下面的回帖中告诉我。 说到给力,那么只有让这个控件在本章当中酷起来或者炫起来,才是给力的王道。   Circu

需求驱动学习之Python(如何编写Python脚本替换文件中的多行字符?)

当一个人太执着于某一个东西的时候, 会错过很多美好的东西! Python值得学习的一个工具,不要局限在当前使用的语言中。 在大概3个月之前,Python对我来说一直是个迷。然而,就在3个月前我经理给我一个任务——删除(替换)所有项目源码文件中包含特定几行内容的所有注释。整个项目源码的大小有1G,在Linux服务器(中高档)上编译需要半个多小时,可见代码量之大,不可能手动去一个一个改。肯定得用脚本去处理,于是我想到了Python。在这之前没有接触过Python,花了2个星期一顿恶补之后,总算顺利交差了。 一直很想和大家分享一下碰到的问题及我如何解决的(可能我的方案并不好,但是他能够解决我的问题),但一直拖到现在是因为我感觉我还对Python的了解还不够。因为要在短时间内完成上面交下来的任务,在学习Python的时候,都是走马观花,对解决自己的问题不相关的直接跳过,看资

Oracle VM VirtualBox上安装windows server2008R2做SharePointServer2010开发(中)

非常遗憾,在我本子上没能装上,在windows更新上出现错误,没有找到原因,猜想是因为没有激活windows,等有时间再将本上的开发环境搞定。 由于公司开发需要,在公司的服务器上做了虚拟机器安装了Server2008R2,和SharepointFoundation2010及VS2010进行开发。 在安装完成Server2008R2后,需要配置一下应用程序配置才能继续安装SharepointFoundation2010,在安装时有几个需要注意的地方, 如果仅仅是在虚拟机上做开发,可以直接独立安装,如果有其他服务器的话,选择服务器场。 看到下面的图就说明安装基本完成了,接下来我们会做一个常用的webpart开发。 我们新建一个网站试试 配置站点 在你创建一个网站之后,如果想在根站点下再建立一个站点,那么创建界面就会是另外的样式 创建完毕后,在跟站点下

基于事件通信的轻量级MVP框架实现,附源码

    在.NET中,对于ASP.NET,有MVC;对于WPF、SILVERLIGHT,有MVVM。然而在桌面开发领域,似乎微软并没有推出什么强力的框架。但笔者在写程序的时候很不喜欢把代码全部混杂在一个类中。这个问题很容易解决,一种是使用现成的对平台没有依赖性的MVC框架,比如PureMVC,当然学习一个框架需要一些时间,另一种方法就是自己做一个小框架,恐怕称之为框架都有些太夸大了。     首先需要确定的是这个小框架要实现的功能。MVC虽然经典,但是View层的数据获取需要从Model直接获取,而View的操作行为则是需要通过Controller来更新Model。也就是说在View与Model通信过程中,Controller负责那些变更状态的事情。然而MVC中比较严重的问题是View需要引用Model,这就