﻿<?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>博客园-回来了</title><link>http://www.cnblogs.com/zhzkl/</link><description>.Net， 我回来了  
MSN: wangxiong#msn.com</description><language>zh-cn</language><lastBuildDate>Fri, 05 Sep 2008 22:57:38 GMT</lastBuildDate><pubDate>Fri, 05 Sep 2008 22:57:38 GMT</pubDate><ttl>60</ttl><item><title>我眼中的Scrum和MSF</title><link>http://www.cnblogs.com/zhzkl/archive/2008/08/20/1272167.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Wed, 20 Aug 2008 05:48:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/08/20/1272167.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1272167.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/08/20/1272167.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1272167.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1272167.html</trackback:ping><description><![CDATA[<p>使用Scrum也有几个星期了，和之前难忘的MSF流程比较，有些感触，一起分享. :)<img style="margin: 4px" height="240" src="http://www.infoq.com/resource/minibooks/scrum-xp-from-the-trenches/zh/cover/scrum-and-xp-cover.jpg" width="169" align="right">&nbsp; </p> <p><strong>概念:</strong></p> <p>什么是SCRUM?</p> <p>SCRUM是一种流程，有人说是方法论，而他自己则说自己是框架。是新兴的敏捷过程的一种。</p> <p>什么是MSF?</p> <p>MSF也是流程, 传统的软件开发过程，广泛运用于微软内部流程改进, 分为CMMI版本和Agile版本。</p> <p>&nbsp;</p> <p>他们都关注沟通，反思，需求，不同的是我觉得SCRUM更加人性化并且给出了具体的实施指南。MSF则更讲求框架，但是实际上可实施上并不够好，每一层都要求很严格，而SCRUM则将对质量的关注涉及到每一个方方面面，同时结合XP的开发方式，也很COOL哦。听说微软一些团队也开始使用SCRUM了。</p> <p>关于MSF的流程在安装TFS时就已经安装好了，他的人员组成，文档模板都已经设计好了，需要的是具体管理人员在不同情况下的不同反应而已。 </p> <p>而对于SCRUM虽然没有具体的模板，但是一些技巧和解决问题的方式确实很值得提倡的，每日15分钟例会，Sprint, Story, 产品经理，发布计划，评估等等。SCRUM可以应用于各种团队的管理而不仅仅是软件开发。</p> <p>从几个方面做一下比较好了</p> <table style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid; border-left: #dddddd 1px solid; border-bottom: #dddddd 1px solid" cellspacing="0" cellpadding="2" width="645" border="0"> <tbody> <tr> <td style="border-right: #dddddd 1px solid" valign="top" width="81">&nbsp;</td> <td style="border-right: #dddddd 1px solid" valign="top" width="71"><strong>需求</strong></td> <td style="border-right: #dddddd 1px solid" valign="top" width="35"><strong>文档</strong></td> <td style="border-right: #dddddd 1px solid" valign="top" width="72"><strong>编程方式</strong></td> <td style="border-right: #dddddd 1px solid" valign="top" width="84"><strong>会议</strong></td> <td style="border-right: #dddddd 1px solid" valign="top" width="61"><strong>测试</strong></td> <td style="border-right: #dddddd 1px solid" valign="top" width="43"><strong>实施</strong></td> <td style="border-right: #dddddd 1px solid" valign="top" width="85"><strong>团队</strong></td> <td style="border-right: #dddddd 1px solid" valign="top" width="108"><strong>演示</strong></td></tr> <tr> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="80">MSF(Agile)</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="71">确定签字后无法更改</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="38">强调文档</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="72">传统方式，可结合TDD</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="84">自行安排</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="60">始终伴随</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="45">有实施部署阶段</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="84">沟通与改进</td> <td style="border-top: #dddddd 1px solid" valign="top" width="106">交付时</td></tr> <tr> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="81">SCRUM</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="71">可以修改</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="40">弱化文档</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="72">TDD + XP</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="84">每天15分钟，方式不限, 2~4星期的Sprit</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="60">始终伴随</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="46">持续集成</td> <td style="border-right: #dddddd 1px solid; border-top: #dddddd 1px solid" valign="top" width="84">沟通与改进，提倡固定的Team</td> <td style="border-top: #dddddd 1px solid" valign="top" width="106">2~4星期就会沟通演示，同时反思，修改下一步计划</td></tr></tbody></table> <p>图1: 我眼中的异同</p> <p>当然了实际情况中，MSF也可以有持续集成，本身是一个不同的概念，我喜欢的是里面提供的实践指南，当然了有了实际指南，理论也不能丢，知之敏捷为何也很重要。感谢INFOQ和李剑的翻译。</p> <p>有几段觉得很好玩的话一起enjoy一下, :o)</p> <blockquote> <p><strong>奴役式做法</strong>：对他们说，“你们今天可以给大伙儿干干杂活。倒咖啡、做按摩、清理垃圾、做午饭，一切一切大家今天让你们做的事情。”你会惊讶的发现 Joe 和 Lisa 在霎那之间就找出了有用的技术任务 )</p></blockquote> <p>本文右边的插图即是一本大伙都推荐的SCRUM书籍,&nbsp; Go(中文版):</p> <p><a title="http://www.infoq.com/resource/minibooks/scrum-xp-from-the-trenches/zh/pdf/scrum-and-xp-chinese-version.pdf" href="http://www.infoq.com/resource/minibooks/scrum-xp-from-the-trenches/zh/pdf/scrum-and-xp-chinese-version.pdf">http://www.infoq.com/resource/minibooks/scrum-xp-from-the-trenches/zh/pdf/scrum-and-xp-chinese-version.pdf</a></p> <p>另外CodePlex 上也有了SCRUM for TFS的模板: Go: </p> <p><a href="http://www.codeplex.com/VSTSScrum">VSTS Scrum Process Template</a></p><img src ="http://www.cnblogs.com/zhzkl/aggbug/1272167.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42116/" target="_blank">[新闻]消息称MySQL创始人已向Sun提交辞呈</a>]]></description></item><item><title>Understanding Struct, 理解Struct</title><link>http://www.cnblogs.com/zhzkl/archive/2008/08/20/1271807.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Tue, 19 Aug 2008 16:02:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/08/20/1271807.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1271807.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/08/20/1271807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1271807.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1271807.html</trackback:ping><description><![CDATA[摘要: 在.Net 中各种基本类型都是由struct定义，他与引用类型相有一些不同，有自己的特色，这篇BLOG由ECMA335中关于Value Type的定义开始用Class定义的类型不一定都是引用类型，实际上，值类型就不是(例如：ValueType).用Class定义的ValueType包含了拆箱的值类型和关联的装箱类型. (ECMA335 Partition I, 8.9.7) 当调用ValueTyp&nbsp;&nbsp;<a href='http://www.cnblogs.com/zhzkl/archive/2008/08/20/1271807.html'>阅读全文</a><img src ="http://www.cnblogs.com/zhzkl/aggbug/1271807.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42116/" target="_blank">[新闻]消息称MySQL创始人已向Sun提交辞呈</a>]]></description></item><item><title>NaN(非数字), PositiveInfinity(无穷大), NegativeInfinity(无穷小)</title><link>http://www.cnblogs.com/zhzkl/archive/2008/08/09/1264224.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Sat, 09 Aug 2008 06:53:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/08/09/1264224.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1264224.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/08/09/1264224.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1264224.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1264224.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/zhzkl/archive/2008/08/09/1264224.html'>阅读全文</a><img src ="http://www.cnblogs.com/zhzkl/aggbug/1264224.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42115/" target="_blank">[新闻]谷歌Chrome浏览器即将更换LOGO颜色？</a>]]></description></item><item><title>Visual Studio 2008编译与运行DirectX 3D SDK Samples</title><link>http://www.cnblogs.com/zhzkl/archive/2008/07/30/1256601.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Wed, 30 Jul 2008 08:40:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/07/30/1256601.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1256601.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/07/30/1256601.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1256601.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1256601.html</trackback:ping><description><![CDATA[<p>下了Direct X 3D SDK运行玩了下, 碰到一些问题，有朋友问解决办法，Share一下. :)</p>
<p>运行环境</p>
<p>WIndows XP SP2 + Visual Studio 2008 VSTS + Microsoft DirectX SDK (June 2008)</p>
<p>大概会提示几个错误</p>
<p>1. 找不到 dxd3d9.h, dxd3d10.h</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_2.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_thumb.png" border="0" width="742" height="239" /></a> </p>
<p>加入两个目录</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_6.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_thumb_2.png" border="0" width="355" height="312" /></a> </p>
<p>2. 找不到dxerr.lib</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_4.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_thumb_1.png" border="0" width="644" height="443" /></a> </p>
<p>加入Lib</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_10.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_thumb_4.png" border="0" width="362" height="314" /></a> </p>
<p>3. 在运行时可能会出现找不到 D3dx9d_38.dll和D3dx10d_38.dll找不到的情况,</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_12.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_thumb_5.png" border="0" width="395" height="135" /></a> </p>
<p>从Microsoft DirectX SDK (June 2008)\Developer Runtime\x86下Copy到运行目录即可</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_14.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_thumb_6.png" border="0" width="563" height="364" /></a> </p>
<p>看看运行效果:</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_16.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/VisualStudio2008DirectX3DSDKSamples_EA27/image_thumb_7.png" border="0" width="644" height="514" /></a></p><img src ="http://www.cnblogs.com/zhzkl/aggbug/1256601.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42101/" target="_blank">[新闻]淘宝网合并阿里妈妈 专家称阿里巴巴或有新战略</a>]]></description></item><item><title>强制转型和类型转换</title><link>http://www.cnblogs.com/zhzkl/archive/2008/07/28/1254219.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Sun, 27 Jul 2008 16:27:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/07/28/1254219.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1254219.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/07/28/1254219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1254219.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1254219.html</trackback:ping><description><![CDATA[<p>参考: <a title="http://www.programmersheaven.com/user/pheaven/blog/41-Understanding-Casting-and-Coercion-in-C/" href="http://www.programmersheaven.com/user/pheaven/blog/41-Understanding-Casting-and-Coercion-in-C/">http://www.programmersheaven.com/user/pheaven/blog/41-Understanding-Casting-and-Coercion-in-C/</a></p>
<p>这篇文章中关于他们的区别讲的清楚了，我要做的是提炼下重点，另外从CLI上说说区别</p>
<div style="border: 1px solid gray; margin: 20px 0px 10px; padding: 4px; overflow: auto; font-size: 8pt; width: 97.5%; cursor: text; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4; max-height: 200px;">
<div style="border-style: none; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;">
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   1:</span> <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> A</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   2:</span>     {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   3:</span>         <span style="color: #0000ff;">int</span> X;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   4:</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">virtual</span> <span style="color: #0000ff;">void</span> F(){}</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   5:</span>     }</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   6:</span>     </pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   7:</span>     <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">class</span> B : A</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">   8:</span>     {</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">   9:</span>         <span style="color: #0000ff;">int</span> X;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">  10:</span>         <span style="color: #0000ff;">int</span> Y;</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: white;"><span style="color: #606060;">  11:</span>         <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">override</span> <span style="color: #0000ff;">void</span> F(){}</pre>
<pre style="border-style: none; margin: 0em; padding: 0px; overflow: visible; font-size: 8pt; width: 100%; color: black; line-height: 12pt; font-family: consolas,'Courier New',courier,monospace; background-color: #f4f4f4;"><span style="color: #606060;">  12:</span>     }</pre>
</div>
</div>
<p>编译通过</p>
<h6><strong style="font-size: 12pt;">关于继承</strong></h6>
<p>B继承了A的结构然而还是可以定义与A同名称的变量，原因在与方法表中定义不一样，请看变量在v-table中的定义</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/1e838b961966_8/image_2.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/1e838b961966_8/image_thumb.png" border="0" width="244" height="160" /></a> </p>
<p>对于方法表则不同</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/1e838b961966_8/image_4.png"><img style="border: 0px none ;" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/1e838b961966_8/image_thumb_1.png" border="0" width="244" height="163" /></a> </p>
<p>B中的方法表会在编译时在方法表对应覆写的方法 即给原来的地址加上对应的Offset(偏移地址)</p>
<p>两者为何不同呢？</p>
<p>原因在于：对于方法而言，会调用Object上的一个方法首先会查找是否存在该方法，如果不是没有任何修饰符而重名的话，则会有编译器错误。</p>
<p>这也是多态的基础</p>
<p>A a = new B(); // 类型转换</p>
<p>而</p>
<p>int i = (int)3.5; // 强制转换</p>
<h6><strong style="font-size: 12pt;">CLI上的区别</strong></h6>
<p>关于CLI上对于两者的描述为</p>
<blockquote>
<p><em>Unlike coercion, a cast never changes the actual type of an object nor does it change the representation. </em></p>
</blockquote>
<p>意为，与强制转换不同，类型转换从不改变对象的实际类型，也从不改变他所引用的对象</p>
<p>关于IL层次上面的描述:</p>
<p><a title="http://www.cnblogs.com/yuyijq/archive/2008/07/13/1241832.html" href="http://www.cnblogs.com/yuyijq/archive/2008/07/13/1241832.html">http://www.cnblogs.com/yuyijq/archive/2008/07/13/1241832.html</a></p><img src ="http://www.cnblogs.com/zhzkl/aggbug/1254219.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42096/" target="_blank">[新闻]微软研究院发布 AutoCollage - 整理并融合照片</a>]]></description></item><item><title>MVC模式</title><link>http://www.cnblogs.com/zhzkl/archive/2008/07/21/1247272.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Sun, 20 Jul 2008 17:13:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/07/21/1247272.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1247272.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/07/21/1247272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1247272.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1247272.html</trackback:ping><description><![CDATA[<p><strong>什么是MVC</strong></p>
<p>大家都知道 MVC =&gt; Model - View - Controller</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/MVC_2BA/mvc_2.gif"><img style="border-width: 0px;" alt="mvc" src="http://www.cnblogs.com/images/cnblogs_com/zhzkl/WindowsLiveWriter/MVC_2BA/mvc_thumb.gif" border="0" width="340" height="255" /></a> </p>
<p>交互关系: Controller &lt;- Model -&gt; View | Controller &lt;-&gt; View</p>
<p><strong>使用MVC有什么好处</strong></p>
<p>MVC可以彻底的隔离View和Controller之间的关系, 在页面上通过标签或者模板引擎的方式与Controller交互，方便了设计者和开发者之间的协作</p>
<p><strong>MVC如何运作</strong></p>
<p>说到MVC，有两个模式不得不讲</p>
<p><strong>Front Controller</strong></p>
<p><strong></strong>&nbsp;<img src="http://i.msdn.microsoft.com/ms978723.Des_FrontController_Fig01%28en-us,MSDN.10%29.gif"  alt="" /></p>
<p>意思是用户的请求转移到Handler，而后根据Client的请求信息创建特定的Command,而后执行</p>
<p><img src="http://i.msdn.microsoft.com/ms978723.Des_FrontController_Fig02%28en-us,MSDN.10%29.gif"  alt="" /></p>
<p>Command根据得到的结果，通过反射或者其他的形式绑定到页面上，这样就完成了数据的显示，当用户进行操作，也会产生对应的命令。最终反映到View上面。</p>
<p>对于.Net实现这样的方式需要在web.Config里&lt;Handlers&gt;配置节中加上对于用于请求的转向 </p>
<p>然而对于URL的转向部分，我们可以事先在map.Config设置好转向的地址，而后再在Asp.Net本身进行Server.Transfer，这样实际地址和处理的地址就可以对应起来. 在Asp.Net MVC 中有了对应的Routing实现，根据他定义的规则，为我们省略了这一步，然而知道这个模式的存在对于我们理解原理还是很有帮助的.</p>
<p>关于FrontController在MSDN中有对应的实现: <a title="http://msdn.microsoft.com/en-us/library/ms998532.aspx" href="http://msdn.microsoft.com/en-us/library/ms998532.aspx">http://msdn.microsoft.com/en-us/library/ms998532.aspx</a></p>
<p><strong>Observer</strong></p>
<p>Observer中文名叫做观察者模式，所谓观察者意思是，有程序监控你的程序. 如何使用呢</p>
<p>看看类图: </p>
<p><img src="http://www.dofactory.com/Patterns/Diagrams/observer.gif"  alt="" /></p>
<p>Observer是组合 + 继承实现，在MVC中则用于Model和Controller之间进行消息传递</p>
<p>在.Net中有对应的实现: System.Delegate </p>
<p><strong>补充:</strong></p>
<p>在<a href="http://puremvc.org/" target="_blank">PureMVC</a>中，在View和Controller之间加入了Mediator模式(需求和实现可以同时变化)，并在Model和Controller之间加入了Proxy模式(相当于一层防火墙的作用，访问Model层之间必须得经过Proxy)，这样, 各个层之间的变化更加灵活。</p>
<p><strong>参考: </strong></p>
<p>MSDN MVC In Handler: <a title="http://msdn.microsoft.com/en-us/library/ms978723.aspx" href="http://msdn.microsoft.com/en-us/library/ms978723.aspx">http://msdn.microsoft.com/en-us/library/ms978723.aspx</a></p>
<p>PureMVC: <a title="http://puremvc.org/component/option,com_wrapper/Itemid,34/" href="http://puremvc.org/component/option,com_wrapper/Itemid,34/">http://puremvc.org/component/option,com_wrapper/Itemid,34/</a></p><img src ="http://www.cnblogs.com/zhzkl/aggbug/1247272.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42100/" target="_blank">[新闻]2008年9月5日科技博客精选</a>]]></description></item><item><title>Maze</title><link>http://www.cnblogs.com/zhzkl/archive/2008/07/18/1245584.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Thu, 17 Jul 2008 18:15:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/07/18/1245584.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1245584.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/07/18/1245584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1245584.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1245584.html</trackback:ping><description><![CDATA[<p>应用A*做了一下迷宫游戏，简陋的很 :),当一个原型吧，MS听说Poply 做这种东西不错，改天弄来玩玩。</p> <p>操作指南</p> <p>您可以使用键盘的 上,下,左,右 键来控制走动，按下 回车则是指出到终点的路线，游戏如下.</p> <p>&nbsp;</p> <iframe src="http://silverlight.services.live.com/invoke/68431/Maze/iframe.html" scrolling="no" frameborder="0" style="width:500px; height:500px"></iframe><img src ="http://www.cnblogs.com/zhzkl/aggbug/1245584.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42099/" target="_blank">[新闻]SNS网站风靡影响工作效率 公司下令封杀</a>]]></description></item><item><title>泛型堆排序</title><link>http://www.cnblogs.com/zhzkl/archive/2008/07/16/1244718.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Wed, 16 Jul 2008 14:40:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/07/16/1244718.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1244718.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/07/16/1244718.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1244718.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1244718.html</trackback:ping><description><![CDATA[摘要: 介绍堆排序是排序算法一种，适用于最小和最大的元素取值，以下情况适合堆排序1. 优先级队列，总要得到最优先的元素堆排序的过程, 例子队列插入顺序 List.Add(10) ... ,6,3,5,7,2A. 建立二叉堆 [10] -&gt; [10][6] CheckParent(1) // 1 代表当前位置 function CheckParent(pos): if(pos &lt; 1) retu&nbsp;&nbsp;<a href='http://www.cnblogs.com/zhzkl/archive/2008/07/16/1244718.html'>阅读全文</a><img src ="http://www.cnblogs.com/zhzkl/aggbug/1244718.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42098/" target="_blank">[新闻]《孢子》正式发布</a>]]></description></item><item><title>A*算法介绍及C#实现</title><link>http://www.cnblogs.com/zhzkl/archive/2008/07/15/1243034.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Mon, 14 Jul 2008 17:02:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/07/15/1243034.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1243034.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/07/15/1243034.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1243034.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1243034.html</trackback:ping><description><![CDATA[摘要: 参考：http://en.wikipedia.org/wiki/A*_search_algorithm[翻译]A*寻路初探 GameDev.netA* Pathfinding for Beginners介绍:AStar算法是最短路径搜索的一种，类属于启发式搜索. :), 照搬。。。。这东西还是有点麻烦的，请耐点心，有几个核心步骤需要解释清楚公式:F = G + HG: 从现在访问这点到开始点的消耗&nbsp;&nbsp;<a href='http://www.cnblogs.com/zhzkl/archive/2008/07/15/1243034.html'>阅读全文</a><img src ="http://www.cnblogs.com/zhzkl/aggbug/1243034.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42097/" target="_blank">[新闻]微软CFO:仍对收购雅虎搜索业务感兴趣</a>]]></description></item><item><title>LinkGuys On Silverlight</title><link>http://www.cnblogs.com/zhzkl/archive/2008/07/14/1242570.html</link><dc:creator>xwang</dc:creator><author>xwang</author><pubDate>Mon, 14 Jul 2008 07:36:00 GMT</pubDate><guid>http://www.cnblogs.com/zhzkl/archive/2008/07/14/1242570.html</guid><wfw:comment>http://www.cnblogs.com/zhzkl/comments/1242570.html</wfw:comment><comments>http://www.cnblogs.com/zhzkl/archive/2008/07/14/1242570.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/zhzkl/comments/commentRss/1242570.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/zhzkl/services/trackbacks/1242570.html</trackback:ping><description><![CDATA[<p>这两天辞职在家无聊，看看《编程之美》，写了个小游戏，自娱自乐 :)</p>
<iframe style="width: 600px; height: 600px" src="http://silverlight.services.live.com/invoke/68431/LinkGuys/iframe.html" frameborder="0" scrolling="no"></iframe>

<img src ="http://www.cnblogs.com/zhzkl/aggbug/1242570.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42095/" target="_blank">[新闻]SQL Server2008十月亮相 标榜智能数据平台</a>]]></description></item></channel></rss>