最近负责一个项目,需要结合MOSS + TFS + Project Server,有的技术以前也没接触过,肯定会遇到很多问题,在此列出项目中的问题和自己的一些感悟。
一、对于页面的自定义开发
1、可以使用webpart
简要步骤:
a、将生成的dll放入wss的bin目录 (Inetpub\wwwroot\wss\VirtualDirectories\80\bin)
b、在SharePoint的web.config文件添加safecontrol条目
c、网站设置-〉web部件 -〉 新建 选择我们的webpart
d、在需要的页面中加入
2、使用sharepoint design 结合vs2005 (参照自:http://www.cnblogs.com/yan0lovesha/archive/2007/11/19/964212.html )
1. 用SharePoint Designer设计页面,用Visual Studio写页面后台代码。是可行的,可以完美结合。
2. 使用该方法,需要在页面前台的@Page指令中使用"Inherit="来指定继承自类库中相应的后台类的完全限定名。
3. 使用该方法,需要将类库的输出程序集复制到相应的站点的bin目录中或者GAC中。
3. 使用该方法,需要在SharePoint站点的Web.config文件中将类库添加到safe control列表中
4. 使用该方法,每在页面中添加一个控件,都需要在后台同时声明一个同名的控件对象,不需要在声明时初始化。但是必须声明为protected或public。
5. 使用该方法,可以在页面中添加SharePoint控件,并且可以在后台代码中操作该控件
6. 使用该方法,需要在类库项目中引用System.Web程序集以及SharePoint程序集。
7. 使用该方法,可以直接声明 protected void Page_Load函数用来在页面加载时执行某些操作
8. 使用该方法,可以重写 OnError 函数以避免出现默认的SharePoint异常页面。但要在使用Server.GetLastError()函数得到错误内容后要调用Context.ClearError()来清楚之前的异常
9. 目前未发现任何较大的与普通ASP.NET开发的不同点。只是把页面与后台代码放在了不同的编辑器中进行。
使用Sharepoint Design时,如果想完全编辑,选格式-〉母版页-〉取消母版页
注:
由于sharepoint的网站在web.config中有如下配置:
<remove verb="GET,HEAD,POST" path="*" />
<add verb="GET,HEAD,POST" path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<add verb="OPTIONS,PROPFIND,PUT,LOCK,UNLOCK,MOVE,COPY,GETLIB,PROPPATCH,MKCOL,DELETE,(GETSOURCE),(HEADSOURCE),(POSTSOURCE)" path="*" type="Microsoft.SharePoint.ApplicationRuntime.SPHttpHandler, Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
</httpHandlers>
如果直接在网站目录下加入aspx页面不能执行
自己的类需要从System.Web.UI.Page继承
在Designer中不能写诸如: onClick="Button1_onClick" 的事件代码,只能在cs的Page_Load中动态绑定事件
3、使用Feature,例如工作流等
4、直接编辑页面
二、站点的部署问题
参见下面的版本控制
三、版本控制的问题
用两种方式同时进行:
a、备份网站下所有的页面、子网站、内容等信息,在需要的时候可以恢复
备份:stsadm -o backup -url http://localhost:888 -filename d:\bak.bak
恢复:Stsadm -o restore -overwrite -url http://localhost:99 -filename d:\bak.bak
这两个命令都必须使用localhost,也就是只能在需要备份或恢复的主机执行
b、用vss进行关键代码的版本控制
使用sharepoint designer的发布文件到一个目录,然后手工定期把发布的文件同步到vss上去