今天的SharePoint项目实践

今天到客户处部署MOSS 2007项目,并现场编码。

编码部分主要是EventReceiver,要添加Added, Updating, Updated, Deleting四个事件的代码,并更新另一个列表。

首先就是BeforeProperties,AfterProperties 和ListItem三个属性各自代表的意思。不幸的是,MS在MOSS中定义非常混乱;而我在现场coding时又不能上网……

以下是对照表: 

List--列表

BeforeProperties

AfterProperties

properties.ListItem

ItemAdding

No value

New value

Null

ItemAdded

No value

New value

New value

ItemUpdating

No value

Changed value

Original value

ItemUpdated

No value

Changed value

Changed value

ItemDeleting

No value

No value

Original value

ItemDeleted

No value

No value

Null

Library--文档库

BeforeProperties

AfterProperties

properties.ListItem

ItemAdding

No value

No value

Null

ItemAdded

No value

No value

New value

ItemUpdating

Original value

Changed value

Original value

ItemUpdated

Original value

Changed value

Changed value

ItemDeleting

No value

No value

Original value

ItemDeleted

No value

No value

Null

在没有任何资料的情况下居然蒙对了(我直接使用ing和ed两种方法的ListItem,得到了Original和Changed对于List和Library的统一),运气也未免太好了一点!

主要的感悟就是在MOSS编码时一定要充分考虑到权限问题:默认使用的是当前用户的权限,很多时候,当前用户没有代码给出的权限时,必须要提升权限,就要使用到RunWithElevatedPrivileges,诸如SPSecurity.RunWithElevatedPrivileges(delegate{})的形式,并设置SPWeb.AllowUnsafeUpdates为True。

在EventReceiver开发时,使用OSSEventManager可以快速部署,并且使用VS的调试--附加进程功能可以方便的进行EventReceiver调试。

还有一个感触:Reflector真的是好东西,经常看看MS写的源码,对自己提升确实非常大。

posted on 2011-11-13 23:51  老老狼  阅读(233)  评论(0)    收藏  举报

导航