广告
返回顶部
首页 > 资讯 > 服务器 >如何扩展VS2010的服务器资源管理器
  • 434
分享到

如何扩展VS2010的服务器资源管理器

2023-06-17 15:06:59 434人浏览 安东尼
摘要

这篇文章主要讲解了“如何扩展VS2010的服务器资源管理器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何扩展VS2010的服务器资源管理器”吧!SharePoint服务器资源管理器是Vi

这篇文章主要讲解了“如何扩展VS2010的服务器资源管理器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何扩展VS2010的服务器资源管理器”吧!

SharePoint服务器资源管理器是Visual Studio 2010的一项新特性,该功能是由Visual Studio Tools for SharePoint提供的。

如何扩展VS2010的服务器资源管理器

如果你只需要从Visual Studio中浏览SharePoint站点里的内容(网站栏,内容类型,功能等),那么默认功能对你来说就已经非常好用了。 然而,在默认情况下,SharePoint服务器资源管理器除了可以显示网站里有哪些可用的内容以外,其它什么也做不了。

如何扩展VS2010的服务器资源管理器

正如你所看到的,上下文菜单中仅有很少的几项。下图是通知列表的属性面板。 该属性存储在Annotations中。为了方便理解什么是Annotation,你可以把它们想象成一个带属性的类。这些属性就是我们在下面的属性面板中看到的:

如何扩展VS2010的服务器资源管理器

这里还是只读的。

我可以扩展吗?

接下来你一定会问这样一个问题(如果你是一名SharePoint开发人员的话)——我能不能对其进行扩展,向SharePoint服务器资源管理器中添加自定义的命令或结点呢?

答案是肯定的。你可以扩展SharePoint服务器资源管理器,包括:

1)创建新结点

2)扩展已有结点

给我个例子好吗?

让我们以功能结点为例。

如何扩展VS2010的服务器资源管理器

功能结点下显示了该网站下所有已激活的功能。如果右击某个功能,你会看到少得可怜的几项。

如何扩展VS2010的服务器资源管理器

如果能在上下文菜单中添加一项“停用”,点击可以停用选中的功能,那就太帅了:)

如何扩展VS2010的服务器资源管理器

[顺带说一句,这张截图是实实在在的做好的扩展,而非Photoshop出来的:)]

理解SharePoint服务器资源管理器

在正式开始编写一个扩展之前,你必须了解一下SharePoint服务器资源滚利器中不同类型的结点:

如何扩展VS2010的服务器资源管理器

本例中我们感兴趣的是FeatureNode

开始

MSDN上有一篇非常棒的文章介绍了如何扩展Visual Studio Tools for SharePoint 

下图是我们将要进行的工作的图形化表示:

如何扩展VS2010的服务器资源管理器

新建一个类,并实现IExplorerNodeTypeExtension接口

处理事件

通过Annotations 访问该结点的属性

通过客户端对象模型执行SharePoint操作

***步

创建一个windows类库项目并添加下列引用

第二步

创建一个类并实现接口IExplorerNodeTypeExtension:

第三步

我们感兴趣的是在上下文菜单中添加一项,处理事件NodeMenuItemsRequested。这些都在Initialize方法中完成:

public void Initialize(IExplorernodeType nodeType)  {  nodeType.NodeMenuItemsRequested +=   new EventHandler<ExplorerNodeMenuItemsRequestedEventArgs>  (nodeType_NodeMenuItemsRequested);  }

在下面添加事件处理程序:

void nodeType_NodeMenuItemsRequested(object sender, ExplorerNodeMenuItemsRequestedEventArgs e)  {   IMenuItem deactivateMenu = e.MenuItems.Add("停用");  deactivateMenu.Click +=   new EventHandler<MenuItemEventArgs>(deactivateMenu_Click);  }

我们在事件处理程序中添加了一个菜单项并且处理了其自身的点击事件。

第四步

我们若要停用一个功能,首先需要知道该功能的Definition Id。在功能的属性面板中已经有这个值了:

如何扩展VS2010的服务器资源管理器

为了访问该属性,我们需要借助于Annotations对象。下面是访问功能属性的代码:

IFeatureNodeInfo fn = e.Node.Annotations[typeof(IFeatureNodeInfo)] as IFeatureNodeInfo;  definitionId = fn.Id;  featureName = fn.Name;

接下来我们要获取该功能所处的网站。因为服务器资源管理器已经实例化了到该站点的连接,因此我们可以直接从当前上下文中获取。

IExplorerNodeContext siteContext = e.Node.Context;

下面是事件处理程序代码现在的样子:

void nodeType_NodeMenuItemsRequested(object sender, ExplorerNodeMenuItemsRequestedEventArgs e)  {   siteContext = e.Node.Context;  IFeatureNodeInfo fn = e.Node.Annotations[typeof(IFeatureNodeInfo)] as IFeatureNodeInfo;  definitionId = fn.Id;  featureName = fn.Name;    IMenuItem deactivateMenu = e.MenuItems.Add("停用");  deactivateMenu.Click += new EventHandler<MenuItemEventArgs>(deactivateMenu_Click);  }

第五步

现在我们可以通过客户端对象模型在新菜单项的事件处理程序中编写停用功能的代码了:

void deactivateMenu_Click(object sender, MenuItemEventArgs e)  {  if (MessageBox.Show(confirmationMessage,String.FORMat("停用{0} 功能",featureName),   MessageBoxButtons.YesNo,   MessageBoxIcon.Exclamation) == DialogResult.Yes)  {   IExplorerNode parentFeatureNode = e.Owner as IExplorerNode;  IExplorerNode featureNode = parentFeatureNode.ParentNode;  ClientContext clientContext = new ClientContext(siteContext.SiteUrl.AbsoluteUri);  WEB site = clientContext.Web;  FeatureCollection siteFeatures = site.Features;    clientContext.Load(site, s => s.Title, s => s.Features);  siteFeatures.Remove(definitionId, false);  clientContext.ExecuteQuery();  clientContext.Dispose();  featureNode.Refresh();  }  }

确实很简单。查询并仅返回Web和Features对象,然后从该站点中Remove(停用)该功能。

你也可以通过客户端对象模型的异步模式来实现异步调用。

部署该扩展

为了能够部署这个扩展,我们需要将其包含到一个.vsix包中。

你可以套用VSIX模板来创建.vsix包。

如何扩展VS2010的服务器资源管理器

在manifest文件中包含该扩展。

如何扩展VS2010的服务器资源管理器

选择内容为MEF Component,并选择扩展项目作为源。

编译该项目并生成相应的.vsix包,然后安装这个包。

为FeatureNode所开发的“停用扩展”就完成了

现在看看上下文菜单,已经出现我们的菜单项了:

如何扩展VS2010的服务器资源管理器

当你点击它时,会弹出确认消息:

如何扩展VS2010的服务器资源管理器

点"是"的话将停用该功能并刷新功能结点树视图。

感谢各位的阅读,以上就是“如何扩展VS2010的服务器资源管理器”的内容了,经过本文的学习后,相信大家对如何扩展VS2010的服务器资源管理器这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: 如何扩展VS2010的服务器资源管理器

本文链接: https://www.lsjlt.com/news/290111.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何扩展VS2010的服务器资源管理器
    这篇文章主要讲解了“如何扩展VS2010的服务器资源管理器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何扩展VS2010的服务器资源管理器”吧!SharePoint服务器资源管理器是Vi...
    99+
    2023-06-17
  • 云服务器:灵活可扩展的计算资源
    1. 云服务器的定义和特点 云服务器是一种基于云计算技术的虚拟化服务器,它提供了灵活可扩展的计算资源,可以满足不同规模和需求的企业和个人用户。云服务器的特点包括: 虚拟化:云服务器是在物理服务器上通过虚拟化技术创建的虚拟机实例,每个实例...
    99+
    2023-10-27
    灵活 服务器 资源
  • windows资源管理器如何修复
    要修复Windows资源管理器,您可以尝试以下方法:1. 重启资源管理器:按下Ctrl + Shift + Esc键打开任务管理器,...
    99+
    2023-09-11
    windows
  • windows资源管理器如何打开
    要打开Windows资源管理器,你可以通过以下几种方法之一:1. 使用快捷键:按下"Win"键 + "...
    99+
    2023-09-12
    windows
  • win11如何调出资源管理器
    要调出Windows 11的资源管理器,您可以使用以下几种方法:1. 使用键盘快捷键:按下Win键(Windows图标键)+ E键,...
    99+
    2023-09-12
    win11
  • win101909资源管理器卡如何解决
    这篇文章主要介绍“win101909资源管理器卡如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“win101909资源管理器卡如何解决”文章能帮助大家解决问题。小编在这里根据不同情况准备了四种...
    99+
    2023-07-01
  • win11资源管理器卡死如何解决
    当Windows 11的资源管理器卡死时,可以尝试以下解决方法:1. 重启资源管理器:按下Ctrl + Shift + Esc组合键...
    99+
    2023-09-11
    win11
  • windows文件资源管理器如何打开
    要打开Windows文件资源管理器,可以使用以下方法之一:1. 使用快捷键:按下Win键+E键。这将立即打开文件资源管理器。2. 使...
    99+
    2023-09-20
    windows
  • win10资源管理器崩溃如何解决
    要解决Windows 10资源管理器崩溃的问题,您可以尝试以下方法:1. 重新启动资源管理器:按下Ctrl + Shift + Es...
    99+
    2023-09-04
    win10
  • 如何找国内代理服务器ip资源
    这篇文章将为大家详细讲解有关如何找国内代理服务器ip资源,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。IP代理服务提供商有很多种,代理IP包的种类也很多,很多想要买到好的代理IP资源却不知如何选择。接下来...
    99+
    2023-06-20
  • windows资源管理器打不开如何解决
    若Windows资源管理器无法打开,则可以尝试以下解决方法:1. 重新启动计算机:有时候资源管理器出现问题可能是由于临时的系统错误引...
    99+
    2023-10-20
    windows
  • win101909文件资源管理器卡如何解决
    本篇内容介绍了“win101909文件资源管理器卡如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!win101909文件资源管理器卡怎...
    99+
    2023-07-01
  • win10资源管理器关闭了如何打开
    今天小编给大家分享一下win10资源管理器关闭了如何打开的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在任务管理器中,点击左...
    99+
    2023-07-01
  • win11资源管理器占用高如何解决
    如果Windows 11的资源管理器(即文件资源管理器)占用过高,可以尝试以下几种方法来解决:1. 重启资源管理器:打开任务管理器(...
    99+
    2023-08-22
    win11
  • 阿里云服务器分区如何有效地进行资源管理
    阿里云服务器分区是一种有效的资源管理方式,可以有效地帮助学生在使用阿里云服务器时,更好地管理自己的资源,提高使用效率。本文将详细介绍阿里云服务器分区的基本概念、创建和管理分区的过程以及其带来的优势。 阿里云服务器分区是一种将阿里云服务器的硬...
    99+
    2023-11-19
    阿里 有效地 分区
  • win11资源管理器不停的崩溃如何解决
    如果Windows 11的资源管理器不停地崩溃,你可以尝试以下几种方法来解决问题:1. 重启电脑:有时候,资源管理器崩溃可能只是暂时...
    99+
    2023-08-22
    win11
  • 如何用上下文管理器扩展 Python 计时器
    上文中我们创建的第一个 Python 计时器类,然后逐步扩展我们 Timer 类,其代码也是较为丰富强大。我们不能满足于此,仍然需要模板一些代码来使用Timer:首先,实例化类其次,在要计时的代码块之前调用.start()最后,在代码块之后...
    99+
    2023-05-14
    Python 计时器 上下文管理器
  • win11资源管理器重启闪屏如何解决
    如果Win11资源管理器重启时出现闪屏问题,以下是一些可能的解决方法:1. 更新显卡驱动程序:闪屏问题可能是由于显卡驱动程序不兼容或...
    99+
    2023-09-11
    win11
  • win10资源管理器频繁崩溃如何解决
    当Windows 10资源管理器频繁崩溃时,可以尝试以下解决方法:1. 重启资源管理器:按下Ctrl + Shift + Esc组合...
    99+
    2023-09-20
    win10
  • win101909资源管理器停止响应如何解决
    这篇文章主要讲解了“win101909资源管理器停止响应如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“win101909资源管理器停止响应如何解决”吧!建议先使用杀毒软件进行全盘查杀...
    99+
    2023-07-01
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作