<?xml version="1.0" encoding="gb2312"?><rss version="2.0"><channel><title>张子阳 TraceFact</title><link>http://www.tracefact.net</link><description>TraceFact.Net 是张子阳的技术专栏, 这里发布了他写作, 编译, 翻译 的技术文章, 其中包括 Asp.Net, C#语言, XML, 数据库, Ajax, 设计构架, 设计模式 等几个方向。</description><copyright>Copyright (C) TraceFact.Net</copyright><generator>TraceFact.Net RSS Generator</generator><item><author>张子阳</author><category>设计模式</category><title>重温Observer模式--热水器·改</title><link>/Design-Pattern/Observer.aspx</link><description>在 &lt;a target='_blank' href="http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx"&gt;C#中的委托和事件&lt;/A&gt; 一文的后半部分，我向大家讲述了Observer(观察者)模式，并使用委托和事件实现了这个模式。实际上，不使用委托和事件，一样可以实现Observer模式。在本文中，我将使用GOF的经典方式，再次实现一遍Observer模式，同时将讲述在 &lt;a target='_blank' href="http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx"&gt;C#中的委托和事件&lt;/A&gt; 一文中没有提及的推模式(Push)和拉模式(Pull)。</description><pubDate>18 Jun 2008 23:26:52</pubDate></item><item><author>张子阳</author><category>设计与构架</category><title>MVP 模式实例解析</title><link>/Software-Design/MVP-Pattern-Explained.aspx</link><description>在我 &lt;a target='_blank' href="http://www.tracefact.net/Software-design/Model-View-Presenter-Pattern.aspx"&gt;模型－视图－提供器 模式&lt;/A&gt; 这篇译文中，作者为了说明 MVP 的优点之一，&lt;B&gt;易测性&lt;/B&gt;，引入了单元测试和NMock框架。可能有的朋友对这部分不够熟悉，也因为本人翻译水平有限，导致看后感觉不够明朗，所以我就补写了这篇文章，对作者给出的范例程序作了些许简化和整理，让我们一步步地来实现一个符合MVP模式的Web页面。</description><pubDate>15 Jun 2008 17:36:10</pubDate></item><item><author>Jean-Paul Boodhoo</author><category>设计与构架</category><title>模型－视图－提供器 模式</title><link>/Software-Design/Model-View-Presenter-Pattern.aspx</link><description>模型-视图-提供器模式(MVP)是模型-视图-控制器(MVC)模式的一个改进，通过使用这个模式，可以将通常写于页面后置代码(CodeBehind)中的逻辑，委托给一个更易于测试的单独的提供器类中。</description><pubDate>14 Jun 2008 12:47:55</pubDate></item><item><author>Jeremy Miller</author><category>设计与构架</category><title>开闭原则</title><link>/Software-Design/The-Open-Closed-Principle.aspx</link><description>在这篇文章中，Jeremy Miller向我们讲述了软件设计中的开闭原则，以及相关的 单一责任原则、责任链模式、双重分发 以及 Liskov 替换原则。</description><pubDate>30 May 2008 23:29:23</pubDate></item><item><author>张子阳</author><category>C# 编程</category><title>创建常量、原子性的值类型</title><link>/CSharp-Programming/Immutable-Atomic-Value-Types.aspx</link><description>本文是《Effective C#》一书第七节的读书笔记。通过这篇文章，我主要想向大家说明一个我们平时可能不太会注意到的问题：创建具有常量性和原子性的值类型。</description><pubDate>25 May 2008 13:23:26</pubDate></item><item><author>张子阳</author><category>CLR和Framework</category><title>类型自定义格式字符串</title><link>/CLR-and-Framework/Custom-Formatting-String.aspx</link><description>String可能是使用最多的类型，ToString()则应该是大家使用得最多的方法了。然而它不应该仅仅是用来输出类型的名称，如果使用得当，它可以方便地输出我们对类型自定义的格式。本文将循序渐进地讨论ToString()，以及相关的IFormattable、IFormatProvider以及ICustomFormatter接口。</description><pubDate>24 May 2008 21:53:04</pubDate></item><item><author>张子阳</author><category>设计与构架</category><title>SAF 中缓存服务的实现</title><link>/Software-Design/SAF-Cache-Service.aspx</link><description>本文是《Developing Application Frameworks in .NET》的读书笔记。SAF 是书中的一个范例框架，意为 Simple Application Framework(简单应用程序框架)，通过这篇文章，我主要想向大家说明 SAF 中缓存服务的实现方式。</description><pubDate>23 May 2008 14:02:19</pubDate></item><item><author>张子阳</author><category>Asp.Net 编程</category><title>Web站点风格切换的实现</title><link>/Asp-Net/An-implementation-of-website-style-switching.aspx</link><description>在Asp.Net中，我们可以通过模板页master page和主题theme来实现网站的风格切换，但是.Net提供的默认设置不够强大和灵活。本文将向大家介绍如何在.Net提供的方法上进行改进和扩展，以提供更加强大的网站风格切换功能。</description><pubDate>24 Apr 2008 23:58:01</pubDate></item><item><author>张子阳</author><category>CLR和Framework</category><title>.Net 自定义应用程序配置</title><link>/CLR-and-Framework/Custom-Application-Configuration.aspx</link><description>本文不是讲述.Net Framework中诸多的内置结点如何设置，比如httpHandler、httpModule、membership、roleManager 等。而是讲述.Net中配置的实现方式，以及如何定义、使用我们自定义的结点。</description><pubDate>21 Apr 2008 23:57:56</pubDate></item><item><author>张子阳</author><category>设计与构架</category><title>自反+递归 实现评论的无限引用</title><link>/Software-Design/Unlimited-comment-quote-using-recursion.aspx</link><description>大家每天都在看博客，发表评论，实现一个评论系统也是一名Web开发者的基本要求。虽然评论只是一个很普通的功能，但是实现评论的引用，尤其是无限引用，却有一定的困难。身为“网易工程队”的正规军，同时又作为一名程序开发人员，有必要向大家展示一下“盖楼”的方法。</description><pubDate>24 Mar 2008 22:51:13</pubDate></item><item><author>张子阳</author><category>CLR和Framework</category><title>.Net 中的反射(动态创建类型实例) - Part.4</title><link>/CLR-and-Framework/Reflection-Part4.aspx</link><description>本文中，我们先学习最常见的动态创建对象的两种方式，随后分别讨论了使用Type.InvokeMember()和MethodInfo.Invoke()方法来调用类型的实例方法和静态方法。最后，我们使用反射遍历了System.Drawing.Color结构，并输出了颜色值。</description><pubDate>18 Mar 2008 3:27:12</pubDate></item><item><author>张子阳</author><category>设计与构架</category><title>基于业务对象的排序</title><link>/Software-Design/Sorting-Based-on-business-Object.aspx</link><description>本文是《基于业务对象的筛选》的姐妹篇，在本文中，我详细讨论了IComparable&lt;T&gt;和IComparer&lt;T&gt;接口，并通过实现这两个接口，实现了列表的默认排序、单一属性排序、多属性组合排序。</description><pubDate>18 Mar 2008 3:05:27</pubDate></item><item><author>张子阳</author><category>设计与构架</category><title>基于业务对象的筛选</title><link>/Software-Design/Filtering-Based-on-Business-Object.aspx</link><description>在这篇文章中我先提出了一些开发人员的思维定势：将操作交给数据库去完成。演示了“传统方式的”使用拼装SQL语句完成筛选，以及如何配合缓存来实现基于业务对象(列表)的筛选。</description><pubDate>18 Mar 2008 2:30:59</pubDate></item><item><author>张子阳</author><category>Asp.Net 编程</category><title>Asp.Net 可定制分页用户控件</title><link>/Asp-Net/Extensible-Paging-User-Control.aspx</link><description>本文不是讲述如何进行数据库分页，而将注意力集中在如何实现可定制地 获取页码、获取路径、显示分页链接，并且通过构建一个用户控件来实现代码重用上。</description><pubDate>24 Feb 2008 22:42:53</pubDate></item><item><author>张子阳</author><category>CLR和Framework</category><title>.Net 中的反射(查看基本类型信息) - Part.2 </title><link>/CLR-and-Framework/Reflection-Part2.aspx</link><description>本文涉及了反射的最基础的内容，我们利用反射自顶向下地查看了程序集、模块、类型、类型成员的信息。</description><pubDate>17 Feb 2008 16:45:23</pubDate></item><item><author>张子阳</author><category>C# 编程</category><title>C# 类型基础</title><link>/CSharp-Programming/Type-Fundamentals.aspx</link><description>本文首先讨论了C#中的两种类型--值类型和引用类型，随后简要回顾了 装箱/拆箱 操作。接着，详细讨论了C#中的对象判等。最后，我们讨论了浅度复制 和深度复制，并比较了它们之间不同。</description><pubDate>31 Jan 2008 5:14:54</pubDate></item><item><author>张子阳</author><category>CLR和Framework</category><title>.Net 中的反射(反射特性) - Part.3</title><link>/CLR-and-Framework/Reflection-Part3.aspx</link><description>本文简单介绍了什么是特性、如何创建自定义特性，以及如何通过反射来查看自定义特性。</description><pubDate>27 Jan 2008 21:42:13</pubDate></item><item><author>张子阳</author><category>CLR和Framework</category><title>.Net 中的反射(序章) - Part.1</title><link>/CLR-and-Framework/Reflection-Part1.aspx</link><description>本文通过一个实现遍历枚举字段的范例，以及.Net中如何实现值类型的Equals()方法的例子，简单的引出了反射，说明了反射的一个初步用途 -- 查看类型元数据。</description><pubDate>27 Jan 2008 20:39:03</pubDate></item><item><author>张子阳</author><category>其他技术</category><title>Web 标准中的常见问题</title><link>/Misc/Common-Problems-Of-Web-Standard.aspx</link><description>在本文中，我结合自己的经验，对设计人员在使用 Web标准 进行网站制作 或 网站重构的时候所经常遇的一些问题和误区 进行了讨论。</description><pubDate>1 Jan 2008 16:17:32</pubDate></item><item><author>张子阳</author><category>设计与构架</category><title>对象关系映射(理论基础) - Part.1</title><link>/Software-Design/Object-Relational-Mapping-Part1.aspx</link><description>作为本系列的第一篇文章，我主要向大家介绍了对象关系映射的一些预备知识和基础概念。主要包括：一对一关系、面向对象基础、关系基础 并对 对象与关系之间存在的差异作了简要的讨论。</description><pubDate>1 Jan 2008 16:16:12</pubDate></item><item><author>Bipin Joshi</author><category>Asp.Net 编程</category><title>在Web站点中创建和使用Rss源</title><link>/Asp-Net/Creating-and-Consuming-Rss-Feeds-on-Your-Website.aspx</link><description>在这篇文章中，Bipin Joshi概要地为我们讲解了什么是Rss、如何在.Net下创建和消费Rss源。本人对使用pubDate标记需要注意的问题和添加浏览器支持的内容做了补充。</description><pubDate>1 Jan 2008 16:13:09</pubDate></item><item><author>张子阳</author><category>Asp.Net 编程</category><title>Asp.Net 三层式Web应用程序开发 - Part.1</title><link>/Asp-Net/Three-Layer-Web-Application-Using-Asp-Net-Part1.aspx</link><description>在这篇文章中主要向大家讲述了三层式开发的概念，范例应用程序介绍，数据访问层的实现方法 以及 需求分析。</description><pubDate>1 Jan 2008 16:11:00</pubDate></item><item><author>张子阳</author><category>其他技术</category><title>正则表达式 教程</title><link>/Misc/Regular-Expression-Tutorial.aspx</link><description>正则表达式应该算是开发人员应该掌握的一个轻量级的技能，然而，它稀奇古怪地匹配模式总让人们联想起外星语言。本文中，我期望能和大家一道，通过大量的例子，对正则表达式作一个复习和回顾。</description><pubDate>22 Dec 2007 16:53:21</pubDate></item><item><author>张子阳</author><category>设计模式</category><title>奇幻RPG(角色技能 与 Strategy模式)</title><link>/Design-Pattern/Strategy.aspx</link><description>本文简单介绍并实现了GOF的 Strategy 设计模式，我们以一款欧美风格的奇幻角色扮演游戏为背景，通过对角色技能(行为)的封装使用了这一模式。</description><pubDate>16 Dec 2007 8:22:53</pubDate></item><item><author>张子阳</author><category>数据库系统</category><title>数据库对象命名参考</title><link>/DataBase/DataBase-Objects-Naming-Guidelines.aspx</link><description>在这篇文章中，我首先提出了开发人员对数据库对象命名不够重视的问题，随后列出了一张数据对象命名的简表。接着我按照 表、字段、主键、外键、触发器、存储过程的顺序，详细讲述了数据库对象命名的规则。其间，我还穿插着讲述了在数据库开发中常见的一些问题，包括建表时需要注意的问题，以及在管理存储过程时可以采取的技巧。</description><pubDate>21 Dec 2007 8:31:27</pubDate></item><item><author>张子阳</author><category>设计模式</category><title>Command 模式 Step by Step</title><link>/Design-Pattern/Command.aspx</link><description>提起Command模式，我想没有什么比一个遥控器的例子更能说明问题了，本文将对Command模式作以简单介绍，我们通过完成这个范例来一步步实现GOF的Command模式。</description><pubDate>20 Dec 2007 8:10:49</pubDate></item><item><author>张子阳</author><category>C# 编程</category><title>C# 中的委托和事件</title><link>/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx</link><description>本文中，我通过两个范例由浅入深地讲述了 什么是委托、为什么要使用委托、事件的由来、委托和事件对Observer设计模式的意义、.Net Framework 中的委托和事件，对它们的中间代码也做了讨论。</description><pubDate>15 Dec 2007 17:31:26</pubDate></item><item><author>张子阳</author><category>设计模式</category><title>奇幻RPG(人物构造 与 Abstract Factory模式)</title><link>/Design-Pattern/Abstract-Factory.aspx</link><description>本文中，我们依然以奇幻RPG为背景，通过一个人物外形构建的范例，一步步学习了Abstract Factory抽象工厂模式的实现。</description><pubDate>16 Dec 2007 8:24:48</pubDate></item><item><author>张子阳</author><category>设计模式</category><title>奇幻RPG(物品锻造 与 Decorator模式) </title><link>/Design-Pattern/Decorator.aspx</link><description>本文中，我们通过一个常见的给武器(对象)添加宝石(获得额外的状态和行为)的例子，讨论了Decorator设计模式的实现过程。</description><pubDate>16 Dec 2007 8:26:36</pubDate></item><item><author>张子阳</author><category>Asp.Net 编程</category><title>Http Module 介绍</title><link>/Asp-Net/Introduction-to-Http-Module.aspx</link><description>本文简单地介绍了什么是Http Module 。我们首先了解了Http Module的作用，然后查看了Asp.Net 内置的Module，接着我们介绍了IHttpModule接口，并通过了一个简单的范例实现了此接口，最后我们介绍了 global.asax 文件与Http Module之间的联系。 
</description><pubDate>15 Dec 2007 17:50:20</pubDate></item><item><author>张子阳</author><category>Asp.Net 编程</category><title>Http Handler 介绍</title><link>/Asp-Net/Introduction-to-Http-Handler.aspx</link><description>在本文中，我通过三个实例：图片防盗链、图片验证码、处理自定义后缀名请求，详细介绍了IHttpHandler的实现方法和使用过程。对 IHttpHandlerFactory也作了概要介绍。 </description><pubDate>15 Dec 2007 17:48:23</pubDate></item><item><author>张子阳</author><category>Asp.Net 编程</category><title>Http 请求处理流程</title><link>/Asp-Net/Http-Request-Processing-Flow.aspx</link><description>本文是这一系列的第一篇文章，我在一个相对较低的层次上向大家介绍了 Http请求的处理过程：ISAPI的工作原理、Http宿主环境 和 Http管道。</description><pubDate>15 Dec 2007 17:39:25</pubDate></item><item><author>Jesse Liberty</author><category>C# 编程</category><title>C# 中的泛型</title><link>/CSharp-Programming/Generics-In-CSharp.aspx</link><description>在这篇文章中，Jesse Liberty 通过创建一个类型安全线性链表，简单、明白地向我们介绍了C# 中泛型的作用和使用方法。</description><pubDate>15 Dec 2007 17:20:14</pubDate></item><item><author>Jesse Liberty</author><category>C# 编程</category><title>C# 中的枚举器</title><link>/CSharp-Programming/Iterators-In-CSharp.aspx</link><description>Jesse Liberty 在这篇文章中为我们详细讲述了在 C#1.1 和 C#2.0 中如何实现可以用 foreach 语句进行枚举的类。</description><pubDate>15 Dec 2007 17:14:43</pubDate></item></channel></rss>