SharePoint远程调试

SharePoint 本地开发解决方案以及远程调试实现教程
在SharePoint开发中,我们需要在部署有SharePoint环境的服务器中开发,这是一件让人很苦恼的事情,毕竟不能一个项目多人开发配备多台服务器,这就需要本地开发。 本来自己以为SharePoint 2013在不再支持客户端系统的条件下,只能服务器上开发,QQ群里的朋友提醒说也可以本地开发,远程调试,以为自己是知道SharePoint 2010可以通过注册表修改,本地安装SharePoint的,顺着这个思路,经过一番谷歌/bing,然后实现了,在此总结一下,分享给大家。思 路 本地安装Visual Studio 2013,导入SharePoint注册表,复制必须的dll,使用远程调试;缺 陷 不能本地创建SharePoint解决方案,只能编辑;场 景 可以使用源代码管理,将文件下载到本地进行开发,然后在服务器上获取,打包/部署,然后本地调试。 1、在本地尝试使用VS开发SharePoint的朋友,都知道新建/打开SharePoint解决方案,会报如下错误:

SharePoint 本地创建解决方案
我们介绍了如何通过修改注册表,使SharePoint 2013 解决方案可以本地编辑,也提及了即使修改注册表,还不能做到本地创建。 后来,仔细看了一下注册表的结构,思考了一下可能造成这样问题的原因,经过几次尝试,发现在本地创建SharePoint解决方案,也是可行的。但是,并不是所有开发模板,都可以本地创建,例如事件触发器、列表、工作流等,创建过程必须和SharePoint进行交互的模板,我们无法在本地创建。 经过测试,发现有如下模板是可以本地创建的:Ø WebPart的开发Ø 可视化WebPart的开发Ø 模块部署母版页Ø 应用程序页开发Ø 网站栏的开发Ø Feature的创建 本结论为个人测试结果,仅供开发参考,如有问题还需要细细排查。以上都是自己测试通过,除了以上开发模板,我在测试中发现,都必须和SharePoint交互才能创建,我们对于本地创建无能为力。

SharePoint 2013 App Remote Event Receivers
当我们在使用App的时候,就会发现一些问题,比如那些网站部署、更新或者卸载了,我们很关心我们的App是否有人用,这就需要远程事件接收器了。 1、在我们的测试App的解决方案上选中鼠标,按F4弹出属性,选中我们需要的处理应用程序,选中True;同时,VS会自动创建一个解决方案,让我们在里面写远程事件接收器的相关代码。 2、在创建的远程事件接收器的解决方案中,打开svc的代码,然后添加我们的代码(附后),判断如果触发的是安装App的事件,在一个AppInstallLog的列表中插入一条安装记录。 3、附后的代码,代码很简单,提升权限写列表库,就不多说了;写完代码以后,将这个web站点发布到服务器的IIS目录下;if (properties.EventType == SPRemoteEventType.AppInstalled) { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite("http://url:2014")) { using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["AppInstallLogs"]; SPListItem item = list.Items.Add(); item["标题"] = "SP2013PictureWallApp"; item["日志"] = "SP2013PictureWallApp于 " + DateTime.Now.ToString() + " 已经被安装!"; item.Update(); } } }); } 4、在App的解决方案中,找到AppManifest.xml文件,右键查看代码,修改InstalledEventEndpoint为我们之前发布的站点中svc文件目录; 5、我们在一个站点中添加我们的App,而后查看AppInstallLogs列表库,发现已经写入一条安装日志了,说明远程事件接收器开发部署成功!

SharePoint 页面中如何添加.Net代码
在SharePoint页面库里的页面中,添加.Net代码,只需修改一下相应应用程序的web.config文件,即可; 在web.config里面的<PageParserPaths>节点,加入一行配置文件即可:<PageParserPath VirtualPath="/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true" /> a、VirtualPath :要添加Net代码的自定义页面的URL,"/*"为全站; b、CompilationMode :对自定义页面里的.net 托管代码编译; c、AllowServerSideScript :设置自定义页面是否支持服务器端执行的脚本;(web.config添加节点截图) 在SharePoint网站页面库(SitePages)中,新建一个aspx页,添加Net代码,如下图:(SharePoint Designer中修改aspx的代码)

SharePoint 字段属性之JSLink使用详解
在SharePoint 2013中,SPField新增加了一个属性是JSLink,使用客户端脚本修改字段前台展示,我们可以用很多方法修改这个脚本的引用,然后来修改脚本,下面,我们举一个简单的例子。具体过程 A. 创建一个栏 -> B.使用工具修改JSLink的默认值 -> C.写JSLink的脚本 1、在新列表,创建一个字段PicUrl,如下图: 2、在layouts下新建一个文件夹,里面放JSLink.js(名字可以随便取); 3、使用SharePoint Manager 2013,找到相应字段修改其JSLink属性,如下图: 4、JSLink.js内容及介绍,如下图: