<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_.NET 技术</title><subtitle type="text">WF,WCF,Software Factory,Design Pattern,etc.</subtitle><id>http://feed.cnblogs.com/blog/u/36660/rss</id><updated>2010-06-07T15:19:10Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/36660/rss"/><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2010/06/07/1739343.html</id><title type="text">SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列（三）</title><summary type="text">关于站点的介绍，大家可以参考本系列的第一篇文章。首先描述一下问题：　　1.JavaScript 问题　　　　其实这不是一个SharePoint的问题，只是一个编程上的问题。　　　　前面说过了，BI站点有一个Filter的WebPart来过滤用户的Profile数据，给页面上其它的WebPart，报表使用。这个WebPart是用C#写的。用JavaScrip把读到的Profile信息显示到DropD...</summary><published>2010-06-07T15:19:00Z</published><updated>2010-06-07T15:19:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2010/06/07/1739343.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2010/06/07/1739343.html"/><content type="html">&lt;p&gt;关于站点的介绍，大家可以参考本系列的第一篇文章。&lt;br /&gt;首先描述一下问题：&lt;br /&gt;　　1.JavaScript 问题&lt;br /&gt;　　　　&amp;nbsp;其实这不是一个SharePoint的问题，只是一个编程上的问题。&lt;br /&gt;&amp;nbsp;　　　　前面说过了，BI站点有一个Filter的WebPart来过滤用户的Profile数据，给页面上其它的WebPart，报表使用。这个WebPart是用C#写的。用JavaScrip把读到的Profile信息显示到DropDown List或者一个树中。由于我们升级过程中重新做了MasterPage，导致JavaScript显示树控件的时候定位出现差错，所以要修改JavaScript。但是由于这个WebPart的开发者把JavaScript内嵌到C#的Code里的，所以要修改WebPart的Code。重新编译后再部署到服务器上。&lt;br /&gt;&amp;nbsp;由于客户对在服务器上部署DLL的策略非常严格，要CodeReview，测试等等。所以导致一个小小的JavaScript的修改会变的很麻烦。浪费了很多的时间和精力。&lt;br /&gt;&amp;nbsp;　　　　所以在此提醒大家，在写Code的时候，尽量把Server端代码和Client端代码分开。例如JavaScript代码，没必要编译到DLL上。可以放到Site的Library中。这样就避免了不必要的麻烦。&lt;br /&gt;　　2.Reporting Service 展现方式问题&lt;br /&gt;&amp;nbsp;　　　　这个是一个SharePoint/Reporting Service问题。&lt;br /&gt;&amp;nbsp;　　　　BI站点有很多的Reporting Service的报表。Reporting Service是用的SharePoint集成方式。所有报表都存放在SharePoint的Document Library上。同过数据源文件连到数据库中，数据源即有关系数据库，也有Cube。报表的呈现方式是在Content Edit WebPart上加一个iframe，然后把报表的URL给它。这个方式在SharePoint 2007上运行一直很好。但是在2010上就出现了一个问题。&lt;br /&gt;&amp;nbsp;　　　　报表的URL类似这样：&lt;a href="http://sitename/_layouts/ReportServer/RSViewerPage.aspx" target="_blank"&gt;http://sitename/_layouts/ReportServer/RSViewerPage.aspx&lt;/a&gt;?&lt;/p&gt;&#xD;
&lt;p&gt;rv:ParamMode=Hidden&amp;amp;rv:Toolbar=None&amp;amp;rv:HeaderArea=None&amp;amp;rv:RelativeReportUrl=/DocumentsLibraryName/Report&lt;/p&gt;&#xD;
&lt;p&gt;Name.rdl&amp;amp;rp:Parameter1=value1&amp;amp;rp:Parameter2=value2.但是在SharePoint2010里，Reporting Service报表的Render方式发生了变化。SharePoint 2007中Reporting Service默认是同步Render的，而在SharePoint2010中是异步Render的。所以报表会显示不出来。解决方法是加上AsyncRender=False这个参数。即:http://sitename/_layouts/ReportServer/RSViewerPage.aspx?&lt;/p&gt;&#xD;
&lt;p&gt;rv:ParamMode=Hidden&amp;amp;rv:AsyncRender=False&amp;amp;rv:Toolbar=None&amp;amp;rv:HeaderArea=None&amp;amp;rv:RelativeReportUrl=/DocumentsLibraryName/Report&lt;/p&gt;&#xD;
&lt;p&gt;Name.rdl&amp;amp;rp:Parameter1=value1&amp;amp;rp:Parameter2=value2.但是这样也有一个问题，就是如果报表里有Drill Down操作的话，也会出现报表无法Render的问题，还没有比较好的办法解决。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;/p&gt;&#xD;
&lt;p&gt;暂时只想到这里，肯定有遗漏，以后再补吧，抱歉！&lt;/p&gt;&lt;img src="http://www.cnblogs.com/zhaojunqi/aggbug/1739343.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhaojunqi/archive/2010/06/07/1739343.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2010/05/24/1739342.html</id><title type="text">SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列（二）:升级方法/步骤</title><summary type="text">在开始将各个站点的细节之前，首先说一下我们升级的方法。我们采用的是Content DB直接升级的方法。共分几个步骤。　　1.备份Production的Content DB.并恢复到另一台数据库服务器上。这个是SQL层面的操作，没什么可说的。唯一遇到的问题是数据库文件实在太大了，Log也很大。要注意事先调整一下数据库文件的最大值，SQL层面问题，略过。　　2.创建新的SharePoint 2010环...</summary><published>2010-05-24T08:18:00Z</published><updated>2010-05-24T08:18:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2010/05/24/1739342.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2010/05/24/1739342.html"/><content type="html">在开始将各个站点的细节之前，首先说一下我们升级的方法。我们采用的是Content DB直接升级的方法。共分几个步骤。&lt;br /&gt;　　1.备份Production的Content DB.并恢复到另一台数据库服务器上。这个是SQL层面的操作，没什么可说的。唯一遇到的问题是数据库文件实在太大了，Log也很大。要注意事先调整一下数据库文件的最大值，SQL层面问题，略过。&lt;br /&gt;　　2.创建新的SharePoint 2010环境，并创建对应的Web Application。&lt;br /&gt;　　3.部署所有Custom Solution到Farm或Web Application上。即所有托管代码的DLL等等。&lt;br /&gt;　　4.Attach Content DB到Web Application上（执行stsadm - o addcontentdb 命令）。这个命令会帮助我们自动升级SharePoint 2007的Content DB到SharePoint 2010的格式。可以说它帮我们做了绝大部分的事情，当然也会带来一些小麻烦。呵呵。&lt;br /&gt;　　5.如果没有意外，你将会看到升级后的站点。但是看上去站点还是SharePoint 2007的老样子，因为还没有升级UI。去Site Settings页面里面找到&amp;#8220;Visual Upgrade&amp;#8221;,打开之后，点&amp;#8220;Update All Sites&amp;#8221;，稍等一会儿，UI升级就完成了！&lt;br /&gt;　　6.如果你在2007上没有对Master Page做过定制化的话，你会看到SharePoint 2010默认的UI了（默认是使用v4.master作为Master Page）。没错，是非常丑的！哈哈。如果你在07的时候对Master Page做过定制，或者更换过Master Page的话，你会遇到一点儿小麻烦。因为SharePoint 2010对Master Page做了升级，可能有些Content Place Holder不见了，或者增加了新的，这时候需要你把他们找出来，Troulb Shooting一下吧！&lt;br /&gt;　　7.我想大部分的人看到SharePoing 2010的默认UI，都会有一种自己创建一个自己的Master Page的冲动！呵呵。没错，去创建自己的UI吧。你可以以v4.master作为蓝本，进行自己的创作！添加，删除，一些Content Place Holder，添加自己的HTML Tag，用CSS进行美化。一切取决于你！&lt;br /&gt;　　8.这时去看看你的站点吧，你会发现很多东西都运行不正常了！没关系，去页面里一点一点地修复吧！&lt;br /&gt;　　9.你会发现，一些你以前创建的Custom Solution，例如你用C#写的Web Part，还有一些Timer Job之类的东东，都不好好工作了！没关系，这是我们工作的一部分，去修复它们吧！&lt;br /&gt;　　10.测试，发布！&lt;br /&gt;以上10个步骤是我们这次升级的主要流程。其实大部分的工作是6，7，8，9，10.如果你没有定制UI的话，6和7就省掉了。主要就是8和9，SharePoint的重大上级一定会导致有些东西不正常，例如Content Query Web Part，Data View Web Part之类，有可能数据出不来，数据格式有问题等等。然后就是一些依赖于SharePoint Feature的东东，也会失败，例如BDC，在SharePoint 2010里面被一个叫做BCS的东东代替了，先去哭一鼻子吧！然后回来哭丧着脸改你的Code吧！呵呵！&lt;br /&gt;最后就是测试比较痛苦，特别是UI上的Bug，如果你现在开始做升级的工作的话，还比较好，因为SharePoint 2010已经发布了，没有人会再改它，直到SP1，或SP2。所以你只需测试一次就可以了。但我们是在SharePoint没发布的时候就开始做了呀！一直做到发布，期间从1到10这些步骤，做了不下10次，累的吐血数次，每次数升！&lt;br /&gt;好，关于升级方法和步骤，就先写到这里，欢迎继续关注！  &lt;img src="http://www.cnblogs.com/zhaojunqi/aggbug/1739342.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhaojunqi/archive/2010/05/24/1739342.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2010/05/19/SharePoint2010Migration.html</id><title type="text">SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列（一）：项目背景</title><summary type="text">过去的八九个月，都在忙一个项目，升级SharePoint2007的站点到SharePoint2010，最近终于冲过最后一道防线，Relaese了！高兴，哈哈！在这漫长而艰苦的八九个月中，发生了各种各样的事情。各种困难，接踵而至，有技术的，有时间的，有人的，有沟通的，有各种各样的问题。所以有想法把它们整理一下，分享给更多的人。好，让我把记忆回到8个月之前，开始回顾这段难忘的旅程吧...应该是09年的...</summary><published>2010-05-19T08:39:00Z</published><updated>2010-05-19T08:39:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2010/05/19/SharePoint2010Migration.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2010/05/19/SharePoint2010Migration.html"/><content type="html">&lt;p&gt;过去的八九个月，都在忙一个项目，升级SharePoint2007的站点到SharePoint2010，最近终于冲过最后一道防线，Relaese了！高兴，哈哈！&lt;br /&gt;在这漫长而艰苦的八九个月中，发生了各种各样的事情。各种困难，接踵而至，有技术的，有时间的，有人的，有沟通的，有各种各样的问题。所以有想法把它们整理一下，分享给更多的人。&lt;br /&gt;好，让我把记忆回到8个月之前，开始回顾这段难忘的旅程吧...&lt;br /&gt;应该是09年的8月底，接到的这个项目，任务如下（请注意，那是SharePoint的Beta还没有发布哟！）：&lt;br /&gt;　　1.配置开发和测试环境&lt;br /&gt;　　2.升级4个站点到SharePoint 2010 beta1版，测试&lt;br /&gt;　　3.升级4个站点到SharePoint 2010 beta2版，测试&lt;br /&gt;　　4.最终升级到SharePoint2010 RTM版，测试，发布&lt;/p&gt;&#xD;
&lt;p&gt;这四个站点可是非常的&amp;#8220;恐怖&amp;#8221;，我来简单介绍一下：&lt;br /&gt;　　1.纯BI站点，这个站点倒是不大，有十几个页面吧，但每一个页面都显示了报表，这些报表分为几种&lt;br /&gt;&amp;nbsp;　　　　a.Reporting Service报表,这些报表会读取后台Cube中的数据.&lt;br /&gt;&amp;nbsp;　　　　b.SharePoint DataView Web Part报表,会读取外部Web Service的报表.&lt;br /&gt;&amp;nbsp;　　　　c.Dundas报表,主要是展示一些图表,也是读取Cube的数据.&lt;br /&gt;&amp;nbsp; 　　 这个站点还有两个地方需要特别说的:&lt;br /&gt;&amp;nbsp;　　　　a.客户开发了一个Custom的WebPart来管理用户的Profile,每个用户都拥有自己的Profile,而所有的报表会根据Profile来筛选数据.\&lt;br /&gt;&amp;nbsp;　　　　b.客户开发了一个Custom的WebPart来做Filter,即让用户可以在Profile的基础上进行筛选.&lt;br /&gt;　　2.管理者站点,这个站点也很小,但是带给我们的麻烦却最多.这个站点主要用来让管理者查看绩效考核之类的关键数据.这个站点主要有以下几个问题:&lt;br /&gt;&amp;nbsp;　　　　a.其中最核心的7项数据采用了WebPart + Excel Service + UDF的架构来实现.熟知在我们的迁移过程中Excel Service带给我们一些意想不到的麻烦.&lt;br /&gt;&amp;nbsp;　　　　b.而另外一个WebPart则通过BDC获取数据，因为SharePoint 2010对BDC做了很大的改动，导致我们的BDC也出现了很大的问题。&lt;br /&gt;　　3.另外的两个站点到没有什么出奇的地方，只是站点大的惊人！因为每个站点的Sub Site就有700多个。Content DB就有200G。除此之外，我们还遇到了以下几个问题：&lt;br /&gt;&amp;nbsp;　　　　a.很多的Silverlight&lt;br /&gt;&amp;nbsp;　　　　b.MasterPage和CSS的修改（这个是人为问题）&lt;br /&gt;这个四个站点各有各的特点，可谓涵盖了SharePoint的大多数应用，可谓千奇百怪，无所不包了。呵呵。&lt;br /&gt;由于项目比较大，时间跨度也比较长，所有一时不能记起所有细节，而且这些事情也不是 一次两次能说清楚的。所以这里先开一个头，以后再逐步补充，相信我会把它&lt;br /&gt;写成一个系列的。欢迎关注！&lt;/p&gt; &lt;img src="http://www.cnblogs.com/zhaojunqi/aggbug/1739244.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/zhaojunqi/archive/2010/05/19/SharePoint2010Migration.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2009/07/17/1525674.html</id><title type="text">《Microsoft ASP.NET and AJAX: Architecting Web Applications》书评</title><summary type="text">最近阅读了MSPress的书籍《Microsoft ASP.NET and AJAX: Architecting Web Applications》。 自己本来对AJAX不是很熟悉，只知道是用来做BS异步操作的，可以减少页面刷新。应用嘛，印象最深的就是GMail了，呵呵。这次有机会学习一下了，而且是AJAX和ASP.NET结合的。正好补课！ 此书一上来就讲了AJAX的基本原理，即DOM+XmlHt...</summary><published>2009-07-17T07:51:00Z</published><updated>2009-07-17T07:51:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2009/07/17/1525674.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2009/07/17/1525674.html"/></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2009/04/23/1442124.html</id><title type="text">使用VSTO复制部分Excel单元格(带格式），粘贴并保存到另一Excel文件中</title><summary type="text">最近使用VSTO做了一个小项目，其中有一个需求是将一个Excel工作表中的很多个带格式的区域，分别另存到单独的Excel文件中，要求保留源格式。 虽然需求很简单，但也有几个技术点要搞明白： 1.带格式复制，但只复制值和格式，不复制公式，引用，校验等等。 2.另存为Excel 第一个问题，开始我以为很简单，直接使用选择性粘贴，粘贴所有就行了，其实不是那么简单。开始使用如下代码：[代码] 但发现复制出...</summary><published>2009-04-23T07:13:00Z</published><updated>2009-04-23T07:13:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2009/04/23/1442124.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2009/04/23/1442124.html"/></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2009/04/16/1437405.html</id><title type="text">更新三个WF，Oslo，WCF讲座PPT</title><summary type="text">奥斯陆(Oslo)介绍初探Oslo_Dublin_和_WF4.0在.NET4.0中使用WF构建WCF服务</summary><published>2009-04-16T09:29:00Z</published><updated>2009-04-16T09:29:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2009/04/16/1437405.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2009/04/16/1437405.html"/></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2009/04/13/1434927.html</id><title type="text">三个WF讲座PPT</title><summary type="text">WF4.0初探在.NET4.0中使用WF构建WCF服务.zipWF服务3.5和4.0中的长运行工作流会话.zip</summary><published>2009-04-13T09:30:00Z</published><updated>2009-04-13T09:30:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2009/04/13/1434927.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2009/04/13/1434927.html"/></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2009/03/31/1426161.html</id><title type="text">(翻译）WF 应用场景指南: SharePoint 与工作流（上）</title><summary type="text">WF 场景应用指南: SharePoint 与工作流May 2008Michele Leroux Bustamante, IDesign 注：WF的&amp;#8220;Host&amp;#8221;术语比较难翻译，所以直接保留英文，防止产生歧义。Windows Workflow Foundation (WF 或者 Workflow) 是微软推出的构建基于工作流应用程序的技术平台。这个平台包括一系列设计，管理工作...</summary><published>2009-03-31T09:01:00Z</published><updated>2009-03-31T09:01:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2009/03/31/1426161.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2009/03/31/1426161.html"/></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2009/03/18/1415683.html</id><title type="text">(翻译）WF 应用场景指南: 展现流（Presentation Flow）</title><summary type="text">（翻译）WF 应用场景指南: 展现流（Presentation Flow）原文地址：http://msdn.microsoft.com/en-us/library/dd557867.aspxMichele Leroux Bustamante, IDesignZoiner Tejada, TejadaNETMarch 2009Windows Workflow Foundation (WF 或者 Wo...</summary><published>2009-03-18T09:38:00Z</published><updated>2009-03-18T09:38:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2009/03/18/1415683.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2009/03/18/1415683.html"/></entry><entry><id>http://www.cnblogs.com/zhaojunqi/archive/2009/03/11/1408837.html</id><title type="text">WF单元测试系列4：测试Workflow</title><summary type="text">前面几篇介绍了如何对Activity进行状态测试，行为测试，及Mock Object Framework的使用。当然，仅仅测试Activity是不够的，我们最终还要对整个Workflow进行测试。这一篇就为大家讲一下如何对Workflow进行测试。在上一篇的NewEmployeeWFLibrary工程里，添加一个名为StoreNewAcmeEmployee的顺序工作流。为工作流添加三个属性和一个事...</summary><published>2009-03-11T08:13:00Z</published><updated>2009-03-11T08:13:00Z</updated><author><name>zhaojunqi</name><uri>http://www.cnblogs.com/zhaojunqi/</uri></author><link rel="alternate" href="http://www.cnblogs.com/zhaojunqi/archive/2009/03/11/1408837.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/zhaojunqi/archive/2009/03/11/1408837.html"/></entry></feed>
