木子屋 Dnawo's BLOG

2010-03 归档

共 30 篇

【春节特献】优秀程序员的45个习惯

优秀来自好的习惯。怎样成为优秀的开发人员?图灵公司最近热销的《高效程序员的45个习惯》一书给出了很好的解答,非常值得一读。 这本书的英文原版荣获了有软件奥斯卡之称的Jolt生产效率大奖,在Amazon上也是好评如潮。第一作者Venkat Subramaniam博士是Agile Developer公司创始人,敏捷开发方面的权威人士,精通各种开发技术。第二作者Andy Hunt更是大名鼎鼎的人物,是敏捷宣言的创始人,著名图书出版公司Pragmatic Programmers的创始人。他有两本书大家应该都是知道:经典的Ruby教程《Programming Ruby》还有许多开发人员的最爱《程序员修炼之道》。 译者团队则由著名的敏捷咨询公司ThoughtWorks咨询师钱安川和InfoQ中文站敏捷社区首席编辑、《程序员》杂志前副主编郑柯组成,可以信赖。…

DataBinder.Eval方法说明

在数据绑定控件中,我们经常会看到DataBinder.Eval的身影,例如: 它表示什么意思呢?我们先来看另一个例子: 它等效于: 很明显,在这边DataBinder.Eval就是取Request对象Url属性的值,同理,在数据绑定控件中,DataBinder.Eval就是取Container.DataItem对象ProductName属性的值,那Container是什么东西?稍做分析,会发现它表示一个RepeaterItem对象。ok,知道了这些,那我们将代码改成下边形式也是一样的: 最后说明下:DataBinder类处于System.Web.UI命名空间中,所以除Web应用程序外,在其他应用程序中一般无法直接使用它。

以编程方式设置Repeater控件模板示例

数据绑定控件Repeater有好几个模板,如HeaderTemplate、FooterTemplate和ItemTemplate等,它们都是ITemplate接口类型,因而,要以编程方式设置Repeater控件模板,只需给相应模板属性赋值一个ITemplate接口类型实例即可。下边是一个简单示例: 客户端调用:

XML declaration not at beginning of document

在VS2008下建了一个WAP母版页,代码如下: WAP_MasterPage.master: 放在Opera测试时老出错,提示:XML declaration not at beginning of document。 查看源代码,发现在xml声明前边多了一个空白行,所以Opera报错说xml声明不是在文档的最开始: 郁闷的是怎么弄那空白行都删除不了,再查看其他普通的ASPX页,发现第一行也都是空白行。后来突然想起以前有测试过在Page_Load事件中输出的文本是从顶行开始的,便想将xml声明放在Page_Load中输出,测试下了,果然可以,Opera也不报错了。 WAP_MasterPage.master:…

VS2008打开PetShop4提示:项目所需的应用程序未安装!

早前就有在机子上安装过PetShop4,并且用VS2008能正常打开,后来卸载了。今天重新安装了下,再用VS2008打开时,一大堆提示"项目所需的应用程序未安装": 打开后项目皆不可用: 尝试手工添加项目,在对话框中却看不见.csproj文件,但在winodws资源管理器中.csproj确是存在的。百度后发现是.csproj、.sln的打开程序不知什么时候被改成了"Micrisoft visual studio version selector": 好了,知道了原因,将这些文件的打开程序关联到VS2008即可,VS2008的EXE路径默认为:C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe。…

VS2008类关系图中让类实现接口

一直都是使用右键在类关系图中新建类、接口,再在类详细信息窗口中添加属性、方法,一直没找着怎么添加基类和接口,今天特意查了下MSDN,发现工具箱下边有个类设计器,很容易就解决了。 ①.在类设计器上单击继承: ②.在类关系图中用鼠标左键从类往接口拖一条线: ③.放开鼠标后,你会发现在类上已经加了一个棒棒糖,并且自动实现了接口成员:

江礼坤:网络创业不能随大流和炒冷饭

近几年,随着互联网技术的普及以及门槛的降低,越来越多的人开始选择通过网络创业来解决就业问题。应该说这是一个好现象,只有从事互联网行业的人多了,中国的互联网事业才能得到更大的发展。但创业的愿望是美好的,过程却是艰难的,往往结果更是残酷的。那如何有效的规避创业风险呢?这是一个值得沉思的问题。今天江礼坤就来和大家探讨一下很多朋友在网络创业时,容易犯的两个错误,希望对大家有帮助。 第一个问题:随大流。 互联网上每逢有新的模式出现,或者某个领域被传说有“钱景”时,就会有一堆一堆的人往上冲,盲目的上项目。对于创业者来说,足够的激情、足够的执行力和反应力固然重要,但是不能盲目跟风。即使市场再大,一旦参与的人人多了,那平均下来也分不到多少。而且再遇到一些有实力的大鳄占据个半壁江山的话,那剩下的人能分到的更是可怜。这里举几个例子吧:…

C#设计模式-原型模式

1.定义 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。 2.UML图 3.代码

PKG使用UTF-8编码导致makesis生成sis失败

有个PKG使用UTF-8编码,测试生成sis总是失败: F:\t>makesisv3 abc.pkg Processing abc.pkg... abc.pkg(11) : error: unknown line 第11行为一空行,删除后再测试: F:\t>makesisv3 abc.pkg Processing abc.pkg... abc.pkg(10) : error: syntax error. 之后怎么改都是这个错误,后又发现在WinXP系统上是正常的,而我机子系统为Win2003:(。最终解决方案是PKG改用Unicode编码,这样在两个系统上都能成功生成sis。 上边makesis版本为4, 0, 0, 1,在测试过程中尝试用高版本5.1.0.4,发现只能输出错误信息,成功信息无法输出。

UML 继承、实现、依赖、关联、聚合、组合的联系与区别

这是一堂关于UML基础知识的补习课,现在我们做项目时间都太紧了,基本上都没有做过真正的class级别的详细设计,更别提使用UML来实现规范建模了。本篇主要就以前自己一直感觉很迷糊的几种class之间的关系进行整理,让我们在真正用UML进行比如类图设计时能够更加清晰明了,以下就分别介绍这几种关系。 继承 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性; 实现 指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性;…