﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-修己安人的技术博客（新地址：http://zhonghua.cnblogs.com）</title><link>http://www.cnblogs.com/kenne/</link><description>三纲：明德、新民、止于至善；
八目：格物、致知、诚意、正心、修身、齐家、治国、平天下。</description><language>zh-cn</language><lastBuildDate>Sat, 11 Oct 2008 11:33:57 GMT</lastBuildDate><pubDate>Sat, 11 Oct 2008 11:33:57 GMT</pubDate><ttl>60</ttl><item><title>听说是好书，所以我也放一下。</title><link>http://www.cnblogs.com/kenne/archive/2008/04/15/1154540.html</link><dc:creator>换个了新的博客：http://zhonghua.cnblogs.com</dc:creator><author>换个了新的博客：http://zhonghua.cnblogs.com</author><pubDate>Tue, 15 Apr 2008 08:02:00 GMT</pubDate><guid>http://www.cnblogs.com/kenne/archive/2008/04/15/1154540.html</guid><wfw:comment>http://www.cnblogs.com/kenne/comments/1154540.html</wfw:comment><comments>http://www.cnblogs.com/kenne/archive/2008/04/15/1154540.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/kenne/comments/commentRss/1154540.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/kenne/services/trackbacks/1154540.html</trackback:ping><description><![CDATA[不知道大陆放不方便网购<br />
<br />
<br />
<font face="Verdana"><font face="Verdana">http://www.microsoft.com/taiwan/msdn/books/windesign/win7.htm</font></font>
<img src ="http://www.cnblogs.com/kenne/aggbug/1154540.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42941/" target="_blank">[新闻]《星际争霸2》一分为三 各种族依次登场</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>ASP.NET 中母版页的传值(ViewState版)</title><link>http://www.cnblogs.com/kenne/archive/2008/03/26/1122278.html</link><dc:creator>换个了新的博客：http://zhonghua.cnblogs.com</dc:creator><author>换个了新的博客：http://zhonghua.cnblogs.com</author><pubDate>Tue, 25 Mar 2008 16:51:00 GMT</pubDate><guid>http://www.cnblogs.com/kenne/archive/2008/03/26/1122278.html</guid><wfw:comment>http://www.cnblogs.com/kenne/comments/1122278.html</wfw:comment><comments>http://www.cnblogs.com/kenne/archive/2008/03/26/1122278.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cnblogs.com/kenne/comments/commentRss/1122278.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/kenne/services/trackbacks/1122278.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 虽然母版页这个功能出来很久了，但是一直都没有机会去使用它。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;最近我计划把公司网站升级到.NET1.1&nbsp;升级到 .NET 3.5上去，除了隐式类型、扩展方法、<font face="Verdana">Lambda表达式</font>、LinQ等新特性外，母版页这个功能页是肯定会去玩玩的。于是今天用VS2008创建一个网站，尝试着进行一些最基本的任务，数据绑定，页面传值等。<br />
这只是第一天，由于工作的时候不断的有外来任务打扰，所以学习成果甚少，除了看了MSDN一些资料，也查了一下互联网上的资料，在CSDN中有一个帖子里说，母版页不能通过ViewState传值，其实这是错误的。母版页绝对可以通过ViewState来传值，并且方法非常简单。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下面为母版页的代码：<br />
</p>
<p><font face="Verdana">&lt;%@ Master Language="C#" AutoEventWireup="true" CodeFile="Main.master.cs" Inherits="Main" MasterPageFile="" %&gt;</font></p>
<p><font face="Verdana">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</font></p>
<p><font face="Verdana">&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;<br />
&lt;head runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;主母版页&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;asp:ContentPlaceHolder id="head" runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/asp:ContentPlaceHolder&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;form id="form1" runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div style="border-style: dashed; font-family: 宋体, Arial, Helvetica, sans-serif; font-size: xx-large; font-weight: 100; font-style: normal; font-variant: normal; text-transform: capitalize; color: #FF0000"&gt;主要的母版页！&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;br /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="center" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; style="font-family: 宋体, Arial, Helvetica, sans-serif; font-size: large; font-weight: 400; font-style: italic"&gt;Hi！欢迎您使用ASP.NET3.5！&lt;br /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:ContentPlaceHolder&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div align="center" style="border-style: ridge"&gt;版权所有，违者必究！ 浙江新能量科技有限公司2008&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font></p>
<p><br />
&nbsp;</p>
<p><font face="Verdana">using System;<br />
using System.Collections;<br />
using System.Configuration;<br />
using System.Data;<br />
using System.Linq;<br />
using System.Web;<br />
using System.Web.Security;<br />
using System.Web.UI;<br />
using System.Web.UI.WebControls;<br />
using System.Web.UI.WebControls.WebParts;<br />
using System.Web.UI.HtmlControls;<br />
using System.Xml.Linq;</font></p>
<p><font face="Verdana">public partial class Main : System.Web.UI.MasterPage,IMasterData<br />
{<br />
&nbsp;&nbsp;&nbsp; public int BtnCount<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return this.ViewState["BtnCount"] == null ? 0 : Convert.ToInt32(this.ViewState["BtnCount"]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.ViewState["BtnCount"] = value;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; protected void Page_Load(object sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp; {</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; protected void Button1_Click(object sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.BtnCount++;<br />
&nbsp;&nbsp;&nbsp; }<br />
}</font></p>
<p><br />
<br />
<br />
<br />
其中IMasterData<br />
接口的代码如下：<br />
<font face="Verdana">/// &lt;summary&gt;<br />
///母版页的数据<br />
/// &lt;/summary&gt;<br />
public interface IMasterData<br />
{<br />
&nbsp;&nbsp;&nbsp; int BtnCount { get; set; }<br />
}<br />
</font><br />
<br />
方法一：<br />
在内容页面中使用：<br />
<font face="Verdana">((Main)this.Page.Master).BtnCount;<br />
<br />
此方法不推荐，灵活程度很低，万一哪天BtnCount或者Main更改了，或者是在多个母版页之中选择，这行代码就很危险。<br />
</font><br />
方法二：<br />
在内容页面中使用：<br />
<font face="Verdana">((IMasterData)this.Page.Master).BtnCount;<br />
<br />
</font>推荐，定义一个接口，通过接口来调用要调用的成员，针对接口编程，好处不用我说了。<br />
<br />
方法三：<br />
在内容页面中使用：<br />
<font face="Verdana">this.Page.Master.GetType().GetProperty("BtnCount").GetValue(this.Page.Master, null)</font><br />
<br />
这是一种相对灵活的方法，在编译的时候无法判断错误的方法，特殊情况下可以考虑使用此方法。<br />
<br />
方法四：<br />
<font face="Verdana">override object SaveViewState()和<font face="Verdana">override void LoadViewState(object savedState)</font><br />
</font>虽然没试过，但是我想绝对可以，因为母版页和内容页是一个合并过程，先调用母版页在调用内容页，只要根据这个执行顺序去做，完全可以实现。希望哪位时间比较空余的人在此贴后面贴上实现代码，以供大家分享。<br />
<br />
<br />
</p>
<img src ="http://www.cnblogs.com/kenne/aggbug/1122278.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42940/" target="_blank">[新闻]IBM花300万美元打造互联网三维虚拟紫禁城</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>OCP 开闭原则</title><link>http://www.cnblogs.com/kenne/archive/2008/01/23/1050097.html</link><dc:creator>换个了新的博客：http://zhonghua.cnblogs.com</dc:creator><author>换个了新的博客：http://zhonghua.cnblogs.com</author><pubDate>Wed, 23 Jan 2008 06:46:00 GMT</pubDate><guid>http://www.cnblogs.com/kenne/archive/2008/01/23/1050097.html</guid><wfw:comment>http://www.cnblogs.com/kenne/comments/1050097.html</wfw:comment><comments>http://www.cnblogs.com/kenne/archive/2008/01/23/1050097.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/kenne/comments/commentRss/1050097.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/kenne/services/trackbacks/1050097.html</trackback:ping><description><![CDATA[<p align="left"><strong><font face="Verdana">OCP 开闭原则</font>：&#8220;软件实体（类、模块、方法等）应该是可以扩展的，但是不可修改。&#8221;</strong><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 开闭原则可以说是OOD中最基本的一个原则，在设计模式中处处可见，同时也是IoC的基础，OCP原则，是程序员向设计师发展的第一个必会OOD原则。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 假设我们开发了一个操作系统，在开发之前，我们不知道我们的操作系统会支持哪些厂商的打印机，因为打印机厂商不断的在倒闭与增加。为了很方便的支持各种打印机并不修改我们的操作系统源程序，我们必须要公布一个打印机驱动接口，并针对找个接口开发管理程序。于是，我们便有了以下设计：<br />
<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/kenne/UML_Class1.gif" border="0" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其中，我们IPrint接口是我们向外公布的接口，如果想要在我们的操作系统上使用他们的打印机，那就要实现找个接口。Printer类是一个打印者类，他的功能是获取打印驱动程序的名称、对象，以及获取相关的打印驱动。<br />
这个组件，针对各种打印机厂商，IPrint接口是开放的，可以实现，封装他们自己的特性；针对Printer类是关闭的，不允许修改。<font face="Verdana">如果有新打印机产品推出，只要实现IPrint接口，就能在我们的操作系统上运行。这样，就达到了我们<font face="Verdana">以不变应万变的目的。</font><br />
</font><br />
以下是Demo源程序。<br />
<a title="OCP Demo" href="/Files/kenne/OCP_Demo.rar">OCP Demo</a></p>
 <img src ="http://www.cnblogs.com/kenne/aggbug/1050097.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42938/" target="_blank">[新闻]11个处于悬崖边缘的 Web 公司</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>面向对象设计原则</title><link>http://www.cnblogs.com/kenne/archive/2008/01/18/1044134.html</link><dc:creator>换个了新的博客：http://zhonghua.cnblogs.com</dc:creator><author>换个了新的博客：http://zhonghua.cnblogs.com</author><pubDate>Fri, 18 Jan 2008 03:50:00 GMT</pubDate><guid>http://www.cnblogs.com/kenne/archive/2008/01/18/1044134.html</guid><wfw:comment>http://www.cnblogs.com/kenne/comments/1044134.html</wfw:comment><comments>http://www.cnblogs.com/kenne/archive/2008/01/18/1044134.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/kenne/comments/commentRss/1044134.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/kenne/services/trackbacks/1044134.html</trackback:ping><description><![CDATA[<h4 class="TextColor1" id="subjcns!CAAAD264B22BDC01!292" style="margin-bottom: 0px">
<hr />
</h4>
<div id="msgcns!CAAAD264B22BDC01!292">
<div><strong>SRP&nbsp; 单一职责原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;就一个类而言，应该仅有一个引起它变化的原因。</div>
<div>
<hr />
</div>
<div><strong><a href="http://www.cnblogs.com/kenne/articles/1050097.html" target="_blank"><strong>OCP&nbsp; 开闭原则</strong></a></strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;软件实体（类、模块、方法等）应该是可以扩展的，但是不可修改。</div>
<div>
<hr />
</div>
<div><strong>LSP&nbsp; Liskov替换原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;子类型必须能够替换掉他们的基类型。</div>
<div>
<hr />
</div>
<div><strong>DIP&nbsp; 依赖倒置原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;抽象不应该依赖于细节，细节应该依赖于抽象类。</div>
<div>
<hr />
</div>
<div><strong>ISP&nbsp; 接口隔离原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;不应该强迫客户与依赖他们不用的方法。接口属于客户，不属于它所在的类层次结构。</div>
<div>
<hr />
</div>
<div><strong>ERP&nbsp; 重用发布等价原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;重用的粒度就是发布的粒度。</div>
<div>
<hr />
</div>
<div><strong>CCP&nbsp; 共同封闭原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一个包中的所有类应该是共同重用的。如果重用了包中的一个类，那么就要重用保重的所有类。
<hr />
</div>
<div><strong>ADP&nbsp; 无环依赖原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在包中的依赖关系图中不允许存在环。</div>
<div>
<hr />
</div>
<div><strong>SDP&nbsp; 稳定依赖原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;朝稳定的方向进行依赖。</div>
<div>
<hr />
</div>
<div><strong>SAP&nbsp; 稳定抽象原则</strong></div>
<div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;包的抽象程度应该和其稳定程度一致。</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
  <img src ="http://www.cnblogs.com/kenne/aggbug/1044134.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42937/" target="_blank">[新闻]扎克博格：Facebook要先赚吆喝后赚钱</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>