摘要: 下面是我这两年来的一些项目管理的随笔,希望对你有用。客户比产品更重要(2008-04-12)敏捷的 "道" (2008-11-19)谈软件协作:君子和而不同,小人同而不和 (2008-12-31)正性思维 (2009-01-11)项目经理如何提高软件的质量 (2009-05-04)如何成为卓有成效的程序员 (2009-06-15)软件常常欲速则不达 (2009-07-25)卓有成效的管理者的五个习惯 (2009-09-09)敏捷团队的考核 (2009-10-14)计划:Say it,Do it, Show it (2009-12-25)程序员敏捷之路秘笈:降龙十八掌2011阅读全文
posted @ 2009-12-28 14:26 王德水 阅读(350) 评论(4) 编辑
摘要: 在ASP.NET MVC3实战系列(二):面向接口编程,提高系统可测试性。 中我们说之前的程序虽然可以单元测试。 第一就是我们暴露了HomeController的repository的属性。 第二我们在类内部new了一个对象,假如我们这次是从数据库中得到Lovers,下次想从文件或者Web Service里去数据时,我们必须修改Controller里的代码。 在这一节里我们引入一个依赖注...阅读全文
posted @ 2011-09-02 16:33 王德水 阅读(2698) 评论(7) 编辑
摘要: ASP.NET MVC 使用MVC的架构,其架构本身就使应用程序更易于测试,但这并不意味着可以随便写出易于测试的程序。我们都知道单元测试在系统开发有着很重要的作用。 我们来写这样的一个程序,系统获取某个坏男人的情人信息,然后发送给他老婆。 1. 建一个Lover的ASP.NET MVC3项目 我们需要1个实体类,存储男人,情人和老婆的信息。 然后我们需要一个LoverRepo...阅读全文
posted @ 2011-09-02 13:47 王德水 阅读(1930) 评论(5) 编辑
摘要: ASP.NET MVC已经推出时间不短了,已经有很多项目在使用这个优秀的WEB开发框架。因为我们项目每次加人的时候,对MVC都不是特别熟悉,有一些人认为这个非常简单,导致写出来的程序完全不是MVC的,所以我就想写个系列总结一下实战中的经验和一些学习的笔记。我们先不谈论MVC的好处,等我们写过一些程序和示例后,再回来谈。 首先,我们先用MVC写一个简单的ASP.NET MVC3的程序来简单的了解一...阅读全文
posted @ 2011-09-01 17:07 王德水 阅读(3181) 评论(14) 编辑
摘要: 今天做的MVC程序里,有两个WebSite,有两个不同命名空间的HomeController,网站启动时,/Home/Index, 提示有两个HomeController. 系统不知道使用哪一个 register this route by calling an overload of the 'MapRoute' method that takes a 'namespaces' paramet...阅读全文
posted @ 2011-08-11 17:44 王德水 阅读(614) 评论(3) 编辑
摘要: 最近,有个很好的朋友在路上和我聊天,说我看你们老说敏捷,你能给我说说什么是敏捷吗? 我说:敏捷是一种价值观。 友问:哦,是什么价值观? 我说:遵守敏捷宣言的价值观?你知道敏捷宣言吗? 友说:不知道。 我说:敏捷价值观是,个体和交互胜过过程和文档。。。 友问:为什么个体和交互胜过过程和文档,为什么。。。 我说: 因为如是这般。。。 还没说完,就到站了,朋友要走了,回来我就开始思考如何让人对敏捷有个快...阅读全文
posted @ 2011-04-11 22:56 王德水 阅读(1890) 评论(44) 编辑
摘要: MVVM主要是为了逻辑代码和视图的分离,使CodeBehind只包含对UI的操作。通过绑定和Command来实现 下面我们实现一个最简单的示例,点击按钮使年龄加1. XAML代码 <Window x:Class="DeepXAML.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:...阅读全文
posted @ 2011-03-01 12:33 王德水 阅读(593) 评论(3) 编辑
摘要: 之前有过Silverlight使用经验,最近学习了一下WPF,在学习的过程中以博客的方式记了笔记,本笔记尽量去掉已经明白的东西,所以就叫做无废话系列,希望对想开始学WPF的人有用。 无废话WPF系列1:XAML分析 无废话WPF系列2: InitializeComponent方法定义哪里 无废话WPF系列3: XAML中为对象属性赋值 无废话WPF系列4: x名称空间 无废话WPF系列5:控件派生...阅读全文
posted @ 2011-02-27 11:27 王德水 阅读(1601) 评论(5) 编辑
摘要: 控件模版ControlTemplate就是设置控件的外观,比如我们常见到的按钮是下面这样的,但是我们如何改变成圆形的呢? <Window x:Class="DeepXAML.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft....阅读全文
posted @ 2011-02-27 11:15 王德水 阅读(269) 评论(0) 编辑
摘要: WPF模版主要分为俩大类: ControlTemplate: 控件的外观,也就是控件是什么样子 DataTemplate: 是数据内容的表现,一条数据显示成什么样子 1. 数据模版常用的地方有以下几处: ContentControl的ContentTemplate属性。 ItemsControl的ItemTemplate属性。 GridViewColumn的CellTemplate属性。 2. 示...阅读全文
posted @ 2011-02-27 11:14 王德水 阅读(340) 评论(0) 编辑
摘要: 在WPF中资源通常用作“样式”(Style)、样式模板、数据模板等。 一、资源的定义及使用 1. 应用程序级资源: 定义在App.xaml文件中,作为整个应用程序共享的资源 <Application x:Class="DeepXAML.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="ht...阅读全文
posted @ 2011-02-27 11:13 王德水 阅读(355) 评论(0) 编辑
摘要: 样式很好理解,就像CSS里的一样,无需多加解释 1. 样式中的Setter 使用示例: <Window x:Class="DeepXAML.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xam...阅读全文
posted @ 2011-02-27 11:12 王德水 阅读(316) 评论(0) 编辑
摘要: 一、WPF为何需要命令 我们已经知道WPF里已经有了路由事件,可以发布及传播一些消息,那为什么还需要命令呢?这是因为事件指负责发送消息,对消息如何处理则不管,而命令是有约束力,每个接收者对命令执行统一的行为,比如菜单上的保存,工具栏上的保存都必须是执行同样的保存。 二、命令系统的基本元素 命令(Command):实现了ICommand接口的类,经常使用的有RoutedCommand类 命令源: 是...阅读全文
posted @ 2011-02-27 11:11 王德水 阅读(606) 评论(0) 编辑
摘要: 逻辑树 <Window> <Grid> <Button> <StackPanel> <Image/> <TextBlock/> </StackPanel> </Button> </Grid></Window>但是实际上这些元素在运行时会扩展为可是树事件路由 对逻辑树和可视树有所了解很有必要,因为路由事件主要是根据可视树进行路由。路由事件支持三种路由策略:气泡、隧道和直接。 气泡事件最为常见,它表示...阅读全文
posted @ 2011-02-27 11:10 王德水 阅读(354) 评论(0) 编辑
摘要: 一、依赖属性 依赖属性就是自己自己没有值,通过Binding从数据源获得值,就是依赖在别人身上,拥有依赖属性的对象称为依赖对象。 几种应用依赖属性的场景: 1. 希望可在样式中设置属性。 2. 希望属性支持数据绑定。 3. 希望可使用动态资源引用设置属性。 4. 希望从元素树中的父元素自动继承属性值。 5. 希望属性可进行动画处理。 6. 希望属性系统在属性系统、环境或用户执行的操作或者读取并使用...阅读全文
posted @ 2011-02-27 11:09 王德水 阅读(457) 评论(0) 编辑
摘要: 有时我们展现的数据,需要进行转换,比如如果一个学生的成绩过了60,我们显示一个Pass的图片。 XAML:  后台代码: 运行结果阅读全文
posted @ 2011-02-19 20:15 王德水 阅读(279) 评论(0) 编辑