SharePoint开发TimerJob介绍

项目需要写TimerJob,以前也大概知道原理,不过,开发过程中,还是遇到一些问题,网上看了好多博客,也有写的灰常好的,不过,自己还是想再写一下,也算是给自己一个总结,也算给大家多一个参考吧。

TimerJob项目结构,主要有两个Class,一个是用来定义TimerJob功能的,一个是用来部署开发好的TimerJob的,分别继承两个不同的类。如下图,先建一个如下结构的项目:

文件描述:

TimerJob定义类:ModifyTitle.cs(继承自SPJobDefinition)

TimerJob安装类:ModifyTitleInstall.cs(继承自SPFeatureReceiver)

激活TimerJob的Feature.xml

添加强命名,因为将来生成的dll是要放到GAC里面去的

添加引用:

引用Microsoft.SharePoint.dll文件,两个Class都需要添加下面命名空间

using Microsoft.SharePoint;

using Microsoft.SharePoint.Administration;

ModifyTitleInstall类

public class ModifyTitleInstall : SPFeatureReceiver
{
const string TimerJobName = "ModifyTitleTimerJob";//TimerJob的标题
//激活TimerJob的方法
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
{
//如果有相同的TimerJob,先删除
if (job.Title == TimerJobName)
{
job.Delete();
}
}
ModifyTitle modifyTitle = new ModifyTitle(TimerJobName, site.WebApplication);
SPMinuteSchedule minuteSchedule = new SPMinuteSchedule();//计时器对象
minuteSchedule.BeginSecond = 0;
minuteSchedule.EndSecond = 59;
minuteSchedule.Interval = 1;
modifyTitle.Schedule = minuteSchedule;
modifyTitle.Update();
//throw new NotImplementedException();
}
public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
{
SPSite site = properties.Feature.Parent as SPSite;
foreach (SPJobDefinition job in site.WebApplication.JobDefinitions)
{
if (job.Title == TimerJobName)
{
job.Delete();
}
}
//throw new NotImplementedException();
}
public override void FeatureInstalled(SPFeatureReceiverProperties properties)
{
//throw new NotImplementedException();
}
public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
{
//throw new NotImplementedException();
}

ModifyTitle类

public class ModifyTitle : SPJobDefinition
{
public ModifyTitle():base(){}
public ModifyTitle(string TimerName, SPWebApplication webapp) : base(TimerName, webapp, null, SPJobLockType.ContentDatabase)
{
//TimerJob的标题
this.Title = "定期修改Title的TimerJob";
}
public override void Execute(Guid targetInstanceId)
{
SPWebApplication webapp = this.Parent as SPWebApplication;
SPContentDatabase contentDB=webapp.ContentDatabases[targetInstanceId];
foreach (SPItem item in contentDB.Sites[0].RootWeb.Lists["TimerJob"].Items)
{
DateTime dt = Convert.ToDateTime(item["创建时间"].ToString());
item["标题"] = "今天是这个月的第" + dt.Day.ToString() + "天";
item.Update();
}
//base.Execute(targetInstanceId);
}
}

时间: 2024-12-26 05:29:40

SharePoint开发TimerJob介绍的相关文章

两年工作经验,北京求职,.net或sharepoint开发工程师

问题描述 两年工作经验,北京求职,.net或sharepoint开发工程师 解决方案 解决方案二:该回复于2009-03-23 14:28:51被版主删除解决方案三:LZ,好人解决方案四:支持一下.解决方案五:不会,帮顶解决方案六:jf解决方案七:jf解决方案八:程序员1.1年以上技术开发经验,并参与过大型项目开发2.掌握.NET平台及其架构,并能够熟练使用C#进行WEB程序开发3.熟练掌握SQLSERVER/ORACLE等大型数据库4.熟练掌握Ajax,JS开发5.熟悉web2.0网站开发经验

一起谈.NET技术,SharePoint开发笔记-SharePoint2010添加ASP.NET应用程序

    大家可能在sharepoint开发webpart会引入一些asp.net的控件,这时候就会需要添加dll引用..下图所示CRSWebControls便是我添加的. 部署这个项目到sharepoint后.却出现了错误,如下图所示...其实解决这个问题的方式不难...下面就进入主题 首先,先把需要用到的DLL文件拷贝到sharepoint网站下的_app_bin或者bin目录 当然如果你的dll有强签名,那可以拖到C:\Windows\assembly这里面来,类似于注册(不建议这样做),这

Windows Phone 7 开发工具介绍

Windows Phone 7 开发工具介绍 在今天的 MIX10会议上,我们推出了 Windows Phone 7 系列开发故事.开发 Windows Phone 7 系列开发的核心技术是 Silverlight. 这使您能够使用您现有的开发技能来构建 Windows Phone 7 的应用程序. 现在您可以在这里下载到微软的 Windows Phone 7系列开发工具包--Windows Phone 开发工具CTP版本. Windows Phone开发工具CTP版本包含了所有您需要的开始Wi

Share Point开发系列之二:SharePoint网站元素介绍

本文包括: 1:Office SharePoint Server 站点元素 2:创作的网站元素 3:开发的网站元素 1.Office SharePoint Server 站点元素 Microsoft Office SharePoint Server 2007有两类元素: 创作的元素: 包括: Web Pages, images, Layout pages, CSS样式以及你创建的站点的其他元素,像这 些元素都包含在SQL Database中(当然在某些情况下可以部署在前端服务器上). 开发元素:

SharePoint开发:InfoPath入门

本文主要介绍SharePoint 2013中,简单发布InfoPath表单,并添加后台代码,示例比较简单,主要描述的是一个创建InfoPath的过程,而非多么深奥的后台代码,希望能够给初学者带来帮助. 主要过程有 新建一个InfoPath表单 修改表单的信任级别并添加证书 发布到InfoPath得到管理员认证 设计InfoPath布局及添加控件,在代码中编辑,添加表单功能 发布表单到SharePoint文档库 修改文档库支持内容类型,并添加InfoPath表单的内容类型 详细的创建过程 1. 打

java初学者常用开发工具介绍

初学 Java的应用越来越广泛,学习Java的人也越来越多.学过程序设计的人知道,使用Basic进行程序设计,可以使用QBasic.Visual Basic等开发工具:使用C语言进行程序设计,可以使用Turbo C.Visual C++.C++ Builder等开发工具.这些开发工具集成了编辑器和编译器,是集成开发工具,很方便使用.学习Java程序设计,同样需要方便易用的开发工具.Java的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑.本

SharePoint开发详解:一个Feature中使用SPGridView的几个Tips

根据上面一篇随笔所介绍的PC购买流程的项目,在项目中,需要有一个生成 订单的功能,能够使得Admin很方便的在获得批准的申请中选取一些来生成订单 ,要求界面操作简单明了,大概的效果图如下: 开发详解:一个Feature中使用SPGridView的几个Tips-"> 点击checkbox,自动计算当前订单的总价值,点击按钮,生成订单. 有此想到了用SPGridView这个现成的控件来完成,以前也用过这个控件,其 实和GridView没什么大区别.这里就简单介绍一下了: 首先Create 一个

蓝牙开发之从手机走向PC【1】——开发环境介绍

其实,大家知道蓝牙技术已经不是什么新的技术了,甚至对于某些站在IT潮流前端的朋友们,再谈这玩意有点过时了.呵呵,跑题了,接下来我所要介绍的是利用蓝牙技术做手机和手机之间的应用开发以及利用蓝牙技术做手机与PC之间的应用开发.考虑到要写的东西比较多,所以分成几篇文章来写.作为开篇的话,这儿只做一些蓝牙技术的介绍和我接下来应用开发的环境配置的相关介绍吧. 蓝牙技术相关知识简述:蓝牙技术是一种支持短距离通信的无线技术,这儿的短距离的范围是半径10m的范围(笔者在实际应用中发现自己手机的蓝牙支持不了这么长

Linux内核开发工具介绍

进行嵌入式Linux产品开发,往往需要对内核进行裁剪和定制,以满足嵌入式产品的功能和性能需求.本文介绍几种阅读Linux内核源码的工具和方法. 这里所说的"Linux内核开发"仅仅是指嵌入式Linux产品开发中内核和驱动相关开发工作,与Linux所领导的内核开发团队的内核开发有很大不同. 俗话说"工欲善其事,必先利其器",面对几百兆的Linux内核代码,要阅读.查看或者搜索其中的代码,大部分初次接触到Linux内核代码的开发人员,都有无从下手的感觉.下面推荐几个源码