<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_LeeWenjie NET Blog</title><subtitle type="text">只要精神不滑坡，方法总比问题多！！</subtitle><id>http://feed.cnblogs.com/blog/u/12620/rss</id><updated>2011-12-16T08:19:43Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/12620/rss"/><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/12/15/2289415.html</id><title type="text">【转发】谈论 SharePoint 2010中的沙盒解决方案（Sandboxed Solution）</title><summary type="text">谈论SharePoint2010中的沙盒解决方案（SandboxedSolution）这么好的文章，一定要收藏，作为以后的技术资料。期待《SharePoint 2010应用程序开发指南》。引用SharePoint 2010中的沙盒解决方案（Sandboxed Solution）当程序员使用Visual Studio 2010为SharePoint 2010创建应用程序时，可以创建两种类型的解决方案，服务器场解决方案和沙盒解决方案。比如，打开Visual Studio 2010，新建一个空白SharePoint项目，你看到的第一个界面就是如下这个对话框。服务器场解决方案（或简称为场解决方案）和S</summary><published>2011-12-15T12:58:00Z</published><updated>2011-12-15T12:58:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/15/2289415.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/15/2289415.html"/><content type="html">&lt;div class="articalTitle"&gt;&lt;h2 id="t_6ff20fed0100mzhn" class="titName SG_txta"&gt;谈论&amp;nbsp;SharePoint&amp;nbsp;2010中的沙盒解决方案（Sandboxed&amp;nbsp;Solution）&lt;/strong&gt;&lt;/p&gt;&lt;span class="img2"&gt;&lt;/span&gt;&lt;/div&gt;&lt;!-- 正文开始 --&gt;&lt;div id="sina_keyword_ad_area2" class="articalContent  "&gt;&lt;p&gt;这么好的文章，一定要收藏，作为以后的技术资料。&lt;/p&gt;&lt;p&gt;期待《SharePoint 2010应用程序开发指南》。&lt;/p&gt;&lt;p&gt;引用&lt;/p&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;&lt;a href="http://.spaces.live.com/blog/cns!FE8BC9C59D9B5399!1301.entry"&gt;&lt;span style="font-size: 18pt"&gt;SharePoint 2010中的沙盒解决方案（Sandboxed Solution）&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size: 18pt"&gt;当程序员使用Visual Studio 2010为SharePoint 2010创建应用程序时，可以创建两种类型的解决方案，服务器场解决方案和沙盒解决方案。比如，打开Visual Studio 2010，新建一个空白SharePoint项目，你看到的第一个界面就是如下这个对话框。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;服务器场解决方案（或简称为场解决方案）和SharePoint 2007一样，是一种被完全信任的解决方案。场解决方案可以包含能放到解决方案包里面的所有SharePoint组件和元素，比如应用程序页、可视化Web部件等等。在SharePoint 2010系统上安装场解决方案包，需要系统管理员在SharePoint服务器上，打开命令提示符窗口或PowerShell窗口，输入相应的命令行指令或Cmdlet，将这个场解决方案包安装到SharePoint服务器场里面。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;如果你的客户对SharePoint系统有严格的管控流程，那你就惨了。你辛辛苦苦的把代码里面的Bug全部修正之后，把项目打包成更新的解决方案包，然后，身为开发人员的你必须填写N张表格，接着就只能眼巴巴的等着管理服务器场的IT人员帮你把这个更新的解决方案包部署到服务器场里面，因为只有他们才有权限能在服务器上直接操作。如果客户每次还需要你去解释，到底每次更新都做了些什么，对服务器有何影响，那你就更加会头大了。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;于是SharePoint 2010引入了沙盒解决方案的概念。说到&amp;#8220;沙盒&amp;#8221;，嗯，这可是好东东啊。这些年整个开发平台都在围着&amp;#8220;沙盒&amp;#8221;转，JVM就是一个&amp;#8220;沙盒&amp;#8221;，CLR也是一个&amp;#8220;沙盒&amp;#8221;。有了&amp;#8220;沙盒&amp;#8221;，就能将自定义代码限制在其中，即使它一不小心crash掉，也能最小化带来的影响。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;SharePoint沙盒解决方案的作用也差不多。如果开发人员将自己的SharePoint 2010项目创建为沙盒解决方案，那么SharePoint 2010会在一个特定的&amp;#8220;沙盒&amp;#8221;中运行沙盒解决方案，并随时监控&amp;#8220;沙盒&amp;#8221;里面代码的运行情况。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;对于场解决方案里面所包含的代码，除了少数组件外，其他大部分组件，例如Web部件、页面、事件处理程序之类的，都是被载入到w3wp.exe进程中运行。这个是理所当然的，因为SharePoint就是一个ASP.NET Web应用嘛，所以各种自定义代码自然会被ASP.NET Runtime给载入到w3wp.exe进程中。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;但是如果是沙盒解决方案，其中所包含的代码将运行在一个单独的进程中（准确的说，有好几个进程都被用于运行沙盒解决方案里面的代码），而并非w3wp.exe进程。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;例如，开发人员将一个自定义Web部件打包到一个沙盒解决方案包，部署到一个网站集并激活，然后将这个Web部件给放置到某个页面上。当有用户访问这个页面时，w3wp.exe就会发现，需要运行那个Web部件中所包含的自定义代码，这时，w3wp.exe进程会联系（本地或远程服务器上的）SPUCHostService.exe进程，告诉它需要以&amp;#8220;沙盒&amp;#8221;模型执行一些代码。SPUCHostService.exe进程会通知SPUCWorkerProcess.exe进程载入需要运行的代码，SPUCWorkerProcess.exe进程会通过SPUCWorkerProcessProxy.exe来完成对SharePoint对象模型的调用，并执行那个Web部件中的自定义代码。这些代码执行完成之后，会将执行结果最终返回到w3wp.exe进程，w3wp.exe拿到这个自定义Web部件的执行结果，就可以继续将页面执行下去了。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;要想SharePoint 2010服务器场能执行沙盒解决方案，就需要在至少一台服务器上启动&amp;#8220;Microsoft SharePoint Foundation沙盒代码服务&amp;#8221;。从SharePoint 2010管理中心打开&amp;#8220;服务器上的服务&amp;#8221;页面，就可以将这个服务在指定的物理服务器上启动或停止。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photo.blog.sina.com.cn/list/blogpic.php?pid=6ff20fed4963c1f3116d0&amp;amp;bid=6ff20fed0100mzhn&amp;amp;uid=1878134765"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://s1.sinaimg.cn/middle/6ff20fed4963c1f3116d0&amp;amp;690" width="781" height="71" real_src="http://s1.sinaimg.cn/middle/6ff20fed4963c1f3116d0&amp;amp;690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;如果你的服务器场包含了n台服务器，那么你既可以在所有物理服务器上启动&amp;#8220;Microsoft SharePoint Foundation沙盒代码服务&amp;#8221;，也可以只选择在某几台应用服务器上启动&amp;#8220;Microsoft SharePoint Foundation沙盒代码服务&amp;#8221;。甚至最极端的，你可以准备一台CPU和内存都很强大的服务器，加入到服务器场中，然后专门在这台服务器上运行&amp;#8220;Microsoft SharePoint Foundation沙盒代码服务&amp;#8221;。这样，无论服务器场中的哪一台前端服务器需要运行沙盒解决方案中的自定义代码，这些请求都会被发送到这台强大的物理服务器。万一沙盒解决方案里面的自定义代码很烂，会严重影响运行代码的服务器的CPU或内存资源，那么也只会影响到这一台特定的服务器。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;当w3wp.exe进程需要找到一个地方运行沙盒代码时，它会基于某种预先制定的策略。SharePoint 2010有两种策略可用：1、总是在得到请求的同一台服务器上运行沙盒代码；2、使用一种内置的优化规则来传递执行请求。第1种策略非常简单，w3wp.exe总是会将执行沙盒代码的请求传递给自己这台服务器上的SPUCWorkerProcess.exe进程，也就是由当前服务器负责运行沙盒代码。第2种策略类似于一种&amp;#8220;负载平衡&amp;#8221;机制，SharePoint会检查服务器场中哪些服务器可以用来运行沙盒代码，然后按照一个优化规则，让w3wp.exe将执行代码的请求传递到某台服务器。这个优化规则简单来说就是，如果上次是服务器A执行了某个沙盒解决方案里面的一个Web部件代码，那下次会优先考虑继续让服务器A执行同一个Web部件里面的代码。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;具体选择哪个策略，可以在SharePoint 2010管理中心打开&amp;#8220;系统设置 - 管理用户解决方案&amp;#8221;页面，然后就能选择2个策略中的某一个了。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photo.blog.sina.com.cn/list/blogpic.php?pid=6ff20fed4963c1f53118a&amp;amp;bid=6ff20fed0100mzhn&amp;amp;uid=1878134765"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://s11.sinaimg.cn/middle/6ff20fed4963c1f53118a&amp;amp;690" width="835" height="155" real_src="http://s11.sinaimg.cn/middle/6ff20fed4963c1f53118a&amp;amp;690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;沙盒解决方案中包含的代码除了会在单独的进程中运行之外，它还有很多的限制。首先，SharePoint 2010使用了CAS（Code Access Security）来限制了沙盒代码能做的事情。在&amp;#8220;Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\CONFIG\wss_usercode.config&amp;#8221;文件中定义了沙盒代码的CAS策略，沙盒代码的权限被这个CAS策略限制为：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;SecurityPermission.Execution：可以执行托管代码；&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;AspNetHostingPermission = Minimal：可以在ASP.NET中运行，但不能访问服务器上的任何资源；&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;SharePointPermission.ObjectModel：可以使用SharePoint对象模型。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;由于CAS的限制，沙盒代码能够做的事情是很有限的，比如，它不能访问服务器上的任何文件，也不能访问数据库。除了这些限制之外，对于SharePoint对象模型的调用，SharePoint系统对沙盒代码进行了进一步的限制。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;虽然CAS中给予了沙盒代码&amp;#8220;SharePointPermission.ObjectModel&amp;#8221;权限，但沙盒代码在单独的进程中运行之前，它们都会被经过预先检查，凡是不运行调用的对象模型出现在了代码中，就会直接抛出异常，中止代码运行。&lt;/span&gt;&lt;strong style="font-size: 18pt"&gt;禁止&lt;/strong&gt;&lt;span style="font-size: 18pt"&gt;在沙盒代码中使用的对象模型包括：&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;SPSite的构造函数&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;SPSecurity类&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;Microsoft.SharePoint.Navigation命名空间下的所有类&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;除了SPUtility.SendEmail()和SPUtility.GetNTFullNameandEmailFro&lt;/span&gt;&lt;wbr style="font-size: 18pt"&gt;&lt;span style="font-size: 18pt"&gt;mLogin()之外的所有SPUtility所提供的方法&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;其他...&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;在SharePoint 2010 SDK中有一个列表，列出了所有&lt;/span&gt;&lt;strong style="font-size: 18pt"&gt;允许&lt;/strong&gt;&lt;span style="font-size: 18pt"&gt;在沙盒解决方案中被使用的SharePoint对象模型，请参考：&lt;/span&gt;&lt;a style="font-size: 18pt" href="http://msdn.microsoft.com/en-us/library/ee537860.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee537860.aspx&lt;/a&gt;&lt;span style="font-size: 18pt"&gt;。&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;除了对代码的限制之外，对于能被包含在沙盒解决方案中的SharePoint元素，也有一些限制，下面这些元素都&lt;/span&gt;&lt;strong style="font-size: 18pt"&gt;不能&lt;/strong&gt;&lt;span style="font-size: 18pt"&gt;被包含在沙盒解决方案中：&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;Web应用程序和服务器场级别的Feature&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;代码工作流&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;内容类型绑定&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;&amp;lt;HideCustomAction&amp;gt;元素&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;Custom Action group&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;应用程序页&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;&amp;#9679;可视化Web部件&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;SharePoint 2010会严格监控沙盒解决方案中的代码的运行状况。为了限制沙盒代码所占用的服务器资源，SharePoint 2010为每个网站集分配了一定的&amp;#8220;点数&amp;#8221;，随着沙盒代码的运行，这些&amp;#8220;点数&amp;#8221;会被逐渐消耗，如果一个网站集所分配的&amp;#8220;点数&amp;#8221;被消耗完了，那么这个网站集里面所有的沙盒解决方案将暂时不可用，直到第二天&amp;#8220;点数&amp;#8221;被自动重置为预设置为止。&lt;/span&gt;&lt;br style="font-size: 18pt" /&gt;&lt;br style="font-size: 18pt" /&gt;&lt;span style="font-size: 18pt"&gt;管理员可以在SharePoint 2010管理中心的&amp;#8220;应用程序管理 - 配置配额和锁定&amp;#8221;页面为每个网站集指定其可用的&amp;#8220;点数&amp;#8221;配额。默认每个网站集每天可以消耗的&amp;#8220;点数&amp;#8221;配额是300。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;wbr&gt;&lt;a href="http://photo.blog.sina.com.cn/list/blogpic.php?pid=6ff20fed4963c1f9347ac&amp;amp;bid=6ff20fed0100mzhn&amp;amp;uid=1878134765"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://s13.sinaimg.cn/middle/6ff20fed4963c1f9347ac&amp;amp;690" width="835" height="257" real_src="http://s13.sinaimg.cn/middle/6ff20fed4963c1f9347ac&amp;amp;690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;那么SharePoint 2010是如何计算&amp;#8220;点数&amp;#8221;的呢？SharePoint 2010内置了一套计算规则，如果希望了解这些规则，可以打开服务器上的SharePoint 2010 Management Shell，然后输入一个Cmdlet指令：&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;span style="font-size: 18pt"&gt;[Microsoft.SharePoint.Administration.SPUserCodeService]::Local.ResourceMeasures | ft Name,ResourcesPerPoint,AbsoluteLimit&lt;/span&gt;&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photo.blog.sina.com.cn/list/blogpic.php?pid=6ff20fed4963c1f636b20&amp;amp;bid=6ff20fed0100mzhn&amp;amp;uid=1878134765"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://s1.sinaimg.cn/middle/6ff20fed4963c1f636b20&amp;amp;690" width="671" height="377" real_src="http://s1.sinaimg.cn/middle/6ff20fed4963c1f636b20&amp;amp;690" /&gt;&lt;/a&gt;&amp;nbsp;&lt;wbr&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;上图所示的就是SharePoint 2010内置的&amp;#8220;点数&amp;#8221;计算规则。比如，&amp;#8220;UnhandledExceptionCount 50 3&amp;#8221;表示：每50个未捕获异常将消耗1个&amp;#8220;点数&amp;#8221;，而每天如果某个解决方案包由于未捕获异常的原因消耗了3个&amp;#8220;点数&amp;#8221;（也就是它发生了150次异常未捕获的情况），那么这个解决方案包将被直接中止运行，即使网站集当前还有剩余&amp;#8220;点数&amp;#8221;。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;说了沙盒解决方案这么多的限制，那么为什么开发人员要使用沙盒解决方案呢？沙盒解决方案最大的好处，就是它的部署和管理不需要服务器场管理员的参与。网站集管理员可以打开&amp;#8220;网站设置 - 解决方案&amp;#8221;页面，就能直接上载沙盒解决方案，并对它们进行激活、停用等操作。&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://photo.blog.sina.com.cn/list/blogpic.php?pid=6ff20fed0756c69852ea2&amp;amp;bid=6ff20fed0100mzhn&amp;amp;uid=1878134765"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://s3.sinaimg.cn/middle/6ff20fed0756c69852ea2&amp;amp;690" width="841" height="328" real_src="http://s3.sinaimg.cn/middle/6ff20fed0756c69852ea2&amp;amp;690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18pt"&gt;由于网站集管理员就可以直接通过Web界面来部署和管理沙盒解决方案，从此网站集管理员（或开发人员）就不用每次求爷爷告奶奶的等着服务器场管理员进行解决方案部署了。当然，这是一种妥协，服务器场管理员利用SharePoint 2010系统对沙盒解决方案的种种限制、监控，来保证了沙盒解决方案能始终在一个安全的&amp;#8220;沙盒&amp;#8221;环境中运行，即使沙盒代码写得很糟糕，它也会能把前端服务器搞死。有了这些保证，服务器场管理员也就能放心的让网站集管理员自己开发、部署沙盒解决方案了。&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 18pt"&gt;（以上内容节选自正在撰写中的《SharePoint 2010应用程序开发指南》，略有修改。）&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2289415.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/15/2289415.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/12/15/2289276.html</id><title type="text">【原创】NET4.0在SharePoint 2010 IIS下出现导演</title><summary type="text">SharePoint 2010 虚拟目录是运行在NET2.0下，当部署程序为NET4.0时，会出现以下问题，目前尚未解决，暂时修改为NET3.5.</summary><published>2011-12-15T10:51:00Z</published><updated>2011-12-15T10:51:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/15/2289276.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/15/2289276.html"/><content type="html">&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SharePoint 2010 虚拟目录是运行在NET2.0下，当部署程序为NET4.0时，会出现以下问题，目前尚未解决，暂时修改为NET3.5.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1、NET4.0在SharePoint 2010 IIS下出现导演&lt;/p&gt;&lt;p&gt;----------------------------------------------------------------&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;em&gt;未能加载文件或程序集&amp;#8220;XXXXXX&amp;#8221;或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新，无法加载此程序集。&lt;/em&gt; &lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;说明: &lt;/font&gt;&lt;/strong&gt;执行当前 Web 请求期间，出现未处理的异常。请检查堆栈跟踪信息，以了解有关该错误以及代码中导致错误的出处的详细信息。 &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;异常详细信息: &lt;/font&gt;&lt;/strong&gt;System.BadImageFormatException: 未能加载文件或程序集&amp;#8220;SpRibbon2&amp;#8221;或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新，无法加载此程序集。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;font face="Verdana"&gt;源错误:&lt;/font&gt;&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;table width="100%" bgcolor="#ffffcc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;code&gt;执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。&lt;/code&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;-----------------------------&lt;/p&gt;&lt;p&gt;2、主要原因是 引用的项目 .net 版本与启动的框架不同&lt;/p&gt;&lt;p&gt;我的电脑-&amp;gt;右键管理-&amp;gt;internet信息服务-&amp;gt;默认网站-&amp;gt;右键属性-&amp;gt;ASP.NET-&amp;gt;&amp;gt; 更改相应的asp.net版本即可&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;3、修改后会提示WebConfig中某些项重复引用，&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;lt;section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere" /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;lt;section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication" /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;4、去除后，提示 &amp;#8220;XXXXX&amp;#8221;用户没有&amp;#8220;C:\Windows\Microsoft.NET\Framework64\v4.0.30319&amp;#8221;目录的写权限。&lt;/p&gt;&lt;p&gt;&lt;/font&gt;&amp;nbsp;通过aspnet_regiis -i 重新安装后问题照样存在，&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;望碰到类似问题的朋友提供帮助。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2289276.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/15/2289276.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/12/13/2286304.html</id><title type="text">C#实现多语言</title><summary type="text">C#实现多语言</summary><published>2011-12-13T08:38:00Z</published><updated>2011-12-13T08:38:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/13/2286304.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/13/2286304.html"/><content type="html">&lt;p&gt;1、要在项目稳定以后，再做多语言本地化。&lt;/p&gt;&lt;p&gt;2、做语言主要注意一下几点&lt;/p&gt;&lt;p&gt;&lt;img style="width: 248px; height: 285px" src="http://pic002.cnblogs.com/img/fgficebear/200907/2009072100003875.jpg" width="248" height="285"  alt="" /&gt;&lt;/p&gt;&lt;p&gt;2.1控件（包括窗体）的多语言支持，可以在vs2008的命令提示中输入winres。采用可视化的操作界面进行设置&lt;/p&gt;&lt;p&gt;窗体需要设置LocalLizable = true&lt;/p&gt;&lt;p&gt;并选择Language&lt;/p&gt;&lt;p&gt;2.2变量多语言：&lt;/p&gt;&lt;p&gt;(1)代码中一定不要使用硬编码。&lt;/p&gt;&lt;p&gt;(2)使用此编码方式：string msg = Properties.Resources.InfoMsg。InfoMsg是通过Resources.resx设置。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 因此所有的需要多语言处理的都要用变量的方式在Resources.resx进行设置&lt;/p&gt;&lt;p&gt;(3)在程序完成后，复制Resources.resx文件。将其命名为Resources.en-GB.resx。&lt;/p&gt;&lt;p&gt;3、在程序出口处，加入以下语句&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Globalization.CultureInfo UICulture = new System.Globalization.CultureInfo("en-GB");&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.CurrentThread.CurrentUICulture = UICulture;&lt;/p&gt;&lt;p&gt;通过以上步骤即可完成程序多语言&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;注意：多语言处理后，程序bin目录下就会出现相应的多语言的文件夹&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/img/fgficebear/200907/2009072100125224.jpg"  alt="" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2286304.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/13/2286304.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/12/05/2276558.html</id><title type="text">【转载】互联网产品开发中的“快”字诀</title><summary type="text">探索并推行适合腾讯的敏捷研发及项目管理，从产品、运营、技术、管理四个方面，诠释了腾讯互联网产品研发中贯彻的价值观——“快”。当今互联网的发展，已不是大鱼吃小鱼的时代，而是快鱼吃慢鱼的时代。互联网产品的制胜原则就是一个字——“快”。在各种形态的产品研发中，我们始终贯彻如一的价值观之一就是“快”，我们应该如何来理解和诠释“快”？又会从哪些方面来执行贯彻这个原则呢？快速迭代，快做快发互联网产品不同于传统软件开发，我们面对的是上亿用户这样一个庞大的使用群体，他们是谁，有什么喜好，有何种习惯，会怎样使用我们的产品，是否喜欢我们的产品……图1 QQ农牧场的“极速模型”这些情况我们并不能准确地知道。因此，互</summary><published>2011-12-05T03:29:00Z</published><updated>2011-12-05T03:29:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/05/2276558.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/05/2276558.html"/><content type="html">&lt;span class="Apple-style-span" style="color: #222222; font-family: Verdana, sans-serif, Arial, 宋体; font-size: 14px; line-height: 24px; background-color: #ffffff; "&gt;&lt;p&gt;&lt;strong&gt;探索并推行适合腾讯的敏捷研发及项目管理，从产品、运营、技术、管理四个方面，诠释了腾讯互联网产品研发中贯彻的价值观&amp;#8212;&amp;#8212;&amp;#8220;快&amp;#8221;。&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;当今互联网的发展，已不是大鱼吃小鱼的时代，而是快鱼吃慢鱼的时代。互联网产品的制胜原则就是一个字&amp;#8212;&amp;#8212;&amp;#8220;快&amp;#8221;。在各种形态的产品研发中，我们始终贯彻如一的价值观之一就是&amp;#8220;快&amp;#8221;，我们应该如何来理解和诠释&amp;#8220;快&amp;#8221;？又会从哪些方面来执行贯彻这个原则呢？&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;快速迭代，快做快发&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;互联网产品不同于传统软件开发，我们面对的是上亿用户这样一个庞大的使用群体，他们是谁，有什么喜好，有何种习惯，会怎样使用我们的产品，是否喜欢我们的产品&amp;#8230;&amp;#8230;&lt;/p&gt;&lt;div id="attachment_7958" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;img class="aligncenter" title="详解互联网产品开发中的&amp;#8220;快" src="http://alibuybuy-img11.stor.sinaapp.com/2011/08/5405_%E8%AF%A6%E8%A7%A3%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84%E2%80%9C%E5%BF%AB.jpg" alt="图1 QQ农牧场的&amp;#8220;极速模型&amp;#8221;" width="256" height="126" style="margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; text-align: center; float: none; clear: both; display: block; max-width: 600px; " /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;图1 QQ农牧场的&amp;#8220;极速模型&amp;#8221;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;这些情况我们并不能准确地知道。因此，互联网产品的需求，并不能通过几个月的用户调研、市场调查、产品规划就能弄清楚，何况互联网的用户群体本身也处于飞速的动态发展之中。&lt;/p&gt;&lt;p&gt;那么，这种情况下如何发展我们的产品？如何对各种可能的产品特性做选择？用户将是最好的指南针，迅速让产品去感应用户需求，不断地升级进化，推陈出新，才是保持领先的唯一方式。要不断地倾听用户的反馈，不断地调整修改，然后决定你后面的方向。&lt;/p&gt;&lt;p&gt;所以，&amp;#8220;快速迭代&amp;#8221;是我们对产品的基本要求，能否做得足够快已成为衡量一款产品研发是否成熟的标准之一。以&amp;#8220;QQ农牧场&amp;#8221;为例，目前平均每天都会有至少一个版本发布，甚至更多，之所以能做到如此高的产品发布节奏，是由于我们一直坚持在做两件事情。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;以稳定迭代，小步快跑&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;首先，QQ农牧场采用了一种有特色的敏捷迭代开发模式，我们称之为&amp;#8220;极速模型&amp;#8221;。&lt;/p&gt;&lt;p&gt;QQ农牧场的研发团队，由多个角色组成，包括：项目经理、产品、UE设计、前台开发、后台开发、测试、运维。以一周为一个固定的迭代开发周期，这一周时间包括了团队一次完整的各个角色的研发协作过程：迭代前有特性规划、迭代后有回顾，其中迭代过程也会包括迭代规划、开发、测试、发布等过程。但与Scrum敏捷迭代最大的不同是：并非在迭代结束时进行交付，而是能够在一次迭代中完成多次交付和发布过程。&lt;/p&gt;&lt;p&gt;此种方式看似简单，但其实对团队的综合研发能力是一个巨大的挑战。其中主要挑战来自以下几个方面。&lt;/p&gt;&lt;ul style="margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;特性需要能裂解成很细小的可交付的子特性，通常不超过两天的开发工作量。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;迭代前，特性规划、沟通确认、界面交互及视觉设计这些工作均需提前安排完成。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;迭代计划及评估过程，还必须考虑到特性/子特性之间的耦合关系以及开发人力的耦合关系，合理地作出计划安排，保证开发过程的顺利进行，降低风险。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;要求团队成员工作咬合能力高，自运转能力高，需要长期默契配合。前台开发、后台开发、测试人员都能够高效率沟通，顺畅协作。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;以特性为中心，随做随发&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;其次，我们产品研发的所有活动，都是以特性为中心开展的。一种比较通常的方式是规划一批特性，然后经过一个开发阶段进入测试，集中测试回归后完成发布。但在&amp;#8220;QQ农牧场&amp;#8221;，从特性规划、计划、开发、测试、发布都是以特性为单位来驱动的。也就是说当完成了一个特性的开发后，即刻转入测试、完成测试后即刻发布。在一个迭代周期内，会有很多不同的特性独立并行于从开发到发布的过程。&lt;/p&gt;&lt;p&gt;这还必须依赖于产品技术架构、测试自动化、运维发布自动化能力做支撑。但是&amp;#8220;以特性为中心、随做随发&amp;#8221;的核心思想，是产品、技术、项目管理、运维的指导原则，它是让产品的整个研发配套能力建设围绕这个中心来持续开展的基础。&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;反馈及时，响应快速&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;做到产品的快速发布只是第一步，其根本目的就是让用户尽快用到新功能，尽快得到用户反馈信息，以便及时地对产品开发做调整。所以，一个产品团队能否快速获取用户反馈、是否真正重视反馈并及时作出响应非常重要。经历了12年互联网的摸爬滚打，我们非常重视来自用户的反馈意见，并不断改进产品，积累了丰富的交付经验。&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;建设用户反馈渠道&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;首先，要解决如何搜集用户反馈的问题，满足不同用户习惯，提供多种方式的反馈渠道，让反馈及时得到。用户可以通过不同的渠道对使用的产品进行问题反馈，提出意见和建议。&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;重视反馈，快速响应&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;用户反馈、意见和建议就像一座矿山，为产品的发展提供了宝藏，但产品团队是否真正认识到它们的价值，是否能够快速地挖掘这些宝藏，却并不是一件容易的事情。&lt;br /&gt;以QQMail为例，为了快速响应来自用户的反馈，在腾讯流传着一个1000/100/10的故事。&lt;/p&gt;&lt;ul style="margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;每人每月必须回复1000条论坛用户帖子。&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;每人每月必须查阅100篇与QQMail相关的网络评论文章。&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;每人每月必须处理10个用户反馈意见。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;注重数据运营，有数据才有真相&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;无论事前经过多么细致的调研、多么缜密的规划，对于产品经理来说，一个新特性的发布，仍然是一个提心吊胆的经历：特性被用户的接受程度如何，用户将如何使用，新特性给产品带来了怎样的拉动或抑制，哪些特性可能存在交互、易用性、稳定性等问题。要想回答这些问题都很困难。&lt;/p&gt;&lt;div id="attachment_7959" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;img class="aligncenter" title="详解互联网产品开发中的&amp;#8220;快" src="http://alibuybuy-img11.stor.sinaapp.com/2011/08/d553_%E8%AF%A6%E8%A7%A3%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84%E2%80%9C%E5%BF%AB1.jpg" alt="图2 连续运营数据分析示例" width="320" height="166" style="margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; text-align: center; float: none; clear: both; display: block; max-width: 600px; " /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;图2 连续运营数据分析示例&lt;/p&gt;&lt;/div&gt;&lt;p&gt;通过运营数据的分析，我们能够在短时间内获得对某个产品特性的准确评价，进而快速地指导产品下一步的发展。图2是一个产品93天内用户注册成功率的连续运营数据的例子。&lt;/p&gt;&lt;p&gt;从图2可以看出，7月12日前注册成功率稳定维持在20%~30%之间。7月12日对注册页面交互流程进行了优化并对外发布，之后两周的数据观察表明新的交互设计起到了预期的作用，注册成功率提升到了40%~60%，即使在7月17日、24日两天有定向向某省所有上线QQ用户发布消息时，其注册成功率也在40%左右浮动两个百分点。通过运营数据分析，能够快速地判断特性目标是否达到，进而指导下一步的行动。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;快需要创新、需要实力&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我们希望产品迭代得更快，但有了这个理念就一定能够快起来吗？快不只是一种产品理念，更是一种技术实力，遵循着这个核心价值观，需要技术上的创新思维，让技术能力来支撑我们的&amp;#8220;快&amp;#8221;。&lt;/p&gt;&lt;p&gt;以QQ宠物为例，通过技术架构创新成功地提升了客户端产品的发布速度和更新频率。如果采用传统客户端方式的话，一次版本的全量升级需要6个月的时间，而在新架构下一次全量升级仅需1天。架构从以下几方面提升了快的能力。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;客户端Web化技术：像B/S系统一样的开发方式和发布周期&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;有人会问：客户端的产品发布能快得起来吗？我们能做到让客户端像Web一样敏捷吗？ 答案是肯定的，我们的客户端微内核懒加载架构，将客户端Web化技术做到了像Web一样开发客户端产品。&lt;/p&gt;&lt;div id="attachment_7964" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;a href="http://alibuybuy-img11.stor.sinaapp.com/2011/08/2793_233TH426-2.jpg" style="color: #003366; text-decoration: none; outline-style: none; "&gt;&lt;img class="aligncenter" title="未标题2" src="http://alibuybuy-img11.stor.sinaapp.com/2011/08/2793_233TH426-2.jpg" alt="图3 QQ宠物的技术架构" width="320" height="114" style="margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-width: initial; border-color: initial; text-align: center; float: none; clear: both; display: block; max-width: 600px; " /&gt;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;图3 QQ宠物的技术架构&lt;/p&gt;&lt;/div&gt;&lt;p&gt;整个架构由客户端的微内核、插件版本控制服务器和资源下载服务器构成，如图3所示。&lt;/p&gt;&lt;p&gt;微内核简要介绍如下。&lt;/p&gt;&lt;ul style="margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;整个客户端改造成为一个微内核插件平台，只有一个插件加载器、插件版本控制组件、资源下载组件。&lt;/li&gt;&lt;/ul&gt;&lt;ul style="margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;插件加载器，负责加载插件。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;插件版本控制组件，负责询问版本服务器获取加载的版本。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;资源下载组件，负责下载插件资源。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;客户端的简要启动运行流程如下。&lt;/p&gt;&lt;ul style="margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;获取版本：内核启动后，询问版本控制服务器，获取需要加载的版本。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;下载相应版本的XML配置。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;加载器解析XML配置。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;开始第一个插件加载逻辑。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;下载第一个插件的资源。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;加载第一个插件。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;继续加载子节点插件。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;微内核懒加载架构与Web架构的比较如表1所示。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;同时，通过微内核懒加载架构还能做到特性即插即用，使产品灵活稳定。组件之间被强行解耦，大大降低了依赖性在联调、测试、系统集成方面带来的工作难度。由于每个组件都可以被独立下载，在客户端加载运行，这也就意味着发布风险的降低、效率的提升。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;面向特性的竖向架构：以特性为开发粒度，提升开发效率&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;传统的产品技术架构多为横向的分层结构，而每一层又习惯于分配给不同的人来负责。这直接带来的一个问题是，我们以特性为粒度进行开发、联调、测试时会因为人员耦合、层耦合带来复杂性、引入风险。&lt;/p&gt;&lt;div id="attachment_7961" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;img class="aligncenter" title="详解互联网产品开发中的&amp;#8220;快" src="http://alibuybuy-img11.stor.sinaapp.com/2011/08/8f90_%E8%AF%A6%E8%A7%A3%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84%E2%80%9C%E5%BF%AB3.jpg" alt="图4 传统的横向分层产品技术架构" width="240" height="134" style="margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; text-align: center; float: none; clear: both; display: block; max-width: 600px; " /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;图4 传统的横向分层产品技术架构&lt;/p&gt;&lt;/div&gt;&lt;p&gt;举个例子，比如开发一个login页面登录功能，可能需要Web前台工程师开发页面、Web后台工程师开发CGI、Server后台工程开发用户鉴权接口、数据库工程师做数据库表结构开发。那么这样一个简单的login功能，在联调、测试、发布方面就会牵扯很多的人力协作，而又因为每一层都需要改动代码，可能对这一层的其他功能代码造成影响。试问这样的方式能快得起来吗？&lt;/p&gt;&lt;p&gt;QQ宠物的新架构则以特性为中心，采用竖向的架构来解决这个问题，每个特性一个组件，一个人负责开发，每个组件必须包括UI、逻辑、协议的代码实现。&lt;/p&gt;&lt;p&gt;这样的方式，使得面向特性的开发模式得以强制化，从而提升了效率，加快了节奏。&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;快需要手段&lt;/strong&gt;&lt;br /&gt;想快容易&amp;#8212;&amp;#8212;做快难。在产品研发过程上，除了产品、运营、技术上的能力，我们还需要有必要的手段保证整个研发快起来。&lt;/p&gt;&lt;div id="attachment_7962" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;img class="aligncenter" title="详解互联网产品开发中的&amp;#8220;快" src="http://alibuybuy-img11.stor.sinaapp.com/2011/08/178b_%E8%AF%A6%E8%A7%A3%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84%E2%80%9C%E5%BF%AB4.jpg" alt="图5 竖向产品技术架构" width="240" height="132" style="margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; text-align: center; float: none; clear: both; display: block; max-width: 600px; " /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;图5 竖向产品技术架构&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Scrum敏捷开发：发扬光大&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我们早在2005年就引入了敏捷开发，目前已经将Scrum结合我们自身的产品、文化、团队特点形成了自己的敏捷研发管理框架。经过自下而上的发展和腾讯人积极的探索和沉淀，逐步形成了经典迭代、极速、大象、运营这四个比较有特色的敏捷研发管理模式。而在敏捷的推广、实施方面，也已经有了一套以运营为理念的推广模式，把敏捷当作产品来运营，形成了&amp;#8220;管理&amp;#8221;、&amp;#8220;工程&amp;#8221;两条线，在多个维度推行敏捷。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;CI：持续集成，快速体验&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;CI在产品开发、测试阶段提升自动化效率方面非常有效。目前我们CI的发展水平还参差不齐，但从起初的自动编译已逐步加入了静态代码检测、单元测试、自动化部署等更多内容，开始为更多的研发团队所青睐。&lt;/p&gt;&lt;div id="attachment_7960" style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; "&gt;&lt;img class="aligncenter" title="详解互联网产品开发中的&amp;#8220;快" src="http://alibuybuy-img11.stor.sinaapp.com/2011/08/8294_%E8%AF%A6%E8%A7%A3%E4%BA%92%E8%81%94%E7%BD%91%E4%BA%A7%E5%93%81%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84%E2%80%9C%E5%BF%AB2.jpg" alt="图6 腾讯的Scrum敏捷开发" width="240" height="157" style="margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; text-align: center; float: none; clear: both; display: block; max-width: 600px; " /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;图6 腾讯的Scrum敏捷开发&lt;/p&gt;&lt;/div&gt;&lt;p&gt;作为加快产品发布的能力，CI在以下几个方面作用明显。&lt;/p&gt;&lt;ul style="margin-top: 10px; margin-right: 20px; margin-bottom: 10px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: none; list-style-position: initial; list-style-image: initial; "&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;自动编译输出报告，维护代码可运行，及时暴露风险，降低集成成本。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;Dailybuild日构建系统，让产品经理、测试人员可以尽早进行体验和测试。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;作为一个自动化系统，利用静态代码检查、单元测试报告等手段为团队提供报告，促进编码质量不断得到重视，降低缺陷解决成本、缩短解决时间。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;灰度发布：提升发布的频率，降低发布风险&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在互联网行业，灰度发布已经成为最重要的发布控制手段。有时我们希望通过向小部分用户开发新功能，让他们先来体验新功能、新特性。通过用户反馈、数据运营的手段及早获得反馈，及时改进。以此方式，既可以降低发布风险，也可以提升发布频率，加快发布节奏。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;快是一种追求、一种习惯，更是一种能力，这种能力需要产品、技术、运营、研发管理多方面的支撑才能够快得起来。这样的快，就像是中国的高铁，在高速的行驶中还必须让你感到安全、舒适、服务、便利。&lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2276558.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/12/05/2276558.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/11/30/2269378.html</id><title type="text">【转载】SHAREPOINT TimeJob定时器开发</title><summary type="text">SHAREPOINT定时器开发Technorati 标签:TimeJob,定时器,sharepoint,mossSHAREPOINT定时器开发其实比较简单，只是资料相对较少，我认为开发者只要参考这三篇文档既可。第一篇：中文的资料，可以大致熟悉下思路和方法，但是其中的一些内容可能不是最新的了http://www.cnblogs.com/zhalin/archive/2008/03/07/1094385.html第二篇：AC最新写的HOW TO文章，非常详尽http://msdn.microsoft.com/en-us/library/cc406686.aspx#WSSCustomTimerJob</summary><published>2011-11-30T09:05:00Z</published><updated>2011-11-30T09:05:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/30/2269378.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/30/2269378.html"/><content type="html">&lt;span class="Apple-style-span" style="color: #555555; font-family: verdana, 'ms song', 宋体, Arial, 微软雅黑, Helvetica, sans-serif; font-size: 12px; line-height: normal; background-color: #f5f8fa; "&gt;&lt;h1 class="postTitle" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 5px; font-size: 12px; float: left; line-height: 1.5em; width: 720px; clear: both; "&gt;&lt;a id="ctl02_TitleUrl" class="postTitle2" href="http://www.cnblogs.com/IsNull/archive/2010/08/30/1812314.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #ff6600; text-decoration: none; font-family: 微软雅黑, 黑体, Arial; font-size: 18px; "&gt;SHAREPOINT定时器开发&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div class="clear" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; clear: both; "&gt;&lt;/div&gt;&lt;div class="postBody" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 2px; padding-bottom: 5px; padding-left: 5px; line-height: 2em; color: #555555; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: black; "&gt;&lt;div id="cnblogs_post_body" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Technorati 标签:&amp;nbsp;&lt;a href="http://technorati.com/tags/TimeJob" rel="tag" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;font color="#014982" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;TimeJob&lt;/font&gt;&lt;/a&gt;,&lt;a href="http://technorati.com/tags/%e5%ae%9a%e6%97%b6%e5%99%a8" rel="tag" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;font color="#014982" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;定时器&lt;/font&gt;&lt;/a&gt;,&lt;a href="http://technorati.com/tags/sharepoint" rel="tag" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;font color="#014982" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;sharepoint&lt;/font&gt;&lt;/a&gt;,&lt;a href="http://technorati.com/tags/moss" rel="tag" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;font color="#014982" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;moss&lt;/font&gt;&lt;/a&gt;&lt;p&gt;SHAREPOINT定时器开发其实比较简单，只是资料相对较少，我认为开发者只要参考这三篇文档既可。&lt;/p&gt;&lt;p&gt;第一篇：中文的资料，可以大致熟悉下思路和方法，但是其中的一些内容可能不是最新的了&lt;/p&gt;&lt;p&gt;&lt;a title="http://www.cnblogs.com/zhalin/archive/2008/03/07/1094385.html" href="http://www.cnblogs.com/zhalin/archive/2008/03/07/1094385.html" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;font color="#014982" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;http://www.cnblogs.com/zhalin/archive/2008/03/07/1094385.html&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;第二篇：AC最新写的HOW TO文章，非常详尽&lt;/p&gt;&lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/cc406686.aspx#WSSCustomTimerJobs_Conclusion" href="http://msdn.microsoft.com/en-us/library/cc406686.aspx#WSSCustomTimerJobs_Conclusion" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;font color="#014982" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;http://msdn.microsoft.com/en-us/library/cc406686.aspx#WSSCustomTimerJobs_Conclusion&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;第三篇：第二篇的代码下载&lt;/p&gt;&lt;p&gt;&lt;a title="http://code.msdn.microsoft.com/SharePointWarmupJob/Release/ProjectReleases.aspx?ReleaseId=1117" href="http://code.msdn.microsoft.com/SharePointWarmupJob/Release/ProjectReleases.aspx?ReleaseId=1117" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;font color="#014982" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;http://code.msdn.microsoft.com/SharePointWarmupJob/Release/ProjectReleases.aspx?ReleaseId=1117&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;下面重新再总结下定时器的开发、部署与调试方法：&lt;/p&gt;&lt;p&gt;1 定时器开发&lt;/p&gt;&lt;p&gt;1）框架就照搬上面的源代码，要用VS2008开发&lt;/p&gt;&lt;p&gt;2）重新引用Microsoft.SharePoint.ApplicationPages.Administration 位置在：C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\CONFIG\ADMINBIN\Microsoft.SharePoint.ApplicationPages.Administration.dll&lt;/p&gt;&lt;p&gt;3）在Execute方法中编写自定义代码&lt;/p&gt;&lt;p&gt;4） 如果需要获取外部的配置信息，需要写一个OwsTimer.exe.config ，放到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN 中&lt;/p&gt;&lt;p&gt;OwsTimer.exe.config文件实例：&lt;/p&gt;&lt;p&gt;&amp;lt;configuration&amp;gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp; &amp;lt;appSettings&amp;gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;add key="CBSS" value="server=;database=;user id=;password=" /&amp;gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp; &amp;lt;/appSettings&amp;gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;lt;/configuration&amp;gt;&lt;/p&gt;&lt;p&gt;5）编译后，自动会生成WSP&lt;/p&gt;&lt;p&gt;2 部署&lt;/p&gt;&lt;p&gt;1）用VS命令行方式注册MSDN.SharePoint.Samples.SharePointWarmupJob.dll到GAC&lt;/p&gt;&lt;p&gt;cls&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;d:&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;cd D:\mossproject\test\SharePointWarmupJob.Source\SharePointWarmupJob&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;"d:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -uf MSDN.SharePoint.Samples.SharePointWarmupJob&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;"d:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -if bin\Debug\MSDN.SharePoint.Samples.SharePointWarmupJob.dll&lt;/p&gt;&lt;p&gt;iisreset&lt;/p&gt;&lt;p&gt;2）部署WarmUpJobManager.aspx&lt;/p&gt;&lt;p&gt;原来定时器需要另外一个SPFeatureReceiver类，因为我们需要一个Feature来把我们的Timer部署到服务器上去，通过Feature Activated/deactivated来触发/关闭这个TimerJob，TIMEJOB的间隔时间也在这里设置。&lt;/p&gt;&lt;p&gt;现在有了WarmUpJobManager.aspx就无需这么麻烦了。WarmUpJobManager.aspx在源代码中已经包含了，需要把TEMPLATE下的ADMIN文件夹整个拷贝到C:\Program Files\Common Files\Microsoft Shared\web server extensions\12中&lt;/p&gt;&lt;p&gt;在安装完solution 后就可以在应用程序管理中看到&lt;/p&gt;&lt;p&gt;&lt;a href="https://qy8eua.bay.livefilestore.com/y1mTBgNj7TmQSiFthpEU6D-cpbIRk8z4a7discT3dGWROWb52eESl-QSm4pNqtQ-JlzKEZhC8NWpsuKurgbQtHryiU5IgE6zX0_FuHh3z_45n070q5UlTxEnkbWmgxarcDpIguAopIWuZW6acRR5Oo1Pg/image[2]%207CB9EBB5.png" rel="WLPP" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;img title="image" height="186" alt="image" src="https://qy8eua.bay.livefilestore.com/y1mCzyEEHrYckMsIfJh-Zvft2HEzL_9QQ0r0bHYl5OfiaV714pBSgQhX8eVI0XckkHnTtAVDhJfpkbXnbQKvFCWmYfCnXUICRtR8SG3UnVKoov8KqjgYrvUd_BqoQqrJFytTD-XbWPeVzbBeDgwI0aDCg/image_thumb%206E9F10B7.png" width="244" border="0" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;3）安装solution&lt;/p&gt;&lt;p&gt;pushd %programfiles%\common files\microsoft shared\web server extensions\12\bin&lt;/p&gt;&lt;p&gt;stsadm -o addsolution -filename D:\mossproject\test\SharePointWarmupJob.Source\SharePointWarmupJob\wsp\Debug\SharePointWarmupJob.wsp&lt;/p&gt;&lt;p&gt;stsadm -o deploysolution -name SharePointWarmupJob.wsp -local -force &amp;#8211;allowGacDeployment&lt;/p&gt;&lt;p&gt;4）触发/关闭这个TimerJob&lt;/p&gt;&lt;p&gt;&lt;a href="https://qy8eua.bay.livefilestore.com/y1m4hib7Y6TYnFLRCirIN4vurpsWOCaCPGq4oBDOcWs_DBX3MCE5fOH63Urf5XpuJWFSpeSrbmFq47iFFQmd7SLlDOPlV636I9hBfI7ERgwmkpzs5lj2AiA5ocV0p8DY8l1OBIldJelQhVHSnIGhS3YUw/image[5]%2041AA6F83.png" rel="WLPP" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: #555555; text-decoration: underline; "&gt;&lt;img title="image" height="100" alt="image" src="https://qy8eua.bay.livefilestore.com/y1mQDLOXxjFMDeiG0M6wtpVVm52aSk7_3O17eTefvCM6X7N7z--_TUbLt3NaRHksImvzdboTH94za15s4YB48WbJQ1c6mKU529nnzBpibLU6bVRNLcOviztbmAhz3ShprsDjdOvg-vfjl-cHjvqtJfyFA/image_thumb[1]%2071D50C9E.png" width="244" border="0" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-style: initial; border-color: initial; display: inline; " /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;5）重启TIMEJOB&lt;/p&gt;&lt;p&gt;net stop SPTimerV3&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;net start SPTimerV3&lt;/p&gt;&lt;p&gt;3 调试&lt;/p&gt;&lt;p&gt;1）确保代码是以DEBUG方式编译&lt;/p&gt;&lt;p&gt;2）Execute方法中编写的自定义代码头尾要加上&lt;/p&gt;&lt;p&gt;#if (DEBUG)&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetOwsTimerTask();&lt;/p&gt;&lt;p&gt;#endif&lt;/p&gt;&lt;p&gt;3）每次都必需按照以下顺序操作才能正常调试&lt;/p&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;把Assembly DLL放到 GAC&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;命令行：iisreset&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;在WarmUpJobManager.aspx中Deactivate feature, 然后activate feature.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;命令行：net stop SPTimerV3&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;命令行：net start SPTimerV3&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;Visual Studio: Attach to process: OWSTIMER.EXE&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt;完。&lt;/li&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2269378.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/30/2269378.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/11/30/2269070.html</id><title type="text">【转载】Web开发人员的6种赚钱之道</title><summary type="text">Web开发人员的6种赚钱之道2011-08-15 10:27|1988次阅读|来源：伯乐在线【已有1条评论】发表评论关键词：Web,开发人员|作者：蒋少雄|收藏这篇资讯你是web开发人员吗？还是这个行业的新人？你想赚点外快吗？或者去挣赖以生存的钱？上面这些问题中，只要你对任意一条做出了肯定的回答（否定全部的问题也很难），那这篇文章就会对你有所帮助。接下来，我会介绍到大部分可能通过web开发技能从网上赚钱的方法。我知道应该还有其他途径，但是在大多数情况下都会是下述的几个类别。那么，让我们开始列出它们。0．当一名自由职业者这个是最显而易见的。如果你会制作网站、编写脚本、设计网页或是模板，你就可以向</summary><published>2011-11-30T06:39:00Z</published><updated>2011-11-30T06:39:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/30/2269070.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/30/2269070.html"/><content type="html">&lt;div&gt;&lt;span style="font-size:15.0pt;font-family: &amp;quot;瀹嬩綋&amp;quot;,&amp;quot;serif&amp;quot;;Times New Roman&amp;quot;;color:black;background:#F8FAFD;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 12px; line-height: 18px; background-color: #f8fafd; "&gt;&lt;h1 style="font: normal normal bold 20px/30px 瀹嬩綋; text-align: center; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 25px; padding-right: 20px; padding-bottom: 0px; padding-left: 20px; "&gt;Web开发人员的6种赚钱之道&lt;/strong&gt;&lt;/p&gt;&lt;div class="artInfo" style="background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: #ffffff; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: #dfe9f2; border-right-color: #dfe9f2; border-bottom-color: #dfe9f2; border-left-color: #dfe9f2; margin-top: 10px; margin-right: 40px; margin-bottom: 0px; margin-left: 40px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; text-align: center; color: #8a8a8a; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;p class="blueline" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span&gt;2011-08-15 10:27&lt;/span&gt;&amp;nbsp;|&amp;nbsp;&lt;span&gt;1988次阅读&lt;/span&gt;&amp;nbsp;|&amp;nbsp;&lt;span&gt;来源：伯乐在线&lt;/span&gt;&amp;nbsp;【已有&lt;font id="remark_count1" class="cmtcount" style="font-size: 12px; color: #cc0000; "&gt;1&lt;/font&gt;条评论】&lt;a href="http://sd.csdn.net/a/20110815/303087.html#postcomment" target="_self" style="color: #005a98; text-decoration: underline; "&gt;发表评论&lt;/a&gt;&lt;/p&gt;&lt;p class="blackline" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span&gt;关键词：&lt;a href="http://articles.csdn.net/tags.php?/Web" target="_blank" class="tags" style="color: #000000; text-decoration: underline; "&gt;Web&lt;/a&gt;,&lt;a href="http://articles.csdn.net/tags.php?/%E5%BC%80%E5%8F%91%E4%BA%BA%E5%91%98" target="_blank" class="tags" style="color: #000000; text-decoration: underline; "&gt;开发人员&lt;/a&gt;&lt;/span&gt;&amp;nbsp;|&amp;nbsp;&lt;span&gt;作者：蒋少雄&lt;/span&gt;&amp;nbsp;|&amp;nbsp;&lt;span&gt;&lt;cite style="font-style: normal; "&gt;&lt;a href="http://sd.csdn.net/a/20110815/303087.html" class="fav_csdnstylebykimi" title="收藏到我的网摘中，并分享给我的朋友" style="color: #000000; text-decoration: underline; "&gt;收藏这篇资讯&lt;/a&gt;&lt;/cite&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="clear" style="clear: both; "&gt;&lt;/div&gt;&lt;div class="blkCont" style="margin-top: 0px; margin-right: 40px; margin-bottom: 0px; margin-left: 40px; "&gt;&lt;p&gt;你是web开发人员吗？还是这个行业的新人？你想赚点外快吗？或者去挣赖以生存的钱？上面这些问题中，只要你对任意一条做出了肯定的回答（否定全部的问题也很难），那这篇文章就会对你有所帮助。&lt;/p&gt;&lt;p&gt;接下来，我会介绍到大部分可能通过web开发技能从网上赚钱的方法。我知道应该还有其他途径，但是在大多数情况下都会是下述的几个类别。那么，让我们开始列出它们。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;0．当一名自由职业者&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这个是最显而易见的。如果你会制作网站、编写脚本、设计网页或是模板，你就可以向他人提供你的服务。如果你准备为你的客户辛勤工作，并为你所付出的时间获取酬劳，这也许是一个赚钱的好途径。你拿到的活越多，挣的钱就越多。关于自由职业者还有更多可写的，但是那些都是题外话了。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt;你得去寻找需要你服务的人群。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;可能的解决方式：&lt;/strong&gt;有很多可以找工作的网站。其中最大最出名的3家是：&lt;a href="http://goo.gl/HINXx" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "&gt;Elance&lt;/a&gt;、&lt;a href="http://goo.gl/gE1he" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "&gt;Freelancer&lt;/a&gt;和&lt;a href="http://goo.gl/JAzBj" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "&gt;ODesk&lt;/a&gt;。雇主在这些网站上贴出面向自由职业者的工作，你可以&amp;#8220;竞拍&amp;#8221;这些工作（就像在ebay上竞拍一样）。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;限制：&lt;/strong&gt;唯一的限制可能就是你的时间。基本上你的报酬取决于你做的工作。经常是以小时计算。你干的越多&amp;#8212;&amp;#8212;挣得就越多。但是有朝一日当你无法再承担再多的工作的话&amp;#8230;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;1. 发布免费脚本、模板（或是其他任何免费的东西）&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;开始的时候听上去有些蠢，提供免费的东西挣钱？怎么挣？&lt;/p&gt;&lt;p&gt;当你发布了免费的东西，你会有一些收获。首先可能会有捐赠。如果人们喜欢你给他们的那些免费的东西，他们会想返还给你一些，对你来说，最好的就是钱了。所以请不要忘记索要并布置一个按钮，以便任何做出决定的人都能轻而易举的捐赠。&lt;/p&gt;&lt;p&gt;另外，很多人也许会想让你定制或把你的脚本、模板安插在他们的网站上。你将是他们咨询此事的第一人，因为他们知道你很了解你的产品！&lt;/p&gt;&lt;p&gt;而这还不是全部！你会因为给出免费品而得到特殊福利。如果你有网站的话，那你将会得到更多浏览量。如果你获得了更多的浏览量，你就可以轻松的通过下面这两条赚钱（&amp;#8220;联盟计划、点击付费、卖广告&amp;#8221;和&amp;#8220;卖你自己的产品&amp;#8221;）。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt;一般来说，如果你的免费产品不是特别特别广为人知的话，你将无法挣得赖以生存的钱。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;可能的解决方式：&lt;/strong&gt;同时应用下述两点（&amp;#8220;联盟计划、点击付费、卖广告&amp;#8221;和&amp;#8220;卖你自己的产品&amp;#8221;）&lt;/p&gt;&lt;p&gt;&lt;strong&gt;限制：&lt;/strong&gt;俗话说，天空才是界限。你可以制造并发布更多免费产品，人们就不止会因为新产品而回访，你还会从搜索引擎在你的旧产品上获得大量点击。&lt;/p&gt;&lt;p&gt;编注：&lt;a href="http://goo.gl/fpKbO" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "&gt;Code Canyon&lt;/a&gt;网站是全球数一数二的代码交易平台，有72多万的会员，有很多优秀的开发人员在这里出售他们的代码。如果你已是脚本代码巧匠，不妨把你的代码发布上去出售，这不失为一种赚钱之道，尤其是在工资涨不过物价的环境。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;2. 联盟计划、卖广告&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;线上广告真的能养活你。但是对于所有这些项目，你都需要一个地方去放置你的广告或者链接代码。所以你需要建一个自己的网站并得到一些点击量。如上述所言，最好的方法就是提供来访者一些免费的产品。可以是一些脚本、模板、剪贴画或是有用的信息。另一种方法就是从SEO（搜索引擎优化）下手或买一些访问量。当你拥有来访者后，你就要放置广告并开始挣联盟佣金，或者卖各种广告。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt;这个听上去很容易。但是你的新网站将会非常难以取得访问量，找一个转换率很好的联盟计划甚至更难。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;可能的解决方式：&lt;/strong&gt;努力工作。阅读在这个行业成功的人们的博客，向他们学习。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;限制：&lt;/strong&gt;再提一次，天空才是界限。你的网站越来越成功，你就能赚更多的钱。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;3. 卖你自己的产品&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;卖你自己的产品和从属项目营销类似，但还是也有很大的区别。&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; font-size: 14px; line-height: 25px; "&gt;你将获得销售额的100%。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; font-size: 14px; line-height: 25px; "&gt;你必须自己制造产品（不管是脚本、模板还是其他任何东西）。&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; font-size: 14px; line-height: 25px; "&gt;你还要考虑到支付手段，客户支持等等。&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;一般来说，比起加入营销项目，卖自己的产品可以让你学到更多（你必须去制作人们想买的东西！）。这也需要更大量的工作。但是也许真的很划算。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt;你要为你的产品负责，支持客户。为了运行你的产品，你需要投入大量的时间和（或）金钱。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;可能的解决方式：&lt;/strong&gt;把你的产品开发外包给一些自由职业者。有个好地方可以找到这些人，那就是（对的&amp;#8230;我再说一次&amp;#8230;）：&lt;a href="http://goo.gl/HINXx" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "&gt;Elance&lt;/a&gt;、&lt;a href="http://goo.gl/gE1he" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "&gt;Freelancer&lt;/a&gt;和&lt;a href="http://goo.gl/JAzBj" rel="nofollow" target="_blank" style="color: #015fb6; text-decoration: none; "&gt;ODesk&lt;/a&gt;。然而你开始的时候仍需要资金。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;限制：&lt;/strong&gt;如果你有了优秀的产品，你就要去宣传它然后&amp;#8230;除非广告预算不足，否则只有天空才是你的界限。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;4. 出售网站&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这个也许能赚大钱，卖网站大致有两种方法：&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: none; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; font-size: 14px; line-height: 25px; "&gt;制作网站并以现金售出&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; list-style-type: disc; font-size: 14px; line-height: 25px; "&gt;购买网站&amp;#8594;稍作加工&amp;#8594;再以更高价格现金卖出&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;也许你不信，但是的确有效。人们在寻找一些万事就绪的网站为他们赚钱，这是一个巨大的市场。门户网站Flippa是一个很好的起始点。这个网站就像ebay一样，只不过是买卖网站。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt;不是所有的网站都畅销。你得去找到利基（niche），制作出优秀的网站并寻找客户。此外，当你购买网站的时候，你很容易上卖家的当。你一定要清楚你到底在做什么&amp;#8230;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;可能的解决方式：&lt;/strong&gt;在你开始之前去浏览Flippa上的表单，学习一下你的货品和销售方式到底是什么。去了解一下如何检查你购买网站的卖方。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;限制：&lt;/strong&gt;在开始业务的时候你需要投入一些资金。你会需要一些像域名（我推荐namecheap上的便宜域名）和托管（Site5上提供廉价可靠的托管）。你也可能不确定是否能捞回本钱。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;5. 找一份全职工作&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;如果你认为上述几条都不是挣钱的好主意的话，你也许仍然需要去找（或者继续）早八点晚四点的全职工作。有些人认为这是挣活命钱的最好方式&amp;#8230;虽然我不这样认为。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;问题：&lt;/strong&gt;你将没有时间照顾你的家庭，会面对疯狂的老板，没有任何形式的自由。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;可能的解决方式：&lt;/strong&gt;辞去你的工作并发展你自己的线上业务（如果你工作之余还有时间的话，也可以在你的闲暇时间开展业务）。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;限制：&lt;/strong&gt;不管你从老板那里得到了多少工作学到了多少知识，还是挣一样的工资&amp;#8230;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;结束语&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;网络上挣钱的方式多种多样，发挥你的Web开发技能的方法同样如此。我认为我涵盖了其中的大部分，并且希望提供给你了一些新点子。很多独立的开发人员并不拘泥于这其中的单一途径，因为这些方法都是多多少少相互关联的。那么，你通过网络挣钱的方法是什么呢，欢迎留言介绍你的方法。&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-size:15.0pt;font-family:&amp;quot;瀹嬩綋&amp;quot;,&amp;quot;serif&amp;quot;;Times New Roman&amp;quot;; color:black;background:#F8FAFD;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2269070.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/30/2269070.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/11/28/2266457.html</id><title type="text">【原创】企业级工作流管理系统评价依据或标准</title><summary type="text">【原创】企业级工作流平台评价</summary><published>2011-11-28T08:59:00Z</published><updated>2011-11-28T08:59:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/28/2266457.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/28/2266457.html"/><content type="html">&lt;div&gt;&lt;div&gt;【原创】企业级工作流平台评价&lt;/div&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt;font-family:宋体;"&gt;标签：工作流&lt;/span&gt;&lt;span style="font-size: 14.0pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 14.0pt;font-family:宋体;"&gt;平台&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:14.0pt;font-family:宋体;"&gt;特性&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;构架&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp;soa &amp;nbsp;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:14.0pt;font-family:宋体;"&gt;在国内工作流管理系统&lt;/span&gt;&lt;span style="font-family: 宋体; "&gt;&lt;span class="Apple-style-span" style="font-size: 14pt;"&gt;优劣参差不齐的情况下，企业如何寻找到真正不错的工作流软件呢？这的确让不少公司伤神，在此，结合近期对工作流的学习和研究，说说一款优秀的工作流平台应该具备那些基本特点，仅供参考，如有偏颇请多多包涵。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;一个完整的工作流管理系统通常由工作流引擎、工作流设计器、流程操作、工作流客户端程序、流程监控、表单设计器、与表单的集成以及与应用程序的集成八个部分组成。&lt;br /&gt;&lt;strong&gt;1. 工作流引擎&lt;/strong&gt;&lt;br /&gt;工作流引擎作为工作流管理系统的核心部分，主要提供了对于工作流定义的解析以及流程流转的支持。工作流定义文件描述了业务的交互逻辑，工作流引擎通过解析此 工作流定义文件按照业务的交互逻辑进行业务的流转，工作流引擎通常通过参考某种模型来进行设计，通过调度算法来进行流程的流转(流程的启动、终止、挂起、 恢复等)，通过各种环节调度算法(SPLIT、AND、OR等)来实现对于环节的流转(环节的合并、分叉、选择、条件性的选择等)。&lt;br /&gt;&lt;strong&gt;2. 工作流设计器&lt;/strong&gt;&lt;br /&gt;工作流设计器为可视化的流程设计工具，用户通过拖放等方式来绘制流程，并通过对于环节的配置来实现环节操作、环节表单、环节参与者的配置。工作流设计器为用户以及开发商提供了快速绘制、修改流程的方式，&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; color: red; "&gt;工作流设计器的好坏决定到工作流管理系统的易用性。&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;strong&gt;3. 流程操作&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;流程操作指所支持的对于流程环节的操作，如启动流程、终止流程、挂起流程、直流、分流(单人办理)、并流(多人同时办理)、联审等，象这些流程操作都是可直 接基于引擎所提供的环节调度算法来直接支持的，而在实际的需求中，通常需要自由的对于流程进行干涉，如取回、回退、跳转、追加、传阅、传阅办理等，而这些 流程操作对于工作流引擎来说是不合理的，因此必须单独的去实现。&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; color: red; "&gt;流程操作支持的好坏直接决定到一个工作流管理系统的实用性。&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;strong&gt;4. 工作流客户端程序&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;工作流客户端程序为工作流系统的表现形式，通常使用Web方式进行展现，通过提供待办列表、已办列表、执行流程操作、查看流程历史信息等来展现工作流系统的功能。&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;strong&gt;5. 流程监控&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;流程监控通过提供图形化的方式来对流程执行过程进行监控，包括流程运转状况，每个环节所耗费的时间等等，而通过这些可相应的进行流程的优化，以提高工作效率。&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;strong&gt;6. 表单设计器&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;表单设计器为可视化的表单设计工具，用户通过拖放的方式来绘制业务所需的表单，并可相应的进行表单数据的绑定。&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; color: red; "&gt;表单设计器为客户以及开发商提供了快速修改表单的方法，表单设计器的易用与否以及功能的完善与否影响到工作流管理系统的易用性。&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;strong&gt;7. 与表单的集成&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;通常业务流转需要表单来表达实际的业务，因此需要与表单进行集成来实现业务意义，与表单的集成通常包括表单数据的自动获取、存储、修改，表单域的权限控制、流程相关数据的维护以及流程环节表单的绑定。&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; color: red; "&gt;与表单的集成的好坏影响到工作流管理系统是否能提高开发效率。&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;&lt;strong&gt;8. 与应用程序的集成&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="color: #464646; font-family: simsun; font-size: 14px; line-height: 20px; background-color: #dcdcdc; "&gt;通过与应用程序的集成来完善工作流管理系统的业务意义，主要涉及到的是与权限系统以及组织机构的集成。流程环节需要相应的绑定不同的执行角色，而流程操作通常需要与权限系统、组织机构进行关联。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt;font-family:宋体;"&gt;&amp;nbsp; &amp;nbsp;1、&lt;div style="display: inline-block; "&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="font-size: 14pt; "&gt;SOA&lt;/span&gt;&lt;span style="font-size: 14pt; font-family: 宋体; "&gt;技术构架&lt;/span&gt;&lt;span style="font-size:14.0pt;font-family:宋体;"&gt;，我认为在&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;SOA&lt;/span&gt;&lt;span style="font-size:14.0pt;font-family: 宋体;"&gt;标准横行的今天，拥有先进的&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;SOA&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;技术构架是必要的，&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;并充分利用了先进的&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;SOA&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;技术标准。因此良好的技术构架保证了系统能够支持企业级应用，并能够进行长期稳定的功能扩展。&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 宋体; font-size: 19px; line-height: 22px; "&gt;反之，如果采用私有的技术构架，则整个系统的稳定性、可靠性、并发服务能力可能受到工作流系统的限制。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;2、支持企业级应用的，比如看它是否支持集群，是否具有良好的错误处理机制，是否支持事务管理，是否备很好的系统管理工具等。另外还要看在它承受大量用户的并发访问和大量流程的并发运行，是否保证系统具有稳定的响应等。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;3、有良好的可扩展能力也是不可或缺的。例如支持模板、活动等的扩展方式，这样使开发商可以对该系统进行扩展，也更加符合行业特点。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;4、有良好的应用集成能力，这样才方便调用各种应用，如调用&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;WebService&lt;/span&gt;&lt;span style="font-size: 14.0pt;font-family:宋体;"&gt;、DLL&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;等。还可以通过应用插件和第三方中间件平台和更多的应用系统进行集成。这对作为应用集成系统特别重要。在进行大型应用系统的集成时，可以采用工作流管理平台作为业务流程集成工具，提供大范围的业务流程支持。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;5、平台应该拥有独立性，使之能够支持&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;各种&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;应用服务器，支持&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;Oracle&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;、&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;SQL Server&lt;/span&gt;&lt;span style="font-size: 14.0pt;font-family:宋体;"&gt;等各种常用数据库，支持包括&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;Windows&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;、&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;Linux&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;、各种&lt;/span&gt;&lt;span style="font-size:14.0pt"&gt;Unix&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;系统的主流操作系统等等，方便应用系统的开发商可以自由选择系统平台。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;6、很好的开放性和嵌入能力，这也作为一个优秀工作流平台不可缺少的。&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt"&gt;&amp;nbsp; &amp;nbsp; 7&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;、很好的稳定性，稳定性是平台产品的最重要的品质之一。工作流管理平台的稳定性由其良好的构架设计作保证。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 8、具备全面的流程流转功能和与业务的内在支持，如分支，合并，集合等等。&amp;nbsp;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;由于水平有限，&lt;/span&gt;&lt;span style="font-size:14.0pt; font-family:宋体;"&gt;在对照网上各工作流的介绍而写的。所以写的不对的地方请多指教、补充。&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2266457.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/28/2266457.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/11/18/2253636.html</id><title type="text">【原创】SharePoint2010 ASPX页面设置自定义功能区（Ribbon）</title><summary type="text">SharePoint2010 ASPX页面设置自定义功能区（Ribbon） SharePoint2010的页面风格发生了很大的改变，其页面风格类似于Office的视图，这种视图被称为功能区（Ribbon）视图。</summary><published>2011-11-18T02:34:00Z</published><updated>2011-11-18T02:34:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/18/2253636.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/18/2253636.html"/><content type="html">&lt;div&gt;SharePoint2010 ASPX页面设置自定义功能区（Ribbon）&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="display: inline-block"&gt;&lt;/div&gt;&lt;span style="line-height: 26px; background-color: #ffffff; font-family: Arial; color: #333333" class="Apple-style-span"&gt;SharePoint2010的页面风格发生了很大的改变，其页面风格类似于Office的视图，这种视图被称为功能区（Ribbon）视图。&lt;/span&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;一、&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;span style="color: #3f529c; font-size: 28px; font-weight: bold" class="Apple-style-span"&gt;服务器功能区的体系结构&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="padding-bottom: 2px; margin-top: -8px; margin-bottom: 10px" class="lw_vs"&gt;&lt;div style="padding-right: 3px; float: left; color: #5d5d5d; font-size: 1em" id="curversion"&gt;&lt;strong&gt;SharePoint 2010&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="clear: both"&gt;&lt;/div&gt;&lt;div style="padding-top: 0px" id="mainSection"&gt;&lt;div id="mainBody"&gt;&lt;div class="introduction"&gt;&lt;p&gt;Microsoft SharePoint Foundation 2010 中的服务器功能区可创建一致的用户界面来处理 SharePoint 对象。您可以使用服务器功能区 XML 和简单的 ECMAScript（JavaScript、JScript）以声明方式扩展功能区，也可以针对更高级的情形使用功能区 XML 和页面组件。&lt;/p&gt;&lt;/div&gt;&lt;div xmlns=""&gt;&lt;div style="margin-top: 9px; margin-bottom: 19px" class="LW_CollapsibleArea_TitleDiv"&gt;&lt;div&gt;&lt;a style="outline-style: none; float: left; color: #1364c4; text-decoration: none" class="LW_CollapsibleArea_TitleAhref" title="折叠" href="http://msdn.microsoft.com/zh-cn/library/ee537017.aspx"&gt;&lt;img style="background-image: url(http://i3.msdn.microsoft.com/Hash/c764fa3d6b8a84bd40aa131355215c98.png); border-right-width: 0px; overflow-x: hidden; overflow-y: hidden; width: 9px; background-attachment: scroll; background-position: -2762px -3px; border-top-width: 0px; border-bottom-width: 0px; height: 12px; vertical-align: middle; border-left-width: 0px; background-origin: initial; background-clip: initial" class="cl_CollapsibleArea_expanding LW_CollapsibleArea_Img" alt="" src="http://i.msdn.microsoft.com/Hash/030c41d9079671d09a62d8e2c1db6973.gif" /&gt;&lt;span style="padding-left: 6px; font-family: 'Segoe UI', Verdana, Arial; word-wrap: break-word; color: #3f529c; font-size: 1.53em; word-break: break-all; font-weight: bold" class="LW_CollapsibleArea_Title"&gt;服务器功能区中的基本对象&lt;/span&gt;&lt;/a&gt; &lt;div style="padding-top: 12px" class="LW_CollapsibleArea_HrDiv"&gt;&lt;hr style="border-bottom: #e5e5e5 1px solid; border-right-style: none; border-top-style: none; color: #e5e5e5; margin-left: 4px" class="LW_CollapsibleArea_Hr" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="padding-left: 15px; display: block; clear: both" class="sectionblock"&gt;&lt;a id="sectionToggle0" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;/a&gt;&lt;p xmlns="http://www.w3.org/1999/xhtml"&gt;功能区中的首要元素就是选项卡。选项卡显示在 SharePoint 网站页面的顶部。每个选项卡都包含多个组。这些组又包含多组控件。每个组可以包含多个控件，并具有一个标签来标识该组。组内的控件包括按钮、下拉菜单、复选框、组合框、拆分按钮和库。其中每个控件都绑定到一个唯一的命令。&lt;/p&gt;&lt;p xmlns="http://www.w3.org/1999/xhtml"&gt;服务器功能区是使用服务器功能区 XML 在功能清单文件或用户自定义操作中定义的。功能区 XML 用于定义各个选项卡、组和控件。&lt;span class="input"&gt;Tab&lt;/span&gt;&amp;nbsp;元素包含一个&lt;span class="input"&gt;Groups&lt;/span&gt;&amp;nbsp;元素。每个&amp;nbsp;&lt;span class="input"&gt;Groups&lt;/span&gt;&amp;nbsp;元素又有多个&amp;nbsp;&lt;span class="input"&gt;Group&lt;/span&gt;&amp;nbsp;元素。&lt;span class="input"&gt;Group&lt;/span&gt;&amp;nbsp;元素内是一个&amp;nbsp;&lt;span class="input"&gt;Controls&lt;/span&gt;&amp;nbsp;元素，该元素又包含多种类型的控件。&lt;a style="color: #1364c4; text-decoration: none" href="http://msdn.microsoft.com/zh-cn/library/ee537017.aspx#BKMK_ControlsInTheRibbon"&gt;服务器功能区中的控件&lt;/a&gt;部分列出了可用的控件类型。有关功能区 XML 的详细说明，请参阅&lt;span&gt;&lt;a style="color: #1364c4; text-decoration: none" href="http://msdn.microsoft.com/zh-cn/library/ff407290.aspx"&gt;服务器功能区 XML&lt;/a&gt;&lt;/span&gt;。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div xmlns=""&gt;&lt;div style="margin-top: 9px; margin-bottom: 19px" class="LW_CollapsibleArea_TitleDiv"&gt;&lt;div&gt;&lt;a style="outline-style: none; float: left; color: #1364c4; text-decoration: none" class="LW_CollapsibleArea_TitleAhref" title="折叠" href="http://msdn.microsoft.com/zh-cn/library/ee537017.aspx"&gt;&lt;img style="background-image: url(http://i3.msdn.microsoft.com/Hash/c764fa3d6b8a84bd40aa131355215c98.png); border-right-width: 0px; overflow-x: hidden; overflow-y: hidden; width: 9px; background-attachment: scroll; background-position: -2762px -3px; border-top-width: 0px; border-bottom-width: 0px; height: 12px; vertical-align: middle; border-left-width: 0px; background-origin: initial; background-clip: initial" class="cl_CollapsibleArea_expanding LW_CollapsibleArea_Img" alt="" src="http://i.msdn.microsoft.com/Hash/030c41d9079671d09a62d8e2c1db6973.gif" /&gt;&lt;span style="padding-left: 6px; font-family: 'Segoe UI', Verdana, Arial; word-wrap: break-word; color: #3f529c; font-size: 1.53em; word-break: break-all; font-weight: bold" class="LW_CollapsibleArea_Title"&gt;服务器功能区通信&lt;/span&gt;&lt;/a&gt; &lt;div style="padding-top: 12px" class="LW_CollapsibleArea_HrDiv"&gt;&lt;hr style="border-bottom: #e5e5e5 1px solid; border-right-style: none; border-top-style: none; color: #e5e5e5; margin-left: 4px" class="LW_CollapsibleArea_Hr" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="padding-left: 15px; display: block; clear: both" class="sectionblock"&gt;&lt;a id="sectionToggle1" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;/a&gt;&lt;p xmlns="http://www.w3.org/1999/xhtml"&gt;功能区使用多个对象与页面的其余部分进行交互。它必须知道启用了哪些控件、控件的状态以及何时进行刷新。服务器功能区使用&lt;span class="input"&gt;CommandDispatcher&lt;/span&gt;、&lt;span class="input"&gt;PageManager&lt;/span&gt;、&lt;span class="input"&gt;PageComponent&lt;/span&gt;&amp;nbsp;等对象进行通信。其中每个对象在与功能区的交互中都扮演着重要角色。&lt;/p&gt;&lt;p xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span class="input"&gt;PageManager&lt;/span&gt;&amp;nbsp;可初始化所有控件并向功能区注册&amp;nbsp;&lt;span class="input"&gt;PageComponent&lt;/span&gt;&amp;nbsp;对象。&lt;span class="input"&gt;PageManager&lt;/span&gt;&amp;nbsp;的一个实例位于该页面上。&lt;/p&gt;&lt;p xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span class="input"&gt;CommandDispatcher&lt;/span&gt;&amp;nbsp;负责处理所有&amp;nbsp;&lt;span class="input"&gt;PageComponent&lt;/span&gt;&amp;nbsp;对象以及这些对象可以处理的命令。在页面上收到命令后，&lt;span class="input"&gt;CommandDispatcher&lt;/span&gt;&amp;nbsp;会接收该命令并将其传递给正确的&amp;nbsp;&lt;span class="input"&gt;PageComponent&lt;/span&gt;。&lt;/p&gt;&lt;p xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;span class="input"&gt;PageComponent&lt;/span&gt;&amp;nbsp;在 ECMAScript（JavaScript、JScript）中创建并处理由&amp;nbsp;&lt;span class="input"&gt;CommandDispatcher&lt;/span&gt;&amp;nbsp;传递的命令。将&amp;nbsp;&lt;span class="input"&gt;PageComponent&lt;/span&gt;&amp;nbsp;添加到页面中后，您可以使用 JavaScript 创建&amp;nbsp;&lt;span class="input"&gt;PageComponent&lt;/span&gt;&amp;nbsp;的实例，并将其注册到&amp;nbsp;&lt;span class="input"&gt;PageManager&lt;/span&gt;&amp;nbsp;中。然后，&lt;span class="input"&gt;PageComponent&lt;/span&gt;&amp;nbsp;即可响应您在功能区 XML 中定义的命令。&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;a id="BKMK_ControlsInTheRibbon"&gt;&lt;/a&gt;&lt;div xmlns=""&gt;&lt;div style="margin-top: 9px; margin-bottom: 19px" class="LW_CollapsibleArea_TitleDiv"&gt;&lt;div&gt;&lt;a style="outline-style: none; float: left; color: #1364c4; text-decoration: none" class="LW_CollapsibleArea_TitleAhref" title="折叠" href="http://msdn.microsoft.com/zh-cn/library/ee537017.aspx"&gt;&lt;img style="background-image: url(http://i3.msdn.microsoft.com/Hash/c764fa3d6b8a84bd40aa131355215c98.png); border-right-width: 0px; overflow-x: hidden; overflow-y: hidden; width: 9px; background-attachment: scroll; background-position: -2762px -3px; border-top-width: 0px; border-bottom-width: 0px; height: 12px; vertical-align: middle; border-left-width: 0px; background-origin: initial; background-clip: initial" class="cl_CollapsibleArea_expanding LW_CollapsibleArea_Img" alt="" src="http://i.msdn.microsoft.com/Hash/030c41d9079671d09a62d8e2c1db6973.gif" /&gt;&lt;span style="padding-left: 6px; font-family: 'Segoe UI', Verdana, Arial; word-wrap: break-word; color: #3f529c; font-size: 1.53em; word-break: break-all; font-weight: bold" class="LW_CollapsibleArea_Title"&gt;服务器功能区中的控件&lt;/span&gt;&lt;/a&gt; &lt;div style="padding-top: 12px" class="LW_CollapsibleArea_HrDiv"&gt;&lt;hr style="border-bottom: #e5e5e5 1px solid; border-right-style: none; border-top-style: none; color: #e5e5e5; margin-left: 4px" class="LW_CollapsibleArea_Hr" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="padding-left: 15px; display: block; clear: both" class="sectionblock"&gt;&lt;a id="sectionToggle2" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;/a&gt;&lt;p xmlns="http://www.w3.org/1999/xhtml"&gt;服务器功能区包含许多类型的控件。其中包括复选框、按钮和组合框等简单控件，还包括拆分按钮或飞出位置等更高级的控件。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;二、&amp;nbsp;&lt;strong&gt;&amp;nbsp;SharePoint 2010 Server 功能区组件&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;br /&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" id="1a79c8c2-9e0e-4b63-a417-c4c095fd0d74" title="SharePoint 2010 服务器功能区组件" alt="SharePoint 2010 服务器功能区组件" src="http://i.msdn.microsoft.com/dynimg/IC502359.jpg" xmlns="" /&gt; &lt;p&gt;图中的标注号指向以下特定组件：&lt;/p&gt;&lt;ol class="ordered"&gt;&lt;li&gt;选项卡&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;组&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;控件&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;上下文选项卡组&amp;nbsp;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;/div&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#3f529c" face="'Segoe UI', Verdana, Arial"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/font&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; color: #3f529c; font-size: 16px; font-weight: bold" class="Apple-style-span"&gt;三、使用页面组件实现服务器功能区命令&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&amp;nbsp; &lt;p&gt;除了使用命令 UI 处理程序外，还可以使用&lt;strong&gt;页面组件&lt;/strong&gt;。页面组件是一个在外部脚本库 (.js) 文件中定义的 JavaScript 对象。该对象实现了几个属性和方法，它们将告知服务器功能区命令基础结构如何初始化该对象、该对象可处理哪些命令以及某个特定命令是否可用，并可在页面组件接收焦点或失去焦点时做出响应。&lt;/p&gt;&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;div class="subSection"&gt;&lt;p&gt;必须将此脚本文件添加到显示功能区自定义项的同一页面中。可通过多种方法来实现这一点。第一种方法是，使用 SharePoint 2010 中的新&amp;nbsp;&lt;strong&gt;&amp;lt;CustomAction ScriptSrc="" /&amp;gt;&lt;/strong&gt;&amp;nbsp;功能，根据功能的范围将库添加到网站、网站集、Web 应用程序或服务器场中的所有页面。另一种方法是，从自定义应用程序或网站页面 (.aspx)、自定义用户控件 (.ascx) 或自定义服务器控件内的托管代码添加脚本。以下代码示例将向 Web 部件内的页面添加页面组件文件。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;本例在自定义ASPX页面中实现：&lt;/p&gt;&lt;p&gt;&amp;nbsp;ASPX&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;注意：1、继承母版：&lt;/span&gt;&lt;span style="line-height: normal; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;DynamicMasterPageFile=&lt;span style="font-family: 'Courier New'; color: #800000"&gt;"&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000"&gt;~masterurl/default.master&lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: #800000"&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2、如果没有继承母版页，需自定义Sharepoint Ribbon控件&lt;/p&gt;&lt;p&gt;&lt;font class="Apple-style-span" face="'Segoe UI', Verdana, Arial"&gt;&lt;span style="line-height: normal; font-size: 16px" class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;div class="subSection"&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&amp;lt;%@&amp;nbsp;Import&amp;nbsp;Namespace=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Microsoft.SharePoint.ApplicationPages&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;%&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&amp;lt;%@&amp;nbsp;Register&amp;nbsp;Tagprefix=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;SharePoint&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;Namespace=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Microsoft.SharePoint.WebControls&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;Assembly=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Microsoft.SharePoint,&amp;nbsp;Version=14.0.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=71e9bce111e9429c&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;%&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;lt;%@&amp;nbsp;Register&amp;nbsp;Tagprefix=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Utilities&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;Namespace=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Microsoft.SharePoint.Utilities&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;Assembly=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Microsoft.SharePoint,&amp;nbsp;Version=14.0.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=71e9bce111e9429c&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;%&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&amp;lt;%@&amp;nbsp;Register&amp;nbsp;Tagprefix=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;asp&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;Namespace=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;System.Web.UI&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;Assembly=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;System.Web.Extensions,&amp;nbsp;Version=3.5.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;%&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&amp;lt;%@&amp;nbsp;Import&amp;nbsp;Namespace=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Microsoft.SharePoint&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;%&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;lt;%@&amp;nbsp;Assembly&amp;nbsp;Name=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Microsoft.Web.CommandUI,&amp;nbsp;Version=14.0.0.0,&amp;nbsp;Culture=neutral,&amp;nbsp;PublicKeyToken=71e9bce111e9429c&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;%&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&amp;lt;%@&amp;nbsp;Page&amp;nbsp;Language=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;C#&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;AutoEventWireup=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;true&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;CodeBehind=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ApplicationPage1.aspx.cs&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;Inherits=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;SpRibbon2.ApplicationPage1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;DynamicMasterPageFile=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;~masterurl/default.master&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;%&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&amp;lt;asp:Content&amp;nbsp;ID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PageHead&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;ContentPlaceHolderID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PlaceHolderAdditionalPageHead&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt;&amp;nbsp;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt;&amp;nbsp;&amp;lt;asp:Content&amp;nbsp;ID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Main&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;ContentPlaceHolderID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PlaceHolderMain&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;asdhkasjhfsadf&amp;nbsp;sdfsdalfjaklsjdfklasjdfklasjdfo;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;asp:Label&amp;nbsp;ID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Label1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;Text=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Label&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt;&amp;nbsp;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt;&amp;nbsp;&amp;lt;asp:Content&amp;nbsp;ID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PageTitle&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;ContentPlaceHolderID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PlaceHolderPageTitle&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;20&lt;/span&gt;&amp;nbsp;应用程序页sdfsaf&lt;br /&gt;&lt;span style="color: #008080"&gt;21&lt;/span&gt;&amp;nbsp;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;22&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;23&lt;/span&gt;&amp;nbsp;&amp;lt;asp:Content&amp;nbsp;ID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PageTitleInTitleArea&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;ContentPlaceHolderID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PlaceHolderPageTitleInTitleArea&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;24&lt;/span&gt;&amp;nbsp;我的应用程序页asdfasd&amp;nbsp;asdf&lt;br /&gt;&lt;span style="color: #008080"&gt;25&lt;/span&gt;&amp;nbsp;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;26&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;27&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;28&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;29&lt;/span&gt;&amp;nbsp;&amp;lt;asp:Content&amp;nbsp;ContentPlaceHolderID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PlaceHolderPageImage&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;30&lt;/span&gt;&amp;nbsp;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;31&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;32&lt;/span&gt;&amp;nbsp;&amp;lt;asp:Content&amp;nbsp;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;ContentPlaceHolderID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PlaceHolderPageDescription&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;33&lt;/span&gt;&amp;nbsp;&amp;lt;/asp:Content&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;34&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;35&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;36&lt;/span&gt;&amp;nbsp;&amp;lt;asp:Content&amp;nbsp;ContentPlaceHolderID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;PlaceHolderLeftNavBar&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;37&lt;/span&gt;&amp;nbsp;&amp;nbsp;xvzxcv&amp;nbsp;asdfasdf&amp;nbsp;asdfa&amp;nbsp;dfasfdsadfsadfsafas&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="line-height: normal; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;&lt;span style="color: #008080"&gt;38&lt;/span&gt;&amp;nbsp;&amp;lt;/asp:Content&amp;gt;&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt; &lt;div class="subSection"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;sharePoint Ribbon控件代码（本例未使用，可参考MSDN）&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="line-height: normal; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;&amp;lt;div&amp;nbsp;id=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;s4-ribbonrow&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;s4-pr&amp;nbsp;s4-ribbonrowhidetitle&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt; &lt;div class="subSection"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;nbsp;id=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;s4-ribboncont&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SharePoint:SPRibbon&amp;nbsp;ID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;SPRibbon1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PlaceholderElementId=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;RibbonContainer&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CssFile=&lt;span style="color: #800000"&gt;""&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SharePoint:SPRibbonPeripheralContent&amp;nbsp;ID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;SPRibbonPeripheralContent1&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;Location=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;TabRowLeft&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;CssClass=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;ms-siteactionscontainer&amp;nbsp;s4-notdlg&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;%--&amp;nbsp;Insert&amp;nbsp;the&amp;nbsp;Site&amp;nbsp;Actions&amp;nbsp;Menu&amp;nbsp;Here&amp;nbsp;--%&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/SharePoint:SPRibbonPeripheralContent&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;%--&amp;nbsp;Insert&amp;nbsp;the&amp;nbsp;Global&amp;nbsp;Navigation&amp;nbsp;Here&amp;nbsp;--%&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;SharePoint:SPRibbonPeripheralContent&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;runat=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;server&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Location=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;TabRowRight&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ID=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;RibbonTabRowRight&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CssClass=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;s4-trc-container&amp;nbsp;s4-notdlg&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;%--&amp;nbsp;Insert&amp;nbsp;the&amp;nbsp;Top-Right&amp;nbsp;Corner&amp;nbsp;Controls&amp;nbsp;Here&amp;nbsp;--%&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/SharePoint:SPRibbonPeripheralContent&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/SharePoint:SPRibbon&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;div&amp;nbsp;id=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;notificationArea&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;=&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;s4-noti&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;%--&amp;nbsp;Notifications&amp;nbsp;will&amp;nbsp;appear&amp;nbsp;&lt;span style="color: #0000ff"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;&amp;nbsp;div&amp;nbsp;element.&amp;nbsp;--%&amp;gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;C#&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="line-height: normal; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;1、继承：LayoutsPageBase&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2、重写：&amp;nbsp;&lt;/p&gt;&lt;div style="display: inline-block"&gt;&lt;/div&gt;&lt;span style="line-height: normal; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;&lt;span style="font-family: 'Courier New'; color: #0000ff"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: #0000ff"&gt;void&lt;/span&gt;&amp;nbsp;&amp;nbsp;OnPreRender(EventArgs&amp;nbsp;e)&lt;/span&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;div class="subSection"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;span style="line-height: normal; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System;&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt; &lt;div class="subSection"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.ComponentModel;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.UI;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.UI.WebControls;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.UI.WebControls.WebParts;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;Microsoft.SharePoint;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;8&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;Microsoft.SharePoint.WebControls;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;9&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt;&amp;nbsp;SpRibbon2&lt;br /&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;partial&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&amp;nbsp;ApplicationPage1&amp;nbsp;:&amp;nbsp;LayoutsPageBase&lt;br /&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&amp;nbsp;Page_Load(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&amp;nbsp;sender,&amp;nbsp;EventArgs&amp;nbsp;e)&lt;br /&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&amp;nbsp;&amp;nbsp;OnPreRender(EventArgs&amp;nbsp;e)&lt;br /&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;span style="color: #008080"&gt;20&lt;/span&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 style="color: #0000ff"&gt;try&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;21&lt;/span&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;br /&gt;&lt;span style="color: #008080"&gt;22&lt;/span&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;SPRibbon&amp;nbsp;ribbon&amp;nbsp;=&amp;nbsp;SPRibbon.GetCurrent(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080"&gt;23&lt;/span&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;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(ribbon&amp;nbsp;!=&amp;nbsp;&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: #008080"&gt;24&lt;/span&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;{&lt;br /&gt;&lt;span style="color: #008080"&gt;25&lt;/span&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;ScriptLink.RegisterScriptAfterUI(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;SP.Ribbon.js&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;false&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080"&gt;26&lt;/span&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;ribbon.CommandUIVisible&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;&lt;br /&gt;&lt;span style="color: #008080"&gt;27&lt;/span&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;ribbon.MakeTabAvailable(&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Ribbon.Read&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080"&gt;28&lt;/span&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;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;加载及激活自定义上下文Tab页。&lt;/span&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;29&lt;/span&gt;&amp;nbsp;&lt;span style="color: #008000"&gt;&lt;/span&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;ribbon.MakeTabAvailable(&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Ribbon.PropertyChangerTab&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;);&lt;br /&gt;&lt;span style="color: #008080"&gt;30&lt;/span&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;ribbon.MakeContextualGroupInitiallyVisible(&lt;span style="color: #800000"&gt;"&lt;/span&gt;&lt;span style="color: #800000"&gt;Ribbon.WebPartContextualTabGroup&lt;/span&gt;&lt;span style="color: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.Empty);&lt;br /&gt;&lt;span style="color: #008080"&gt;31&lt;/span&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;}&lt;br /&gt;&lt;span style="color: #008080"&gt;32&lt;/span&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;&lt;span style="color: #0000ff"&gt;base&lt;/span&gt;.OnPreLoad(e);&lt;br /&gt;&lt;span style="color: #008080"&gt;33&lt;/span&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;br /&gt;&lt;span style="color: #008080"&gt;34&lt;/span&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 style="color: #0000ff"&gt;catch&lt;/span&gt;&amp;nbsp;(Exception&amp;nbsp;ex)&lt;br /&gt;&lt;span style="color: #008080"&gt;35&lt;/span&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;br /&gt;&lt;span style="color: #008080"&gt;36&lt;/span&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;&lt;span style="color: #0000ff"&gt;throw&lt;/span&gt;&amp;nbsp;ex;&lt;br /&gt;&lt;span style="color: #008080"&gt;37&lt;/span&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;br /&gt;&lt;span style="color: #008080"&gt;38&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080"&gt;39&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;span style="color: #008080"&gt;40&lt;/span&gt;&amp;nbsp;}&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;四、&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; color: #3f529c; font-size: 16px; font-weight: bold" class="Apple-style-span"&gt;创建服务器功能区组件自定义项&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; color: #3f529c; font-size: 16px; font-weight: bold" class="Apple-style-span"&gt;&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;创建一个上下文选项卡组，一个带两个组的选项卡和几个控件。详细结构可参考：&lt;/span&gt;Microsoft Shared\Web Server Extensions\14\TEMPLATE\GLOBAL\XML\CMDUI.XML。&lt;/p&gt;&lt;p&gt;feature.xml&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;span style="line-height: 16px; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;&lt;span style="color: #008080"&gt;1&lt;/span&gt;&amp;nbsp;&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&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #008080"&gt;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Feature&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="SPRibbon2&amp;nbsp;Feature"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;3&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Scope&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Web"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;4&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="94269D73-8DF2-4515-B501-4C2111FF9DAF"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;5&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ElementManifests&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;7&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ElementManifest&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Location&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="element.xml"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;8&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ElementManifests&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;9&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Feature&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Element.xml&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;1&lt;/span&gt;&amp;nbsp;&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"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;2&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Elements&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="http://schemas.microsoft.com/sharepoint/"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;3&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;CustomAction&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="WebPartContextualTabs"&lt;/span&gt;&lt;span style="color: #ff0000"&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: #ff0000"&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;Location&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="CommandUI.Ribbon"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;5&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIExtension&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;6&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;7&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIDefinition&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Location&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.ContextualTabs._children"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;&amp;nbsp;8&lt;/span&gt;&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;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;ContextualGroup&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.WebPartContextualTabGroup"&lt;/span&gt;&lt;span style="color: #ff0000"&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: #ff0000"&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;ContextualGroupId&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="WebPartContextualTab"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbonized&amp;nbsp;Web&amp;nbsp;Part&amp;nbsp;Tools"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Sequence&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="150"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Color&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Green"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Command&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="WebPartContextualTab.OnEnableContextualTab"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;14&lt;/span&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 style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Tab&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Tools"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Sequence&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="501"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;17&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Scaling&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.Scaling"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;18&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MaxSize&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.MaxSize"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;GroupId&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PropertyGroup"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;20&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Size&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="LargeLarge"&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;br /&gt;&lt;span style="color: #008080"&gt;21&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;MaxSize&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.MaxSize"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;22&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;GroupId&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PostBackGroup"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;23&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Size&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="LargeLarge"&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;br /&gt;&lt;span style="color: #008080"&gt;24&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Scaling&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;25&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Groups&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.Groups"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;26&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Group&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PropertyGroup"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;27&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Edit"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;28&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Description&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="General&amp;nbsp;Web&amp;nbsp;Part&amp;nbsp;properties."&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;29&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Sequence&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="15"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;30&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Template&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.Templates.Flexible2"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;31&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Controls&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PropertyGroup.Controls"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;32&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PropertyGroup.GeneralDialogButton"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;33&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;LabelText&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="General&amp;nbsp;Properties"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;34&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;TemplateAlias&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="o1"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;35&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Sequence&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="15"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;36&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Image16by16&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/_layouts/Images/WebPartRibbonContextualTab/16x16Placeholder.png"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;37&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Image32by32&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/_layouts/Images/WebPartRibbonContextualTab/32x32Placeholder.png"&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;br /&gt;&lt;span style="color: #008080"&gt;38&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PropertyGroup.UXDialogButton"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;39&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;LabelText&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Display&amp;nbsp;Properties"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;40&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;TemplateAlias&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="o2"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;41&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Sequence&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="17"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;42&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Image16by16&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/_layouts/Images/WebPartRibbonContextualTab/16x16Placeholder.png"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;43&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Image32by32&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/_layouts/Images/WebPartRibbonContextualTab/32x32Placeholder.png"&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;br /&gt;&lt;span style="color: #008080"&gt;44&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Controls&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;45&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Group&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;46&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Group&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PostBackGroup"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;47&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="PostBack"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;48&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Sequence&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="25"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;49&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Template&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.Templates.Flexible2"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;50&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Controls&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PropertyGroup.Controls"&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;51&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Button&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Ribbon.PropertyChangerTab.PropertyGroup.GeneralDialogButton"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;52&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;LabelText&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="Write&amp;nbsp;to&amp;nbsp;Web&amp;nbsp;Part"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;53&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Command&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="WebPartContextualTabs.OnPostback"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;54&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;TemplateAlias&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="o1"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;55&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Sequence&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="15"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;56&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Image16by16&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/_layouts/Images/WebPartRibbonContextualTab/16x16Placeholder.png"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;57&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;Image32by32&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="/_layouts/Images/WebPartRibbonContextualTab/32x32Placeholder.png"&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;br /&gt;&lt;span style="color: #008080"&gt;58&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Controls&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;59&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Group&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;60&lt;/span&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;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Groups&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;61&lt;/span&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 style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Tab&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;62&lt;/span&gt;&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;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;ContextualGroup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;63&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIDefinition&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;64&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIDefinitions&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;65&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;66&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIHandlers&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;67&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIHandler&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Command&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="WebPartContextualTab.OnEnableContextualTab"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;68&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;CommandAction&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=""&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;69&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;EnabledScript&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="return&amp;nbsp;true;"&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;br /&gt;&lt;span style="color: #008080"&gt;70&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIHandler&amp;nbsp;&lt;/span&gt;&lt;span style="color: #ff0000"&gt;Command&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="WebPartContextualTabs.OnPostback"&lt;/span&gt;&lt;span style="color: #ff0000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008080"&gt;71&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff0000"&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;CommandAction&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="javascript:__doPostBack('RibbonizedWebPartPostback','');"&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;br /&gt;&lt;span style="color: #008080"&gt;72&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIHandlers&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;73&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #008080"&gt;74&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;CommandUIExtension&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008080"&gt;75&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;CustomAction&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="line-height: 16px; background-color: #f5f5f5; font-family: 'Courier New'; font-size: 13px" class="Apple-style-span"&gt;&lt;span style="color: #008080"&gt;76&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Elements&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;h4 style="margin-top: 13px; font-family: 'Segoe UI', Verdana, Arial; margin-bottom: 7px; color: #3f529c; font-size: 1em; font-weight: bold" class="subHeading"&gt;五、部署&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;feature部署：拷贝feature.xml和Element.xml文件到SharePoint目录下：&lt;/p&gt;&lt;/span&gt;&lt;p&gt;xcopy ..\Features\*.xml "X:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\FEATURES\SpRibbon2\" /y&lt;/p&gt;&lt;p&gt;ASPX文件部署：&lt;/p&gt;&lt;div&gt;&lt;div&gt;xcopy ..\ApplicationPage1.* &amp;nbsp;"X:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\SpRibbon2\" /y&lt;/div&gt;&lt;p&gt;DLL文件部署：&lt;/p&gt;&lt;p&gt;xcopy SpRibbon2.dll "C:\inetpub\wwwroot\wss\VirtualDirectories\80\bin\" /y&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;/span&gt;&lt;/p&gt;&lt;h4 style="margin-top: 13px; font-family: 'Segoe UI', Verdana, Arial; margin-bottom: 7px; color: #3f529c; font-size: 1em; font-weight: bold" class="subHeading"&gt;六、Feature功能安装和激活&amp;nbsp;&amp;nbsp; 【2011-12-15补充】&lt;/strong&gt;&lt;/p&gt;&lt;p class="subHeading"&gt;打开"Visual Studio 命令提示(2010)"工具，定位到&amp;#8220;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN&amp;#8221;。&lt;/p&gt;&lt;p class="subHeading"&gt;1、安装功能：&lt;/p&gt;&lt;p class="subHeading"&gt;stsadm -o installfeature -name SpRibbon2 -url &lt;a href="http://localhost:80"&gt;http://localhost:80&lt;/a&gt;&lt;/p&gt;&lt;p class="subHeading"&gt;2、激活功能&lt;/p&gt;&lt;p class="subHeading"&gt;stsadm -o activatefeature -name SpRibbon2 -url &lt;a href="http://localhost/"&gt;http://localhost/&lt;/a&gt;&lt;/p&gt;&lt;h4 style="margin-top: 13px; font-family: 'Segoe UI', Verdana, Arial; margin-bottom: 7px; color: #3f529c; font-size: 1em; font-weight: bold" class="subHeading"&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;h4 style="margin-top: 13px; font-family: 'Segoe UI', Verdana, Arial; margin-bottom: 7px; color: #3f529c; font-size: 1em; font-weight: bold" class="subHeading"&gt;七、Sharepoint测试&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;p&gt;&amp;nbsp;添加链接&lt;/p&gt;&lt;/span&gt;&lt;div&gt;&lt;/div&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;p&gt;&amp;nbsp;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/leewenjie/Sharepoint/1.png" width="877" height="471" /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="line-height: normal; font-family: 'Segoe UI', Verdana, Arial; font-size: 16px" class="Apple-style-span"&gt;&lt;div class="subSection"&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/leewenjie/Sharepoint/2.png" width="493" height="167" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/leewenjie/Sharepoint/3.png" width="541" height="414" /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&amp;nbsp;更详细的操作详见microsoft MSDN&lt;/p&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2253636.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/18/2253636.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/11/17/2252622.html</id><title type="text">【原创】sharepoint排错</title><summary type="text">sharepoint运行出错的错误的提示，往往十分友好，几乎无法告诉我们到底哪里错。一般需要查看运行C:\ProgramFiles\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS以前查看长篇的日志很痛苦。最近发现，一般通过搜索expectionerror这两个词，就能快速定位到错误的相关段落。</summary><published>2011-11-17T06:09:00Z</published><updated>2011-11-17T06:09:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/17/2252622.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/17/2252622.html"/><content type="html">&lt;span class="Apple-style-span" style="color: #333333; font-family: Simsun; font-size: 14px; line-height: 26px; background-color: #ffffff; "&gt;&lt;p&gt;sharepo&lt;a href="http://www.haogongju.net/tag/in" target="_blank" title="in" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;in&lt;/a&gt;t运行出错的错误的提示，往往十分友好，几乎无法告诉&lt;a href="http://www.haogongju.net/tag/%e6%88%91%e4%bb%ac" target="_blank" title="我们" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;我们&lt;/a&gt;到底哪里错。&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/p&gt;&lt;p&gt;一般需要查看运行&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/p&gt;&lt;p&gt;C:\Program&amp;nbsp;&lt;a href="http://www.haogongju.net/tag/Files" target="_blank" title="Files" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;Files&lt;/a&gt;\Common Files\Microsoft Shared\Web Server Extensions\14\LOGS&lt;/p&gt;&lt;p&gt;以前查看长篇的日志很痛苦。&lt;/p&gt;&lt;p&gt;最近发现，一般通过&lt;a href="http://www.haogongju.net/tag/%e6%90%9c%e7%b4%a2" target="_blank" title="搜索" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;搜索&lt;/a&gt;&lt;/p&gt;&lt;div style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;expection&lt;/div&gt;error&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;这两个词，就能快速&lt;a href="http://www.haogongju.net/tag/%e5%ae%9a%e4%bd%8d" target="_blank" title="定位" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;定位&lt;/a&gt;到错误的相关段落。&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2252622.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/17/2252622.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/LeeWenjie/archive/2011/11/17/2252614.html</id><title type="text">【转载】Sharepoint开发问题归纳</title><summary type="text">1、自己的webpart报错：AllowPartiallyTrustedCallersAttribute需要在AssemblyInfo.cs中加入[assembly:AllowPartiallyTrustedCallers] (经常会忘了加)2、用普通用户执行webpart时可能权限不够，需要提升权限当将webpart部署到站点后，如果用的是管理员的帐户来运行，则成功；如果用一般用户，则跳转到用户无权访问的页面。通过查找资料，终于找出了问题所在：如果用户没有“管理列表”的权限，则无法更新List、View、ListItem等。给一般用户“管理列表”的权限显然是不可行的，那如何提升用户的权限呢？</summary><published>2011-11-17T06:05:00Z</published><updated>2011-11-17T06:05:00Z</updated><author><name>LeeWenjie</name><uri>http://www.cnblogs.com/LeeWenjie/</uri></author><link rel="alternate" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/17/2252614.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/17/2252614.html"/><content type="html">&lt;span style="color: #333333; font-family: Simsun; font-size: 14px; line-height: 26px; "&gt;1、自己的webpart报错：&lt;a href="http://www.haogongju.net/tag/Allow" target="_blank" title="Allow" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;Allow&lt;/a&gt;PartiallyTrustedCallersAttribute&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="color: #333333; font-family: Simsun; font-size: 14px; line-height: 26px; "&gt;需要在AssemblyInfo.cs中加入[assembly:AllowPartiallyTrustedCallers]&amp;nbsp; (经常会忘了加)&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="display: inline-block; "&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #333333; font-family: Simsun; font-size: 14px; line-height: 26px; background-color: #ffffff; "&gt;&lt;p&gt;2、用普通用户执行webpart时可能权限不够，需要&lt;a href="http://www.haogongju.net/tag/%E6%8F%90%E5%8D%87" target="_blank" title="提升" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;提升&lt;/a&gt;权限&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;当将webpart部署到站点后，如果用的是管理员的帐户来运行，则&lt;a href="http://www.haogongju.net/tag/%E6%88%90%E5%8A%9F" target="_blank" title="成功" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;成功&lt;/a&gt;；如果用一般用户，则跳转到用户无权&lt;a href="http://www.haogongju.net/tag/%E8%AE%BF%E9%97%AE" target="_blank" title="访问" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;访问&lt;/a&gt;的&lt;a href="http://www.haogongju.net/tag/%E9%A1%B5%E9%9D%A2" target="_blank" title="页面" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;页面&lt;/a&gt;。通过查找&lt;a href="http://www.haogongju.net/tag/%E8%B5%84%E6%96%99" target="_blank" title="资料" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;资料&lt;/a&gt;，终于找出了&lt;a href="http://www.haogongju.net/tag/%E9%97%AE%E9%A2%98" target="_blank" title="问题" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;问题&lt;/a&gt;所在：如果用户没有&amp;#8220;管理列表&amp;#8221;的权限，则无法&lt;a href="http://www.haogongju.net/tag/%E6%9B%B4%E6%96%B0" target="_blank" title="更新" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;更新&lt;/a&gt;List、View、ListItem等。给一般用户&amp;#8220;管理列表&amp;#8221;的权限显然是不可行的，那如何提升用户的权限呢？&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;在wss 3.0中提供了一种更快捷的&lt;a href="http://www.haogongju.net/tag/%E6%96%B9%E6%B3%95" target="_blank" title="方法" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;方法&lt;/a&gt;，采用&lt;strong style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;RunWithElevatedPrivileges&lt;/strong&gt;&amp;nbsp;，如下：&lt;/p&gt;&lt;p&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" height="16" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;Code&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;SPSecurity.RunWithElevatedPrivileges(delegate()&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;{&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&amp;nbsp;using (SP&lt;a href="http://www.haogongju.net/tag/site" target="_blank" title="Site" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;Site&lt;/a&gt;&amp;nbsp;site = new SPSite(SPContext.Current.Site.ID))&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&amp;nbsp;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;{&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&amp;nbsp;using (SPWeb thisWeb = site.OpenWeb(SPContext.Current.Web.ID))&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&amp;nbsp;&lt;img alt="" src="http://www.cnblogs.com/Images/dot.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;{&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; thisWeb.AllowUnsafeUpdates = true;&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; SPList list = thisWeb.Lists["任务"];&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; spView = list.DefaultView;&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&amp;nbsp;string&amp;nbsp;&lt;a href="http://www.haogongju.net/tag/query" target="_blank" title="query" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;query&lt;/a&gt;&amp;nbsp;= "&amp;lt;Where&amp;gt;&amp;lt;Eq&amp;gt;&amp;lt;FieldRef Name=\"Status\"/&amp;gt;&amp;lt;Value Type=\"Text\"&amp;gt;" +&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dropDownList.SelectedValue + "&amp;lt;/Value&amp;gt;&amp;lt;/Eq&amp;gt;&amp;lt;/Where&amp;gt;";&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; spView.Query = query;&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&amp;nbsp;//一般用户没有Update()的权限，所以在这里提升用户权限&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; spView.Update();&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;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; thisWeb.Dispose();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; site.Dispose();&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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 style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&amp;nbsp;}&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;);&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&gt;&lt;/p&gt;&lt;p&gt;3、在webpart中取得当前&lt;a href="http://www.haogongju.net/tag/%E7%99%BB%E5%BD%95%E7%94%A8%E6%88%B7" target="_blank" title="登录用户" style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; "&gt;登录用户&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; SPWeb web = SPControl.GetContextWeb(Context);&amp;nbsp;&lt;br style="color: #333333; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; " /&gt;&lt;img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" style="color: #333333; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-width: initial; border-color: initial; max-width: 600px; " /&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; Label1.Text = web.CurrentUser.Name;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/LeeWenjie/aggbug/2252614.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/LeeWenjie/archive/2011/11/17/2252614.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
