2010年6月7日

SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列(三)

关于站点的介绍,大家可以参考本系列的第一篇文章。
首先描述一下问题:
  1.JavaScript 问题
     其实这不是一个SharePoint的问题,只是一个编程上的问题。
     前面说过了,BI站点有一个Filter的WebPart来过滤用户的Profile数据,给页面上其它的WebPart,报表使用。这个WebPart是用C#写的。用JavaScrip把读到的Profile信息显示到DropDown List或者一个树中。由于我们升级过程中重新做了MasterPage,导致JavaScript显示树控件的时候定位出现差错,所以要修改JavaScript。但是由于这个WebPart的开发者把JavaScript内嵌到C#的Code里的,所以要修改WebPart的Code。重新编译后再部署到服务器上。
 由于客户对在服务器上部署DLL的策略非常严格,要CodeReview,测试等等。所以导致一个小小的JavaScript的修改会变的很麻烦。浪费了很多的时间和精力。
     所以在此提醒大家,在写Code的时候,尽量把Server端代码和Client端代码分开。例如JavaScript代码,没必要编译到DLL上。可以放到Site的Library中。这样就避免了不必要的麻烦。
  2.Reporting Service 展现方式问题
     这个是一个SharePoint/Reporting Service问题。
     BI站点有很多的Reporting Service的报表。Reporting Service是用的SharePoint集成方式。所有报表都存放在SharePoint的Document Library上。同过数据源文件连到数据库中,数据源即有关系数据库,也有Cube。报表的呈现方式是在Content Edit WebPart上加一个iframe,然后把报表的URL给它。这个方式在SharePoint 2007上运行一直很好。但是在2010上就出现了一个问题。
     报表的URL类似这样:http://sitename/_layouts/ReportServer/RSViewerPage.aspx?

rv:ParamMode=Hidden&rv:Toolbar=None&rv:HeaderArea=None&rv:RelativeReportUrl=/DocumentsLibraryName/Report

Name.rdl&rp:Parameter1=value1&rp:Parameter2=value2.但是在SharePoint2010里,Reporting Service报表的Render方式发生了变化。SharePoint 2007中Reporting Service默认是同步Render的,而在SharePoint2010中是异步Render的。所以报表会显示不出来。解决方法是加上AsyncRender=False这个参数。即:http://sitename/_layouts/ReportServer/RSViewerPage.aspx?

rv:ParamMode=Hidden&rv:AsyncRender=False&rv:Toolbar=None&rv:HeaderArea=None&rv:RelativeReportUrl=/DocumentsLibraryName/Report

Name.rdl&rp:Parameter1=value1&rp:Parameter2=value2.但是这样也有一个问题,就是如果报表里有Drill Down操作的话,也会出现报表无法Render的问题,还没有比较好的办法解决。

 

暂时只想到这里,肯定有遗漏,以后再补吧,抱歉!

posted @ 2010-06-07 23:19 zhaojunqi 阅读(772) 评论(0) 编辑

2010年5月24日

SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列(二):升级方法/步骤

在开始将各个站点的细节之前,首先说一下我们升级的方法。我们采用的是Content DB直接升级的方法。共分几个步骤。
  1.备份Production的Content DB.并恢复到另一台数据库服务器上。这个是SQL层面的操作,没什么可说的。唯一遇到的问题是数据库文件实在太大了,Log也很大。要注意事先调整一下数据库文件的最大值,SQL层面问题,略过。
  2.创建新的SharePoint 2010环境,并创建对应的Web Application。
  3.部署所有Custom Solution到Farm或Web Application上。即所有托管代码的DLL等等。
  4.Attach Content DB到Web Application上(执行stsadm - o addcontentdb 命令)。这个命令会帮助我们自动升级SharePoint 2007的Content DB到SharePoint 2010的格式。可以说它帮我们做了绝大部分的事情,当然也会带来一些小麻烦。呵呵。
  5.如果没有意外,你将会看到升级后的站点。但是看上去站点还是SharePoint 2007的老样子,因为还没有升级UI。去Site Settings页面里面找到“Visual Upgrade”,打开之后,点“Update All Sites”,稍等一会儿,UI升级就完成了!
  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一下吧!
  7.我想大部分的人看到SharePoing 2010的默认UI,都会有一种自己创建一个自己的Master Page的冲动!呵呵。没错,去创建自己的UI吧。你可以以v4.master作为蓝本,进行自己的创作!添加,删除,一些Content Place Holder,添加自己的HTML Tag,用CSS进行美化。一切取决于你!
  8.这时去看看你的站点吧,你会发现很多东西都运行不正常了!没关系,去页面里一点一点地修复吧!
  9.你会发现,一些你以前创建的Custom Solution,例如你用C#写的Web Part,还有一些Timer Job之类的东东,都不好好工作了!没关系,这是我们工作的一部分,去修复它们吧!
  10.测试,发布!
以上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吧!呵呵!
最后就是测试比较痛苦,特别是UI上的Bug,如果你现在开始做升级的工作的话,还比较好,因为SharePoint 2010已经发布了,没有人会再改它,直到SP1,或SP2。所以你只需测试一次就可以了。但我们是在SharePoint没发布的时候就开始做了呀!一直做到发布,期间从1到10这些步骤,做了不下10次,累的吐血数次,每次数升!
好,关于升级方法和步骤,就先写到这里,欢迎继续关注!

posted @ 2010-05-24 16:18 zhaojunqi 阅读(2114) 评论(2) 编辑

2010年5月19日

SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列(一):项目背景

摘要: 过去的八九个月,都在忙一个项目,升级SharePoint2007的站点到SharePoint2010,最近终于冲过最后一道防线,Relaese了!高兴,哈哈!在这漫长而艰苦的八九个月中,发生了各种各样的事情。各种困难,接踵而至,有技术的,有时间的,有人的,有沟通的,有各种各样的问题。所以有想法把它们整理一下,分享给更多的人。好,让我把记忆回到8个月之前,开始回顾这段难忘的旅程吧...应该是09年的...阅读全文

posted @ 2010-05-19 16:39 zhaojunqi 阅读(2060) 评论(14) 编辑

2009年7月17日

《Microsoft ASP.NET and AJAX: Architecting Web Applications》书评

      最近阅读了MSPress的书籍《Microsoft ASP.NET and AJAX: Architecting Web Applications》。
      自己本来对AJAX不是很熟悉,只知道是用来做BS异步操作的,可以减少页面刷新。应用嘛,印象最深的就是GMail了,呵呵。这次有机会学习一下了,而且是AJAX和ASP.NET结合的。正好补课!
      此书一上来就讲了AJAX的基本原理,即DOM+XmlHttpRequest对象。然后简单介绍了Microsoft AJAX Library和ASP.NET的Partial Rendering。
      接着从AJAX的架构开始,逐步展开。JavaScript Library,AJAX Design Patterns,Client Side Data Binding,最后从RIA的角度讲解了AJAX与Serverlight的关系等等。
      本书对ASP.NET与AJAX的关系,应用,结合做了很细致的描述,如果你是一个ASP.NET程序员的话,本书会对你的AJAX的应用有很大帮助!
下面列出大致目录:


1.The(Much Needed)Facelift for the Old Web
2.The Easy Way to AJAX
3.AJAX Architectures
4.A Better and Richer JavaScript
5.Javascript Libraries
6.AJAX Design Patterns
7.Client-Side Data Binding
8.Rich Internet Application

 

posted @ 2009-07-17 15:51 zhaojunqi 阅读(188) 评论(0) 编辑

2009年4月23日

使用VSTO复制部分Excel单元格(带格式),粘贴并保存到另一Excel文件中

     最近使用VSTO做了一个小项目,其中有一个需求是将一个Excel工作表中的很多个带格式的区域,分别另存到单独的Excel文件中,要求保留源格式。
     虽然需求很简单,但也有几个技术点要搞明白:
     1.带格式复制,但只复制值和格式,不复制公式,引用,校验等等。
     2.另存为Excel
     第一个问题,开始我以为很简单,直接使用选择性粘贴,粘贴所有就行了,其实不是那么简单。开始使用如下代码:

PasteSpecial

 

      但发现复制出来的只是所有的值,格式都未复制出来。于是对Microsoft.Office.Interop.Excel.XlPasteType进行研究,发现有十几个选项,逐个试验,发现单独使用任何一个枚举都不能满足我的要求。后来灵机一动,使用了两次复制解决问题,一次复制值,一次复制格式!代码如下:

PasteSpecial2

 

      再说第二个问题,也不难,主要是不同的对象模型使用的保存方法不同(前面的wb对象是Microsoft.Office.Interop.Excel.Workbook对象,之前实验过使用Microsoft.Office.Interop.Excel.ApplicationClass),经试验,Workbook对象的SaveCopyAs方法非常理想,因为它不会弹出任何对话框,自动覆盖之前存在的同名文件。
      下面列出完整代码:  

CommandBarButton

 

Utility.SelectAndCopyRange方法是复制指定区域,代码很简单,核心代码就一句:

Globals.Sheet1.Range[beginCell+beginCellNamber.ToString(), strPasteRange].Copy

(Type.Missing);

 

Utility.CreatAndPaste方法是另存为的:

 

CreatAndPaste

 

posted @ 2009-04-23 15:13 zhaojunqi 阅读(2250) 评论(18) 编辑

2009年4月16日

更新三个WF,Oslo,WCF讲座PPT

摘要: 奥斯陆(Oslo)介绍初探Oslo_Dublin_和_WF4.0在.NET4.0中使用WF构建WCF服务阅读全文

posted @ 2009-04-16 17:29 zhaojunqi 阅读(460) 评论(3) 编辑

2009年4月13日

三个WF讲座PPT

摘要: WF4.0初探在.NET4.0中使用WF构建WCF服务.zipWF服务3.5和4.0中的长运行工作流会话.zip阅读全文

posted @ 2009-04-13 17:30 zhaojunqi 阅读(411) 评论(5) 编辑

2009年3月31日

(翻译)WF 应用场景指南: SharePoint 与工作流(上)

摘要: WF 场景应用指南: SharePoint 与工作流May 2008Michele Leroux Bustamante, IDesign 注:WF的“Host”术语比较难翻译,所以直接保留英文,防止产生歧义。Windows Workflow Foundation (WF 或者 Workflow) 是微软推出的构建基于工作流应用程序的技术平台。这个平台包括一系列设计,管理工作...阅读全文

posted @ 2009-03-31 17:01 zhaojunqi 阅读(2218) 评论(3) 编辑

2009年3月18日

(翻译)WF 应用场景指南: 展现流(Presentation Flow)

摘要: (翻译)WF 应用场景指南: 展现流(Presentation Flow)原文地址:http://msdn.microsoft.com/en-us/library/dd557867.aspxMichele Leroux Bustamante, IDesignZoiner Tejada, TejadaNETMarch 2009Windows Workflow Foundation (WF 或者 Wo...阅读全文

posted @ 2009-03-18 17:38 zhaojunqi 阅读(456) 评论(2) 编辑

2009年3月11日

WF单元测试系列4:测试Workflow

摘要: 前面几篇介绍了如何对Activity进行状态测试,行为测试,及Mock Object Framework的使用。当然,仅仅测试Activity是不够的,我们最终还要对整个Workflow进行测试。这一篇就为大家讲一下如何对Workflow进行测试。在上一篇的NewEmployeeWFLibrary工程里,添加一个名为StoreNewAcmeEmployee的顺序工作流。为工作流添加三个属性和一个事...阅读全文

posted @ 2009-03-11 16:13 zhaojunqi 阅读(1343) 评论(0) 编辑

导航

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

公告

>

昵称:zhaojunqi
园龄:3年9个月
粉丝:8
关注:0

搜索

 
 

常用链接

我的标签

随笔分类

随笔档案

最新评论

阅读排行榜

评论排行榜

推荐排行榜