<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_ocean</title><subtitle type="text">嘿嘿，我的地盘由我来</subtitle><id>http://feed.cnblogs.com/blog/u/6830/rss</id><updated>2011-03-31T15:37:20Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/6830/rss"/><entry><id>http://www.cnblogs.com/ocean/archive/2011/03/31/2001644.html</id><title type="text">一边是招人难，一边是找工作难，这个世界真的很有意思</title><summary type="text">最近有不少公司在狂招人，我也接到了猎头及一些HR公司的电话，希望我能推荐一些人给他们，貌似我都快成专业猎头了。机会满天飞，但实际上发现并无很多合适人员可以推荐。最近发现公司每个职位基本都要耗时几个月之久才能招到合适的人。同时也有很多人找工作，而且发现工作异常难找。这个世界真的很有趣。</summary><published>2011-03-31T15:37:00Z</published><updated>2011-03-31T15:37:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2011/03/31/2001644.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2011/03/31/2001644.html"/><content type="html">&lt;p&gt;最近有不少公司在狂招人，我也接到了猎头及一些HR公司的电话，希望我能推荐一些人给他们，貌似我都快成专业猎头了。机会满天飞，但实际上发现并无很多合适人员可以推荐。最近发现公司每个职位基本都要耗时几个月之久才能招到合适的人。同时也有很多人找工作，而且发现工作异常难找。这个世界真的很有趣。&lt;/p&gt;&#xD;
&lt;p&gt;我部门现在需要招一个系统工程师，有兴趣的可以投简历：&lt;a href="&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#58;&amp;#111;&amp;#99;&amp;#101;&amp;#97;&amp;#110;&amp;#106;&amp;#117;&amp;#64;&amp;#103;&amp;#109;&amp;#97;&amp;#105;&amp;#108;&amp;#46;&amp;#99;&amp;#111;&amp;#109;"&gt;oceanju@gmail.com&lt;/a&gt; 。同时SharePoint的开发人员想换工作的也可以联系我，我帮忙推荐。&lt;/p&gt;&#xD;
&lt;p&gt;今天下班后和一个朋友谈起找工作的问题，我们的对答很有意思，我想第一应该有勇气找工作，第二应该有信心去尝试，第三多找大公司。&lt;/p&gt;&#xD;
&lt;p&gt;发送方&amp;nbsp; 接收方&lt;br /&gt;17:38:48&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 你说要是去个小公司好不好啊 &lt;br /&gt;17:38:53&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 我又不认识深圳的 &lt;br /&gt;17:38:56&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 不好 &lt;br /&gt;17:39:01&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 千万别去小公司 &lt;br /&gt;17:39:10&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 为啥 &lt;br /&gt;17:39:17&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 福利很差 &lt;br /&gt;17:39:18&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 是吧 &lt;br /&gt;17:39:46&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 不管公司人多少，公司名气一定要大 &lt;br /&gt;17:39:53&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; MS、Google、IBM &lt;br /&gt;17:39:57&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 额。。。 &lt;br /&gt;17:40:00&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 不是跨国巨头坚决不去 &lt;br /&gt;17:40:05&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 为啥 &lt;br /&gt;17:40:19&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 这样身价才能越来越高啊 &lt;br /&gt;17:40:30&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 为啥 &lt;br /&gt;17:40:36&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 小公司给的钱不多 是么？ &lt;br /&gt;17:40:44&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 小公司福利不好，朝不保夕，给的钱当然也不会多 &lt;br /&gt;17:41:01&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 是么 &lt;br /&gt;17:41:05&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你看看人均工资就知道了 &lt;br /&gt;17:41:11&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 那要是钱给的多呢？ &lt;br /&gt;17:41:14&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 上海人均工资刚4000 &lt;br /&gt;17:41:16&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 给个20几万？ &lt;br /&gt;17:41:19&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 年薪 &lt;br /&gt;17:41:34&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 要是我我肯定不干 &lt;br /&gt;17:41:55&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 为啥？ &lt;br /&gt;17:41:56&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你准备跳啊？ &lt;br /&gt;17:42:00&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 我没有啊 &lt;br /&gt;17:42:02&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 我就问问 &lt;br /&gt;17:42:11&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 可以做manager啊 如果 &lt;br /&gt;17:42:31&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 没名气，没啥意思，去了说不定过不了一年就干掉你了 &lt;br /&gt;17:42:46&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 那也不怕啊 &lt;br /&gt;17:42:49&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 除非对这个公司很了解，你自己觉得比较有发展前途 &lt;br /&gt;17:42:52&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 可以找manager的职位了啊 &lt;br /&gt;17:43:21&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 现在manager满天飞，一个名不见经传的小公司的mananger谁理啊 &lt;br /&gt;17:43:33&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 。。。 &lt;br /&gt;17:43:37&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 好吧 &lt;br /&gt;17:43:45&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 美国小公司呢？ &lt;br /&gt;17:44:04&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 想当年XX还是XX一个部门经理，管着几十人呢，来我们XXX不也就是XX，小兵一个 &lt;br /&gt;17:44:27&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; XX是谁？ &lt;br /&gt;17:44:40&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; XX同学，我们以前的同事&lt;br /&gt;17:44:53&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 哦 &lt;br /&gt;17:44:54&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 好吧 &lt;br /&gt;17:45:19&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你和自己薪水比较一下就好了 &lt;br /&gt;17:45:39&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 要是自己现在的薪水直接double了，那就不用考虑公司大小了 &lt;br /&gt;17:45:56&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 要是只有50%涨幅，那就仔细考虑考虑 &lt;br /&gt;17:46:04&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 要是只有30%，那就没必要理了 &lt;br /&gt;17:46:07&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 哦 &lt;br /&gt;17:46:11&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 可是你怎么算呢 &lt;br /&gt;17:46:12&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 不好算 &lt;br /&gt;17:46:20&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 算base还是算total &lt;br /&gt;17:46:21&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; total package &lt;br /&gt;17:46:26&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 小公司一般没啥福利 &lt;br /&gt;17:46:34&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 是啊 &lt;br /&gt;17:46:49&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 而且奖金是否靠谱？老板说话是否算数，都难讲 &lt;br /&gt;17:47:50&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 我想做开发的呀 &lt;br /&gt;17:48:04&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 这里不适合做开发呀 &lt;br /&gt;17:48:04&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 再说你想想可能每天无休止加班 &lt;br /&gt;17:48:09&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 综合考虑 &lt;br /&gt;17:48:25&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 没有好与不好，有得必有舍 &lt;br /&gt;17:49:06&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 那倒不会 &lt;br /&gt;17:49:07&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 看看total差多少 &lt;br /&gt;17:49:28&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; total估计涨不了多少 &lt;br /&gt;17:49:56&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 看看午餐补助、通讯费补助、交通补助、summer trip、股票 &lt;br /&gt;17:50:20&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你想办法去XXXX吧 &lt;br /&gt;17:50:31&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 额。。。 &lt;br /&gt;17:50:39&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 真的 &lt;br /&gt;17:50:57&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 好吧 &lt;br /&gt;17:51:31&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 要不去XX研发中心 &lt;br /&gt;17:51:38&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 我感觉XX研发中心蛮好 &lt;br /&gt;17:51:46&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 不要我啊 &lt;br /&gt;17:51:50&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 你为啥不去？ &lt;br /&gt;17:51:53&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 你推荐？ &lt;br /&gt;17:51:55&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 为啥不要你？ &lt;br /&gt;17:52:15&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 不知道为啥啊 &lt;br /&gt;17:52:21&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你去试过了？ &lt;br /&gt;17:52:47&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 我看XX研发中心环境挺好，人员众多，而且肯定也缺人 &lt;br /&gt;17:52:56&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 他们核心算法也是用C++ &lt;br /&gt;17:53:07&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 很多前端也是用.NET &lt;br /&gt;17:53:14&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 是么 &lt;br /&gt;17:53:21&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你去试试吧 &lt;br /&gt;17:53:23&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 那你帮我找个人推荐推荐 &lt;br /&gt;17:53:39&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你先自己试试呗 &lt;br /&gt;17:53:45&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 我看看能不能找到人 &lt;br /&gt;17:54:18&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 他们下面我一个人都不认识，我只认识他们几个董事，直接推到他们那里不太靠谱 &lt;br /&gt;17:54:35&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 而且XX的名头也好啊 &lt;br /&gt;17:54:51&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 要是我们现在公司没有XX的名字在里面，我才不来呢 &lt;br /&gt;17:54:57&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 应该挺靠谱的 &lt;br /&gt;17:54:59&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 哈哈 &lt;br /&gt;17:55:09&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 我可以在上海直接支持你 &lt;br /&gt;17:55:10&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 哈哈 &lt;br /&gt;17:55:21&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 没labor没survey &lt;br /&gt;17:55:22&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 多开心 &lt;br /&gt;17:56:10&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; XX研发中心是XX直属，独资的 &lt;br /&gt;17:56:15&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 比我们公司好多了 &lt;br /&gt;17:56:21&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 很赞啊 &lt;br /&gt;18:00:00&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 有乐意做系统工程师的人也帮我推荐一下啊 &lt;br /&gt;18:00:12&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 地区没关系，待遇好完全可以搬家吗 &lt;br /&gt;18:05:12&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 好的 &lt;br /&gt;18:08:34&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你干脆把家搬到深圳来好了 &lt;br /&gt;18:09:16&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 这，，， &lt;br /&gt;18:09:18&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 可以去你们公司 &lt;br /&gt;18:09:19&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; ？ &lt;br /&gt;18:09:23&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 不是不招开发么 &lt;br /&gt;18:09:40&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 现在来不了我们公司 &lt;br /&gt;18:09:47&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 我们公司还接纳不了 &lt;br /&gt;18:10:34&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 。。。。 &lt;br /&gt;18:12:20&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 对了，你要做开发，干吗不直接去上海XXX？ &lt;br /&gt;18:12:37&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; XXX那边不是有XX很大的研发团队吗？ &lt;br /&gt;18:12:43&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 去那里多好 &lt;br /&gt;18:14:14&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 我觉得不要我吧 &lt;br /&gt;18:14:19&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 怎么会呢 &lt;br /&gt;18:14:19&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 没试过 &lt;br /&gt;18:14:22&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 去试试呗 &lt;br /&gt;18:14:29&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 何况研发一直 扩招 &lt;br /&gt;18:14:37&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 这个团队不要还有那个团队 &lt;br /&gt;18:14:44&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 在内部transfer也容易啊 &lt;br /&gt;18:15:02&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 我觉得比在XX研发还要好 &lt;br /&gt;18:15:20&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 内部transfer不涨薪水的。。。 &lt;br /&gt;18:15:33&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 可以谈吧 &lt;br /&gt;18:15:44&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 我觉得还是看老板吧 &lt;br /&gt;18:18:47&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 我觉得上海选择很多啊 &lt;br /&gt;18:18:54&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 真是比我以前呆的广州选择多多了 &lt;br /&gt;18:19:09&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 广州啥好公司都没有的 &lt;br /&gt;18:19:37&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 好吧 &lt;br /&gt;18:19:40&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 唉。。。 &lt;br /&gt;18:19:44&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 我觉得我技术也不差啊 &lt;br /&gt;18:19:55&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 在我们这里技术啥也不是 &lt;br /&gt;18:20:18&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 不差不差 &lt;br /&gt;18:20:25&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 别人不懂的你都懂 &lt;br /&gt;18:20:28&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 唉 &lt;br /&gt;18:20:41&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 主要是感觉这里积累不了什么 &lt;br /&gt;18:20:55&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 去吧，去研发 &lt;br /&gt;18:21:07&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 上海都是大公司，想想都流口水 &lt;br /&gt;18:21:16&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 。。。 &lt;br /&gt;18:21:29&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 我觉得不要我吧 &lt;br /&gt;18:21:37&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 你别这么没自信啊 &lt;br /&gt;18:21:53&amp;nbsp; ocean&amp;nbsp; 朋友&amp;nbsp; 去试试就知道了，不试怎么知道别人不要你呢 &lt;br /&gt;18:23:00&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 。。。 &lt;br /&gt;18:23:02&amp;nbsp; 朋友&amp;nbsp; ocean&amp;nbsp; 好吧 &lt;br /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ocean/aggbug/2001644.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ocean/archive/2011/03/31/2001644.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ocean/archive/2010/05/17/1737606.html</id><title type="text">SharePoint2010-CustomAction中的ContentTypeId属性已经消失了</title><summary type="text">新的definition如下：http://msdn.microsoft.com/en-us/library/ms460194.aspx以前的definition没查到，倒是在csdn上查到一篇：http://blog.csdn.net/forever_kingdom/archive/2008/11/05/3229662.aspx现在如果要指明content type，只要如下即可。Registr...</summary><published>2010-05-17T10:46:00Z</published><updated>2010-05-17T10:46:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2010/05/17/1737606.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2010/05/17/1737606.html"/><content type="html">&lt;p&gt;新的definition如下：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms460194.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/ms460194.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;以前的definition没查到，倒是在csdn上查到一篇：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;a href="http://blog.csdn.net/forever_kingdom/archive/2008/11/05/3229662.aspx" target="_blank"&gt;http://blog.csdn.net/forever_kingdom/archive/2008/11/05/3229662.aspx&lt;/a&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;现在如果要指明content type，只要如下即可。&lt;/p&gt;&#xD;
&lt;p&gt;RegistrationId="0x01010100F075B4BFC1A01E47B6D99B358E050F49"&lt;br /&gt;RegistrationType="ContentType"&lt;/p&gt;&#xD;
&lt;p&gt;其中RegistrationId写ContentTypeId即可。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如何获得ContentTypeId？最简单的方法就是鼠标放到Content Type上，然后地址栏中就会显示出一个link，link中就包含ContentTypeId。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果你想给某个文档库或者列表单独添加一些Custom Action，比如菜单，或者Ribbon，那么最好的方法就是让这些文档库或者列表实现一个特殊的Content Type。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;以后估计会写一些Blog，不过我不会再写SharePoint入门了，我会列出我所发现的一些MOSS2010和MOSS2007有差异的地方。&lt;/p&gt; &lt;img src="http://www.cnblogs.com/ocean/aggbug/1737606.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ocean/archive/2010/05/17/1737606.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ocean/archive/2010/04/23/1718719.html</id><title type="text">office2010和sharepoint2010可以下载了？</title><summary type="text">刚刚看了一下msdn订阅，意外发现已经可以下载了，更新时间是4月22日。有msdn订阅账号的可以一睹为先了。</summary><published>2010-04-23T08:19:00Z</published><updated>2010-04-23T08:19:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2010/04/23/1718719.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2010/04/23/1718719.html"/><content type="html">&lt;p&gt;刚刚看了一下msdn订阅，意外发现已经可以下载了，更新时间是4月22日。有msdn订阅账号的可以一睹为先了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/msdn1.jpg" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/msdn2.jpg" width="705" height="84" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ocean/aggbug/1718719.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ocean/archive/2010/04/23/1718719.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ocean/archive/2010/04/21/1717197.html</id><title type="text">一个子目录里放100W个文件及SQL Server File Stream中放100W文件，会怎么样？</title><summary type="text">      如果我有100W个小文件，每个接近100K，然后我要放到一个目录里面，NTFS的子目录是否能够承受住单个目录存放100W的文件？如果采用sql server 2008的File Stream功能呢？我们知道SQL Server 2008启用了Filestream的字段的表，是一个字段放到一个子目录，如果我100W条记录都放在一个表里面，对应磁盘上仍然是1个子目录会有100W个文件。那结果会怎样？</summary><published>2010-04-21T06:18:00Z</published><updated>2010-04-21T06:18:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2010/04/21/1717197.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2010/04/21/1717197.html"/><content type="html">&lt;p&gt;如果我有100W个小文件，每个接近100K，然后我要放到一个目录里面，NTFS的子目录是否能够承受住单个目录存放100W的文件？如果采用sql server 2008的File Stream功能呢？我们知道SQL Server 2008启用了Filestream的字段的表，是一个字段放到一个子目录，如果我100W条记录都放在一个表里面，对应磁盘上仍然是1个子目录会有100W个文件。那结果会怎样？&lt;/p&gt;&#xD;
&lt;p&gt;在很多流言中，有一些认为一个子目录存放超过10W的文件会产生不稳定的情况，通常在遇到这种场景，都直接建议采用分级目录存放，包括我们在一个表里面插入100W条记录。但是windows ntfs和sql server真的有这么差吗？当然不会，我们知道sql server 2008即使管理100T数据也没有问题。而网上最广泛的流言之一就是Oracle的性能比sql server的性能好，这个流言是在sql server 2000的时候产生的，那个时候是事实，但是sql server 2005已经改变了这一状况，而sql server 2008则彻底颠覆了这种情况，但是，流言，仍然继续的流传了下来（看看最新的TPC-E排名：&lt;a href="http://www.tpc.org/tpce/results/tpce_perf_results.asp" target="_blank"&gt;http://www.tpc.org/tpce/results/tpce_perf_results.asp&lt;/a&gt;&amp;nbsp;，TPC-E可是比TPC-C的更新的基准测试哦)。还有一个著名的流言就是SharePoint列表中不要存放超过2000条记录，否则将引起性能的严重下降，这个流言在SharePoint 2003的时候是属实的，但是在SharePoint 2007里面就已经改善了，流言也仍然传了下来。&lt;/p&gt;&#xD;
&lt;p&gt;首先说一下今天要讨论的场景，既然要在sql server 2008里面存放100W个文件，那么显然这是一个服务端应用，而不是一个客户端应用，因为没有人会手动的从100W个文件中去挑选什么。我的 测试环境如下：&lt;/p&gt;&#xD;
&lt;p&gt;OS: Windows Server 2008 R2&lt;/p&gt;&#xD;
&lt;p&gt;硬盘： SATA 日立 1T 7200转&lt;/p&gt;&#xD;
&lt;p&gt;CPU：双核 2G&lt;/p&gt;&#xD;
&lt;p&gt;数据库： SQL Server 2008 Enterprise(MSDN license)&lt;/p&gt;&#xD;
&lt;p&gt;可用内存：足够大（不会出产生内存不足而导致的额外硬盘交换，占用IO的情况）&lt;/p&gt;&#xD;
&lt;p&gt;测试文件大小：90K，也即将插入90K的文件100W份，相当于将这个文件复制了100W份。&lt;/p&gt;&#xD;
&lt;p&gt;真正的服务器一般采用SCSI高速硬盘，所以IO状态会比我的测试机器好很多，而这台机器是我的开发用机，在1T的硬盘上还有3个虚机在同时运行，所以相对而言IO是比较差的。如果在我这台机器上能够承受的住，我相信在真正的服务器上都不会有任何问题。&lt;/p&gt;&#xD;
&lt;p&gt;测试代码：&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('cf8a325c-3db3-4e82-898d-ada190909603')"&gt;&lt;img style="display: none" id="code_img_opened_cf8a325c-3db3-4e82-898d-ada190909603"  onclick="cnblogs_code_hide('cf8a325c-3db3-4e82-898d-ada190909603',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_cf8a325c-3db3-4e82-898d-ada190909603" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;static&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Main(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;[]&amp;nbsp;args)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SqlConnection&amp;nbsp;conn&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SqlConnection(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Data&amp;nbsp;Source=.;Initial&amp;nbsp;Catalog=NorthPole;Integrated&amp;nbsp;Security=SSPI;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn.Open();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SqlCommand&amp;nbsp;cmd&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;SqlCommand();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.Connection&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;conn;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandText&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;AddFile&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.CommandType&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;System.Data.CommandType.StoredProcedure;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DateTime&amp;nbsp;begin&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DateTime.Now;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;for&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;i&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #800080"&gt;100001&lt;/span&gt;&lt;span style="color: #000000"&gt;;&amp;nbsp;i&lt;/span&gt;&lt;span style="color: #000000"&gt;++&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cmd.ExecuteNonQuery();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;{0}&amp;nbsp;rows&amp;nbsp;are&amp;nbsp;inserted!&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;i);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DateTime&amp;nbsp;end&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;DateTime.Now;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;conn.Close();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TimeSpan&amp;nbsp;t&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;end&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;begin;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.WriteLine(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;{0}&amp;nbsp;Days,&amp;nbsp;{1}&amp;nbsp;Hours,&amp;nbsp;{2}&amp;nbsp;Minutes,&amp;nbsp;{3}&amp;nbsp;Seconds&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;t.Days,&amp;nbsp;t.Hours,&amp;nbsp;t.Minutes,&amp;nbsp;t.Seconds);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;21&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Console.ReadLine();&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;里面的AddFile是存储过程：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('5eafa4c7-9bbf-4c50-8925-033fb6384a45')"&gt;&lt;img style="display: none" id="code_img_opened_5eafa4c7-9bbf-4c50-8925-033fb6384a45"  onclick="cnblogs_code_hide('5eafa4c7-9bbf-4c50-8925-033fb6384a45',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_5eafa4c7-9bbf-4c50-8925-033fb6384a45" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #0000ff"&gt;ALTER&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;PROCEDURE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000"&gt;dbo&lt;/span&gt;&lt;span style="color: #ff0000"&gt;]&lt;/span&gt;&lt;span style="color: #000000"&gt;.&lt;/span&gt;&lt;span style="color: #ff0000"&gt;[&lt;/span&gt;&lt;span style="color: #ff0000"&gt;AddFile&lt;/span&gt;&lt;span style="color: #ff0000"&gt;]&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;BEGIN&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;SET&amp;nbsp;NOCOUNT&amp;nbsp;ON&amp;nbsp;added&amp;nbsp;to&amp;nbsp;prevent&amp;nbsp;extra&amp;nbsp;result&amp;nbsp;sets&amp;nbsp;from&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;interfering&amp;nbsp;with&amp;nbsp;SELECT&amp;nbsp;statements.&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;SET&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;NOCOUNT&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;ON&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;DECLARE&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@img&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;VARBINARY&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;MAX&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;Load&amp;nbsp;the&amp;nbsp;image&amp;nbsp;data&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@img&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #808080"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;CAST&lt;/span&gt;&lt;span style="color: #000000"&gt;(bulkcolumn&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;VARBINARY&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;MAX&lt;/span&gt;&lt;span style="color: #000000"&gt;))&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;FROM&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;OPENROWSET&lt;/span&gt;&lt;span style="color: #000000"&gt;(&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;BULK&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;D:\temp\test.jpg&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #000000"&gt;,&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;SINGLE_BLOB&amp;nbsp;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;AS&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;x&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;--&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;Insert&amp;nbsp;the&amp;nbsp;data&amp;nbsp;to&amp;nbsp;the&amp;nbsp;table&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008080"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;INSERT&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;INTO&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Items&amp;nbsp;(ItemID,&amp;nbsp;ItemImage)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;SELECT&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;NEWID&lt;/span&gt;&lt;span style="color: #000000"&gt;(),&amp;nbsp;&lt;/span&gt;&lt;span style="color: #008000"&gt;@img&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;END&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 新宋体; font-size: 12pt"&gt;我首先插入了10W条记录到数据库中，执行结果如下：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/1.jpg" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p style="margin: 0cm 0cm 0pt" &gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;由于我担心&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d" lang="EN-US"&gt;Console.WriteLine&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;和&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d" lang="EN-US"&gt;i++&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;这两句代码耗费时间过多，所以做了一下时间补偿，将&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d" lang="EN-US"&gt;cmd.ExecuteNonQuery()&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;注释掉，然后做&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d" lang="EN-US"&gt;10W&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;次空循环，结果如下：&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/4.jpg" width="323" height="53" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;基本不会对结果产生什么影响。&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;效率：总共：&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;3757&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;秒，&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;0.03757&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;秒&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;/&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;条&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;然后我将循环改成了&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;90W&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;次，往数据库插入&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;90W&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;条记录，执行结果如下：&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/2.jpg" width="337" height="63" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;时间补偿：&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/5.jpg" width="308" height="45" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;效率：总共：&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;52674&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;秒，&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt; 0.0585&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;秒&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;/&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;条。&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;随着记录数的增多，显然速度会变慢，不过这点效率损失基本还能够忍受。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;虽然对应的目录里面存放了&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;100W&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;的记录，但是目录还是能够打开，不过&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;windows&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;文件管理器的响应速度会变慢，当然这个主要原因应该是&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;widnows&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;文件管理器的原因，毕竟&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;100W&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;条数据不是一个小数字。我们能够看到这个目录有&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;100W&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;项目。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/3.jpg" width="535" height="478" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/6.jpg" width="324" height="210" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;通过&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;sql&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;语句：&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TOP&lt;/span&gt; 1000 [ItemID]&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p align="left"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray"&gt;,&lt;/span&gt;[ItemImage]&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp; &lt;span style="color: blue"&gt;FROM&lt;/span&gt; [NorthPole]&lt;span style="color: gray"&gt;.&lt;/span&gt;[dbo]&lt;span style="color: gray"&gt;.&lt;/span&gt;[Items]&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; font-size: 10pt"&gt;取前&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;1000&lt;/span&gt;&lt;span style="font-family: 宋体; font-size: 10pt"&gt;行记录，大约用时&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;16&lt;/span&gt;&lt;span style="font-family: 宋体; font-size: 10pt"&gt;秒。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/7.jpg" width="456" height="54" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;很明显，&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d" lang="EN-US"&gt;sql server &lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;具有很好的缓存功能，当我再次执行这条语句的时候，仅仅用时&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d" lang="EN-US"&gt;6&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;秒。&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d" lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/8.jpg" width="458" height="38" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;随后我执行了几次，基本都维持在&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;6&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;、&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;7&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;秒的样子。&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;在取任何一条记录的时候，时间都是&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;0&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;秒。我这里感觉不到速度的差异。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;关于如何使用&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;SQL Server File Stream&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;功能，这里有一篇&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;blog&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;写的非常详细：&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;&lt;a href="http://www.simple-talk.com/sql/learn-sql-server/an-introduction-to-sql-server-filestream/" target="_blank"&gt;http://www.simple-talk.com/sql/learn-sql-server/an-introduction-to-sql-server-filestream/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;从我个人的感觉来说，基本没有什么问题，而且如果换成专门的服务器，采用快速的&lt;/span&gt;&lt;span style="font-family: 'Calibri','sans-serif'; color: #1f497d"&gt;SCSI&lt;/span&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;硬盘，效率应该比我现在的测试结果要好上很多。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;span style="font-family: 宋体; color: #1f497d"&gt;当然上述结果仅供参考，如果你需要采用的话，建议在你的真实环境里面再实际测试一遍。毕竟不同的环境，可能得到的结果不相同。&lt;/span&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;附加，额外的：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/3.png" width="712" height="270" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ocean/aggbug/1717197.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ocean/archive/2010/04/21/1717197.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ocean/archive/2010/03/05/Prism-ModuleCatalog.html</id><title type="text">Prism2.0之自定义ModuleCatalog（for Silverlight)</title><summary type="text"> 趁着高兴，写篇Blog吧，主要在于太长时间没写Blog了，现在也不知道写什么好，恰巧前段时间碰到有人问我，在Prism中，可否把模块信息放到xml文件中。这个自然没有问题，我们做一个自己的ModuleCatalog就好，不过我一直没有做，今天正好简单实现了一下，有兴趣的朋友可以参考。　　为什么要分模块，这个当然有很多好处，比如独立开发、独立测试，独立加载，而且模块之间没有直接引用，修改之后不会引起其他模块产生问题，总归好处多多。当我们做一个小型的Silverlight程序时，可以不用考虑Prism，直接做就好了，但是如果你做一个RIA，比如business application，那么可能会有上百个页面，不同的数据、表格等等，如果不分模块，那最后肯定就乱成一锅粥了。架构就是为了让我们的项目更加有条理，并且在变的越来越复杂时能够更好的控制，还能随时适应变化的要求。</summary><published>2010-03-05T09:59:00Z</published><updated>2010-03-05T09:59:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2010/03/05/Prism-ModuleCatalog.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2010/03/05/Prism-ModuleCatalog.html"/><content type="html">&lt;p&gt;今天比较高兴，因为网站的备案终于被审核通过了，我的网站很早之前就备过案，但是很奇怪两个月之前备案信息莫名其妙就消失了，结果在上次大检查中被迫关闭，重新备案路漫漫，经过两个月马拉松式的备案，今天备案信息终于通过，网站重新开通(&lt;a href="http://www.oceanstudio.net/" target="_blank"&gt;http://www.oceanstudio.net/&lt;/a&gt; )， 比较汗颜了，我的网站也没有更新什么东西。&lt;/p&gt;&#xD;
&lt;p&gt;趁着高兴，写篇Blog吧，主要在于太长时间没写Blog了，现在也不知道写什么好，恰巧前段时间碰到有人问我，在Prism中，可否把模块信息放到xml文件中。这个自然没有问题，我们做一个自己的ModuleCatalog就好，不过我一直没有做，今天正好简单实现了一下，有兴趣的朋友可以参考。&lt;/p&gt;&#xD;
&lt;p&gt;为什么要分模块，这个当然有很多好处，比如独立开发、独立测试，独立加载，而且模块之间没有直接引用，修改之后不会引起其他模块产生问题，总归好处多多。当我们做一个小型的Silverlight程序时，可以不用考虑Prism，直接做就好了，但是如果你做一个RIA，比如business application，那么可能会有上百个页面，不同的数据、表格等等，如果不分模块，那最后肯定就乱成一锅粥了。架构就是为了让我们的项目更加有条理，并且在变的越来越复杂时能够更好的控制，还能随时适应变化的要求。&lt;/p&gt;&#xD;
&lt;p&gt;Prism2.0中，本身可以把模块的配置信息放置到XAML中，在自带的smaple中，我们可以看到如下代码：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;"&gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&lt;br/ /&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;http://www.CodeHighlighter.com/&lt;br/ /&gt;&lt;br/ /&gt;--&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleCatalog&amp;nbsp;xmlns&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://schemas.microsoft.com/winfx/2006/xaml/presentation&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:x&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;http://schemas.microsoft.com/winfx/2006/xaml&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:sys&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;clr-namespace:System;assembly=mscorlib&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns:Modularity&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;clr-namespace:Microsoft.Practices.Composite.Modularity;assembly=Microsoft.Practices.Composite&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfoGroup&amp;nbsp;Ref&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleX.xap&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;InitializationMode&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;OnDemand&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfo&amp;nbsp;ModuleName&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleX&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ModuleType&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleX.ModuleX,&amp;nbsp;ModuleX,&amp;nbsp;Version=1.0.0.0&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfoGroup&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfoGroup&amp;nbsp;Ref&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModulesWY.xap&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;InitializationMode&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;WhenAvailable&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfo&amp;nbsp;ModuleName&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleY&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ModuleType&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleY.ModuleY,&amp;nbsp;ModulesWY,&amp;nbsp;Version=1.0.0.0&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfo.DependsOn&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;sys:String&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;ModuleW&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;sys:String&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfo.DependsOn&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfo&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfo&amp;nbsp;ModuleName&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleW&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ModuleType&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleW.ModuleW,&amp;nbsp;ModulesWY,&amp;nbsp;Version=1.0.0.0&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfo&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfoGroup&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Module&amp;nbsp;info&amp;nbsp;without&amp;nbsp;a&amp;nbsp;group&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;--&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleInfo&amp;nbsp;Ref&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleZ.xap&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ModuleName&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleZ&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ModuleType&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleZ.ModuleZ,&amp;nbsp;ModuleZ,&amp;nbsp;Version=1.0.0.0&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #000000"&gt;Modularity:ModuleCatalog&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在Bootstrapper中，我们就可以如下调用：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('c4d4da83-b656-486b-97bd-37db92f30467')"&gt;&lt;img style="display: none" id="code_img_opened_c4d4da83-b656-486b-97bd-37db92f30467"  onclick="cnblogs_code_hide('c4d4da83-b656-486b-97bd-37db92f30467',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_c4d4da83-b656-486b-97bd-37db92f30467" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IModuleCatalog&amp;nbsp;GetModuleCatalog()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ModuleCatalog.CreateFromXaml(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;Uri(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;/RemoteModuleLoading;component/ModulesCatalog.xaml&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;,&amp;nbsp;UriKind.Relative));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;如果我们要放在XML中，也很简单，声明如下的这么一个文件：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('1c205a5a-1db7-47ac-b21b-0a499a60159b')"&gt;&lt;img style="display: none" id="code_img_opened_1c205a5a-1db7-47ac-b21b-0a499a60159b"  onclick="cnblogs_code_hide('1c205a5a-1db7-47ac-b21b-0a499a60159b',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_1c205a5a-1db7-47ac-b21b-0a499a60159b" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
--&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;xml&amp;nbsp;version="1.0"&amp;nbsp;encoding="utf-8"&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Modules&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Module&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="LeftMenuModule"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;mode&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="WhenAvailable"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="SilverlightMonitorApplication.LeftMenuModule.LeftMenuModule,&amp;nbsp;SilverlightMonitorApplication,&amp;nbsp;Version=1.0.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=null"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Module&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="BottomMenuModule"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;mode&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="OnDemand"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="SilverlightMonitorApplication.BottomMenuModule.BottomMenuModule,&amp;nbsp;SilverlightMonitorApplication,&amp;nbsp;Version=1.0.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=null"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Module.DependsOn&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;LeftMenuModule&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;Module1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Module.DependsOn&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Module&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Module&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Module1"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;mode&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="OnDemand"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="SilverlightMonitorApplication.Module1.Module1,&amp;nbsp;SilverlightMonitorApplication,&amp;nbsp;Version=1.0.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=null"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Module&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Module&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Module2"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;mode&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="OnDemand"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="SilverlightMonitorApplication.Module2.Module2,&amp;nbsp;SilverlightMonitorApplication,&amp;nbsp;Version=1.0.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=null"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Module&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Modules&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;然后自己实现一个ModuleCatalog，我这里就命名为XmlModuleCatalog，这个XmlModuleCatalog当然要从ModuleCatalog继承下来。当然你也可以有更好的实现方式。我就提供个思路就好，代码我随手写的，论写代码，我是赶不上专职开发人员了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('7eba2462-5650-43c6-b443-dca367e27914')"&gt;&lt;img style="display: none" id="code_img_opened_7eba2462-5650-43c6-b443-dca367e27914"  onclick="cnblogs_code_hide('7eba2462-5650-43c6-b443-dca367e27914',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_7eba2462-5650-43c6-b443-dca367e27914" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;XmlModuleCatalog&amp;nbsp;:&amp;nbsp;ModuleCatalog&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;XmlModuleCatalog(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;xmlUri)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;:&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;&lt;span style="color: #000000"&gt;()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;XElement&amp;nbsp;doc&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;XElement.Load(xmlUri);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var&amp;nbsp;q&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;from&amp;nbsp;x&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;doc.Descendants(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Module&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ModuleInfo(x.Attribute(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;name&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value,&amp;nbsp;x.Attribute(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;type&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value,&amp;nbsp;(from&amp;nbsp;c&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;x.Descendants(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleName&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;select&amp;nbsp;c.Value).ToArray()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;)&amp;nbsp;{&amp;nbsp;InitializationMode&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;x.Attribute(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;mode&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;).Value.Equals(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;OnDemand&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000"&gt;?&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;InitializationMode.OnDemand&amp;nbsp;:&amp;nbsp;InitializationMode.WhenAvailable&amp;nbsp;};&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;(ModuleInfo&amp;nbsp;m&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;q)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&lt;span style="color: #000000"&gt;.AddModule(m);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;throw&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;ArgumentException(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;XML&amp;nbsp;file&amp;nbsp;is&amp;nbsp;not&amp;nbsp;found&amp;nbsp;or&amp;nbsp;invalid!&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;然后就可以在bootstrapper里面轻易调用&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding-left:5px;padding-right:5px;" onclick="cnblogs_code_show('0dd1f668-f878-4e47-b15b-7f44279ab6c4')"&gt;&lt;img style="display: none" id="code_img_opened_0dd1f668-f878-4e47-b15b-7f44279ab6c4"  onclick="cnblogs_code_hide('0dd1f668-f878-4e47-b15b-7f44279ab6c4',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &#xD;
&lt;div id="cnblogs_code_open_0dd1f668-f878-4e47-b15b-7f44279ab6c4" &gt;&#xD;
&lt;div&gt;&lt;!--&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/ /&gt;&#xD;
http://www.CodeHighlighter.com/&lt;br/ /&gt;&#xD;
&lt;br/ /&gt;&#xD;
--&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;IModuleCatalog&amp;nbsp;&amp;nbsp;GetModuleCatalog()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;try&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;XmlModuleCatalog(&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ModuleInfo.xml&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;);&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;catch&lt;/span&gt;&lt;span style="color: #000000"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;&lt;span style="color: #000000"&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;这里注意几点：&lt;/p&gt;&#xD;
&lt;ol&gt;&lt;li&gt;XML文件的BuildAction为Content，不需要当做资源编译到dll中。&lt;/li&gt;&lt;li&gt;我没有去考虑每个模块在不同xap里面的情况，因为这种情况直接用xaml来描述就好了，没必要再自己重新做。&lt;/li&gt;&lt;li&gt;Depends的问题，只要放在ModuleName里面就好了，我并没有去管ModuleName是否放在&amp;lt;Module.DependsOn&amp;gt;里面，当然主要是图省事。&lt;/li&gt;&lt;li&gt;我使用LINQ来实现的，这样比较省事一点，大家也可以用其它的方式来读取XML。 &lt;/li&gt;&lt;/ol&gt;&#xD;
&lt;p&gt;这里说下模块按需下载的问题，如果模块需要按需下载，直接用XAML的形式就好了，这个Prism里面是自带的，不过考虑一般项目的模块不是特别多，而每个模块不是特别大，经常每个模块几十K，100多K，所以都打包在一起更加方便。当然如果模块过多或者过大，还是应该采用按需下载的方式比较好。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在Prism中，模块的加载过程和那一大堆class啊，interface啊之间的关系，可以从下面两个图中来了解：&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/Picture1.png" width="681" height="395" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/ocean/Picture2.png" width="655" height="460" /&gt;&lt;/p&gt;&#xD;
&lt;p&gt;上面两个图取自Prism的帮助文档中。&amp;nbsp; &lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;当然其实我定义这个xml文件，最初的初衷是想把module的view信息定义进去，让view也能根据配置文件动态加载。这个XmlModuleCatalog应该说是一个附属品。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;祝大家Happy.&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/ocean/aggbug/1679348.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/ocean/archive/2010/03/05/Prism-ModuleCatalog.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/ocean/archive/2008/11/10/1330857.html</id><title type="text">Teched2008 DEV301 ADO.NET Data Service资料下载</title><summary type="text">Teched2008 DEV301 ADO.NET Data Service资料下载。</summary><published>2008-11-10T10:03:00Z</published><updated>2008-11-10T10:03:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2008/11/10/1330857.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2008/11/10/1330857.html"/></entry><entry><id>http://www.cnblogs.com/ocean/archive/2008/10/28/1321656.html</id><title type="text">Teched 2008课程：ADO.NET Data Service &amp; UC开发概览</title><summary type="text">      Teched 2008将在后天，也就是10月30号，在广州首先拉开帷幕。在本届Teched上，我将在广州和北京讲两个Session，这两个Session分别是DEV301:ADO.NET Data Service和MSG300: UC开发概览。      去年我在Teched上讲了LINQ，也非常感谢广大朋友们的支持，肯花费75分钟看我敲一行行的代码。并且给我打了高分。这届Teched为什么选择ADO.NET Data Service，主要还在于我认为这个ADO.NET Data Service是一个非常优秀的东西，和LINQ一样，都是我非常热爱的技术。</summary><published>2008-10-28T13:37:00Z</published><updated>2008-10-28T13:37:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2008/10/28/1321656.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2008/10/28/1321656.html"/></entry><entry><id>http://www.cnblogs.com/ocean/archive/2008/10/15/1311324.html</id><title type="text">我的基于Silverlight2的相册，也刚刚升级到了RTW了。</title><summary type="text">我们已经知道了，在几个小时之前，Silverligh2刚刚发布了（RTW）。花了一点点的时间，终于把我的相册也从RC0升级到RTW了，我想它很有可能成为中国第一个基于Silverlight2 RTW的应用程序。有兴趣的朋友可以去： http://www.oceanstudio.net/OceanAlbum/MyAlbum.aspx 。建议你采用IE8或者IE7来访问，我刚刚发现它在FF里面好像有点问题，好像图片没有下载成功，我正在研究这个问题。因为没有美工的关系，所以很多地方还不是很漂亮，相册中的所有按钮也都是矢量的，也就是我在expression blend和expression design里面一点点画出来的，所以不如直接用现成的图片效果好。</summary><published>2008-10-14T19:35:00Z</published><updated>2008-10-14T19:35:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2008/10/15/1311324.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2008/10/15/1311324.html"/></entry><entry><id>http://www.cnblogs.com/ocean/archive/2008/09/14/1290825.html</id><title type="text">很囧，请大家不要给我留言</title><summary type="text">中秋节祝大家节日快乐。另外很对不起给我留言的朋友，我今天才注意到博客园的留言，所以以前大家给我留的言，我统统没有看到，自然也没有回复。我以后估计也不会常去看留言，所以大家如果有问题，请直接发到我的邮件，如果你不知道我的邮件，可以访问 http://www.oceanstudio.net/ 在本网站的讨论区提出你的问题，这个讨论区上的问题我会每天答复的。谢谢！</summary><published>2008-09-14T08:35:00Z</published><updated>2008-09-14T08:35:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2008/09/14/1290825.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2008/09/14/1290825.html"/></entry><entry><id>http://www.cnblogs.com/ocean/archive/2008/08/01/1258489.html</id><title type="text">在MOSS中给增强型RTF字段增加按钮</title><summary type="text">很多人会抱怨MOSS默认的讨论区比较弱，比起大部分BBS来说，确实少了很多功能。实际上对于MOSS的讨论区来说，已经是一个树型结构了，我们只要稍加改善，就能够让讨论区更完善一些。本章讨论，我们如何在原先的增强型RTF的html编辑器上增加一个按钮，并且这个按钮还能够插入表情呢？插入表情符号可是大多数论坛都有的功能。</summary><published>2008-08-01T14:29:00Z</published><updated>2008-08-01T14:29:00Z</updated><author><name>ocean</name><uri>http://www.cnblogs.com/ocean/</uri></author><link rel="alternate" href="http://www.cnblogs.com/ocean/archive/2008/08/01/1258489.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/ocean/archive/2008/08/01/1258489.html"/></entry></feed>
