精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

暢談Visual Studio 2010中的SharePoint插件

開發 后端
今天我們將為大家介紹的是Visual Studio 2010中的SharePoint插件,這也是其強大擴展性的一種體現。

Visual Studio 2010***的賣點就是可擴展性。這樣就可以借助.NET社區的力量基于VS構建出許多有用的工具。本文中我們將展示如何擴展VS2010的服務器資源管理器,在其中的SharePoint結點上添加一個自定義操作。

SharePoint服務器資源管理器是Visual Studio 2010的一項新特性,該功能是由Visual Studio Tools for SharePoint提供的。

 特性

如果你只需要從Visual Studio中瀏覽SharePoint站點里的內容(網站欄,內容類型,功能等),那么默認功能對你來說就已經非常好用了。 然而,在默認情況下,SharePoint服務器資源管理器除了可以顯示網站里有哪些可用的內容以外,其它什么也做不了。

顯示很多內容

正如你所看到的,上下文菜單中僅有很少的幾項。下圖是通知列表的屬性面板。 該屬性存儲在Annotations中。為了方便理解什么是Annotation,你可以把它們想象成一個帶屬性的類。這些屬性就是我們在下面的屬性面板中看到的:

 

這里還是只讀的。

我可以擴展嗎?

接下來你一定會問這樣一個問題(如果你是一名SharePoint開發人員的話)——我能不能對其進行擴展,向SharePoint服務器資源管理器中添加自定義的命令或結點呢?

答案是肯定的。你可以擴展SharePoint服務器資源管理器,包括:

1)創建新結點

2)擴展已有結點

給我個例子好嗎?

讓我們以功能結點為例。

功能結點 

 功能結點下顯示了該網站下所有已激活的功能。如果右擊某個功能,你會看到少得可憐的幾項。

激活的功能 

如果能在上下文菜單中添加一項“停用”,點擊可以停用選中的功能,那就太帥了:)

停用選項

[順帶說一句,這張截圖是實實在在的做好的擴展,而非Photoshop出來的:)] 

理解SharePoint服務器資源管理器

在正式開始編寫一個擴展之前,你必須了解一下SharePoint服務器資源滾利器中不同類型的結點:

結點

本例中我們感興趣的是FeatureNode。

 開始

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

下圖是我們將要進行的工作的圖形化表示:

圖形化表示

1、新建一個類,并實現IExplorerNodeTypeExtension接口

2、處理事件

3、通過Annotations 訪問該結點的屬性

4、通過客戶端對象模型執行SharePoint操作

***步

創建一個Windows類庫項目并添加下列引用

第二步

創建一個類并實現接口IExplorerNodeTypeExtension:

第三步

我們感興趣的是在上下文菜單中添加一項,處理事件NodeMenuItemsRequested。這些都在Initialize方法中完成:

  1. public void Initialize(IExplorerNodeType nodeType)  
  2. {  
  3. nodeType.NodeMenuItemsRequested +=   
  4. new EventHandler<ExplorerNodeMenuItemsRequestedEventArgs>  
  5. (nodeType_NodeMenuItemsRequested);  
  6. }  

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

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

我們在事件處理程序中添加了一個菜單項并且處理了其自身的點擊事件。

第四步

我們若要停用一個功能,首先需要知道該功能的Definition Id。在功能的屬性面板中已經有這個值了:

 

為了訪問該屬性,我們需要借助于Annotations對象。下面是訪問功能屬性的代碼:

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

接下來我們要獲取該功能所處的網站。因為服務器資源管理器已經實例化了到該站點的連接,因此我們可以直接從當前上下文中獲取。

 

  1. IExplorerNodeContext siteContext = e.Node.Context; 

下面是事件處理程序代碼現在的樣子:

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

第五步

現在我們可以通過客戶端對象模型在新菜單項的事件處理程序中編寫停用功能的代碼了:

  1. void deactivateMenu_Click(object sender, MenuItemEventArgs e)  
  2. {  
  3. if (MessageBox.Show(confirmationMessage,String.Format("停用{0} 功能",featureName),   
  4. MessageBoxButtons.YesNo,   
  5. MessageBoxIcon.Exclamation) == DialogResult.Yes)  
  6. {  
  7.  
  8. IExplorerNode parentFeatureNode = e.Owner as IExplorerNode;  
  9. IExplorerNode featureNode = parentFeatureNode.ParentNode;  
  10. ClientContext clientContext = new ClientContext(siteContext.SiteUrl.AbsoluteUri);  
  11. Web site = clientContext.Web;  
  12. FeatureCollection siteFeatures = site.Features;   
  13.  
  14. clientContext.Load(site, s => s.Title, s => s.Features);  
  15. siteFeatures.Remove(definitionId, false);  
  16. clientContext.ExecuteQuery();  
  17. clientContext.Dispose();  
  18. featureNode.Refresh();  
  19. }  
  20. }  

確實很簡單。查詢并僅返回Web和Features對象,然后從該站點中Remove(停用)該功能。

你也可以通過客戶端對象模型的異步模式來實現異步調用。 

部署該擴展

為了能夠部署這個擴展,我們需要將其包含到一個.vsix包中。

你可以套用VSIX模板來創建.vsix包。

在manifest文件中包含該擴展。 

選擇內容為MEF Component,并選擇擴展項目作為源。

編譯該項目并生成相應的.vsix包,然后安裝這個包。

為FeatureNode所開發的“停用擴展”就完成了

現在看看上下文菜單,已經出現我們的菜單項了: 

當你點擊它時,會彈出確認消息: 

點"是"的話將停用該功能并刷新功能結點樹視圖。 

你可以下載 源代碼 或者VSIX包 。

責任編輯:彭凡 來源: 博客園
相關推薦

2009-11-10 13:43:37

Visual Stud

2009-11-13 14:59:12

Visual Stud

2009-11-11 14:26:13

Visual Stud

2009-11-18 09:14:49

Visual Stud

2009-12-02 09:43:38

Visual Stud

2009-09-07 09:22:17

Visual Stud代碼片段

2009-11-24 09:00:02

Visual Stud

2010-03-19 13:17:26

Parallel

2010-07-20 08:43:00

Visual Stud

2011-01-10 08:48:53

2009-09-02 16:21:17

Visual BasiC#語言

2010-04-15 08:40:00

UML建模Visual Stud

2009-03-17 08:56:57

Visual StudVS2010C++

2009-03-10 10:21:05

災難恢復Restart Manvs

2010-12-16 10:00:20

QtVisual Stud

2010-01-14 14:12:14

Visual Stud

2010-02-23 09:02:00

Visual Stud

2009-11-11 09:48:06

Visual Stud

2010-02-22 16:43:33

Visual Stud

2010-05-14 15:05:38

Visual Stud
點贊
收藏

51CTO技術棧公眾號

日韩午夜av电影| bt欧美亚洲午夜电影天堂| 久久九九国产精品怡红院 | 97超碰免费在线| 91亚洲精华国产精华精华液| 国产精品h片在线播放| 四虎永久免费地址| 看全色黄大色大片免费久久久| 色久综合一二码| 六月婷婷激情网| 日本午夜在线视频| 国产福利91精品一区二区三区| 欧美一区二区影院| 日韩女优一区二区| 精品国产91久久久久久浪潮蜜月| 日韩亚洲欧美成人一区| 国产精品亚洲a| 在线观看h网| 国产精品美女久久久久aⅴ | 国产在线黄色| 国产高清成人在线| 国产精品高清在线观看| 国产精品二区一区二区aⅴ| 色乱码一区二区三区网站| 亚洲精品动漫100p| 在线观看免费看片| 日韩欧美一区二区三区免费观看| 亚洲一区二区三区四区在线观看 | 欧美日韩一区二区三区在线看| 日本免费a视频| 黄网站在线免费| 中文字幕欧美激情一区| 蜜桃av久久久亚洲精品| 日本黄色一区二区三区| 国产福利一区二区三区视频在线| 国产精品黄色影片导航在线观看| 日韩精品一区二区不卡| 欧美人成在线| 久久精品中文字幕免费mv| 中文字幕第24页| 精品久久久久久久| 亚洲精品天天看| 日韩av无码一区二区三区不卡| 日韩高清一区| 欧美一区二区三区视频在线观看| 欧美一级裸体视频| 亚洲成人不卡| 91福利小视频| 久久久久狠狠高潮亚洲精品| 涩涩在线视频| 日韩欧美亚洲一二三区| 久色视频在线播放| 日韩精品极品| 欧美性感美女h网站在线观看免费 欧美性xxxx在线播放 | www.国产免费| 国产成人免费视频精品含羞草妖精| 91精品在线观| 99热这里只有精品在线| 国产伦精品一区二区三区免费迷| 91精品一区二区| 亚洲第一成人av| 成人蜜臀av电影| 好吊色欧美一区二区三区视频| 天天操天天干天天爽| 91网址在线看| 午夜精品视频在线观看一区二区| 1pondo在线播放免费| 亚洲欧美日韩中文播放| 黄色成人在线免费观看| 黄色小说在线播放| 天天影视涩香欲综合网| 黄色三级视频片| 91精品亚洲一区在线观看| 日韩一区二区在线免费观看| 亚洲av无码成人精品区| 加勒比久久高清| 亚洲美女在线看| 国产一区第一页| 欧美日韩在线大尺度| 777午夜精品福利在线观看| 亚洲高清毛片一区二区| 美腿丝袜一区二区三区| 999视频在线观看| 性猛交xxxx| 国产精品区一区二区三| 成人国产一区二区三区| 性爽视频在线| 91精品欧美综合在线观看最新| www.四虎精品| 精品理论电影| 国内成人精品一区| 91视频在线视频| 国产福利一区二区三区| 欧美一区二区视频17c| 大片免费在线观看| 色欲综合视频天天天| 91亚洲一区二区| 免费视频一区三区| 久久亚洲精品成人| 日日噜噜噜噜人人爽亚洲精品| 国内精品免费在线观看| 久久伦理网站| 日本动漫同人动漫在线观看| 在线免费观看日韩欧美| 亚洲一区和二区| 日韩综合在线| 欧美亚洲免费电影| 99在线无码精品入口| 久久久综合激的五月天| 日韩国产小视频| 国产一区一一区高清不卡| 精品久久国产97色综合| 女人18毛片毛片毛片毛片区二| 国产日本精品| 福利精品视频| av网站网址在线观看| 日本韩国欧美国产| 天堂www中文在线资源| 亚洲电影影音先锋| 国产精品久久久久久久久久99 | 精品人妻一区二区色欲产成人| 国产经典欧美精品| 一道精品一区二区三区| 写真福利精品福利在线观看| 日韩av影院在线观看| 欧美黑吊大战白妞| 国产一区二区三区免费观看| 先锋影音日韩| 欧美精选视频一区二区| 日韩黄色av网站| 国产无码精品在线播放| 国产九九视频一区二区三区| 在线观看亚洲视频啊啊啊啊| 日日av拍夜夜添久久免费| 亚洲精品电影久久久| 国产在线视频你懂的| 国产另类ts人妖一区二区| 最新精品视频| 久久久久久亚洲精品美女| 揄拍成人国产精品视频| 蜜臀99久久精品久久久久小说| 91亚洲男人天堂| 成年人视频观看| 欧美美女黄色| 78m国产成人精品视频| 香蕉视频911| 精品日韩视频在线观看| 丰满大乳奶做爰ⅹxx视频| 国产亚洲永久域名| 久久久99爱| 偷拍精品精品一区二区三区| 亚洲欧洲在线观看| 一级黄色在线观看| 欧美激情一区三区| 欧美伦理片在线观看| 日韩成人激情| 亚洲xxxxx| 色婷婷视频在线观看| 欧美精品一区二区三区四区| 日韩免费一二三区| 91视频国产资源| 手机在线免费观看毛片| 国产精品久久久久蜜臀| 成人在线免费网站| 9999精品成人免费毛片在线看| 日韩av在线精品| 免费av中文字幕| 亚洲色图欧美在线| 色婷婷精品久久二区二区密| 在线综合亚洲| 午夜精品电影在线观看| 精品一区二区三区免费看| 久久久日本电影| 国产精品视频一区二区久久| 欧美美女一区二区在线观看| 国产亚洲精品成人| 久久亚洲精华国产精华液| 国产精品视频分类| 欧美日韩 国产精品| 女同一区二区| 粉嫩一区二区三区在线观看| 午夜免费久久久久| www.视频在线.com| 欧美大胆人体bbbb| 亚洲欧美另类在线视频| 国产精品国产三级国产普通话99| 一级全黄裸体片| 天堂av在线一区| 妞干网这里只有精品| 欧美黄色影院| 国产日韩欧美影视| 欧美激情护士| 久精品免费视频| 国产视频二区在线观看| 日韩一本二本av| 午夜一级黄色片| 亚洲午夜免费电影| 日本不卡一区视频| 成人国产在线观看| 999这里有精品| 国产精品三上| 女人帮男人橹视频播放| 欧美3p在线观看| 精品日产一区2区三区黄免费| 成人综合日日夜夜| 日韩av电影手机在线| 欧美大胆的人体xxxx| 中文字幕日本欧美| 天堂中文在线视频| 欧美不卡一二三| 国产在成人精品线拍偷自揄拍| 五月激情综合色| 欧美人与禽zozzo禽性配| 国产精品久久久久久久久久久免费看| www.555国产精品免费| 精品亚洲成a人在线观看| 一本久道综合色婷婷五月| 亚洲国产高清视频| 日韩人妻一区二区三区蜜桃视频| 久久超碰99| 久久综合九九| 国偷自产av一区二区三区| 91黄色精品| av在线亚洲一区| 国产日产欧美a一级在线| 88xx成人永久免费观看| 欧美一级视频在线观看| av成人影院在线| 欧美国产日韩一区二区| www久久日com| 久久亚洲精品毛片| 国产淫片在线观看| 日韩天堂在线视频| 2021av在线| 色偷偷88888欧美精品久久久| 欧美理论在线观看| 亚洲免费视频网站| 日韩欧美在线番号| 亚洲精品视频在线播放| 欧美日韩伦理片| 国产视频精品va久久久久久| 性感美女一级片| 亚洲片av在线| 精品av中文字幕在线毛片| 亚洲欧洲一区二区三区在线观看 | 97久久精品国产| 91色在线看| 97久久久免费福利网址| 1区2区3区在线| 97在线观看免费| 一个人看的www视频在线免费观看| 91av视频在线免费观看| sese综合| 国产精品偷伦免费视频观看的| 黄色精品视频| 91中文字幕在线| www国产精品| 久久精品二区| 精品国产一区二区三区香蕉沈先生 | 欧美精品系列| 在线精品日韩| 亚洲天堂成人| 日本xxxxxxx免费视频| 日韩电影在线免费观看| 最新天堂在线视频| 国产毛片一区二区| 国产性生活毛片| 国产亚洲一本大道中文在线| 羞羞在线观看视频| 一区二区三区四区国产精品| a v视频在线观看| 在线观看免费视频综合| 国产男女裸体做爰爽爽| 精品三级在线观看| 久久这里精品| 久久视频国产精品免费视频在线| 欧美v亚洲v| 国产精品扒开腿做爽爽爽的视频| 九七电影院97理论片久久tvb| 95av在线视频| 亚洲bt欧美bt精品777| 亚洲欧洲国产精品久久| 欧美69wwwcom| 欧在线一二三四区| 黑人精品欧美一区二区蜜桃| 国产不卡一二三| 国产精品女主播在线观看| 免费在线观看国产精品| 在线精品视频免费观看| www.亚洲欧美| 亚洲全黄一级网站| 91麻豆免费在线视频| 欧美在线视频免费播放| 24小时成人在线视频| 久久精品国产综合精品| 亚洲91视频| 日本成人在线免费视频| 丰满白嫩尤物一区二区| 国产探花视频在线播放| 亚洲影视在线播放| 中文字幕人妻丝袜乱一区三区| 欧美一区日韩一区| 国产在线电影| 久久久免费精品视频| 96视频在线观看欧美| 免费看成人av| 黄色成人在线网址| 91丨九色丨蝌蚪| 久久久久久电影| 国产精品2020| 91精品国产高清一区二区三区| 蜜桃视频在线播放| 久久免费成人精品视频| 国产一区二区视频在线看| 日韩福利视频| 午夜一区二区三区不卡视频| 久久精品无码一区二区三区毛片 | 欧美日韩综合一区二区| 欧美在线免费观看亚洲| 四虎电影院在线观看| 欧美精品久久久久a| 电影一区中文字幕| 影音先锋欧美在线| 青草国产精品久久久久久| 人妻少妇精品视频一区二区三区| 亚洲图片欧美色图| 亚洲第一免费视频| 精品激情国产视频| julia一区二区三区中文字幕| 免费久久一级欧美特大黄| 在线视频精品| 日韩av无码一区二区三区不卡| 亚洲午夜精品一区二区三区他趣| 国产尤物视频在线观看| 中文字幕日韩欧美| 91欧美精品| 先锋影音网一区| 麻豆国产91在线播放| 美女av免费看| 欧美日韩一级片在线观看| 91短视频版在线观看www免费| 国产精品福利在线观看网址| 国产欧美日韩精品一区二区三区| aa在线免费观看| 久久久一区二区三区| 欧美日韩a v| 深夜福利亚洲导航| 性欧美video另类hd尤物| 中日韩在线视频| 国产一区二区h| 久久婷婷综合国产| 精品国产伦一区二区三区观看方式| 福利在线视频网站| 国产伦精品一区二区三| 亚洲国产专区| 精品成人av一区二区三区| 在线看国产一区| 黄色片网站在线观看| 成人综合色站| 亚洲影院免费| 亚洲一级黄色录像| 欧美精品tushy高清| 污片在线免费观看| 国新精品乱码一区二区三区18| 国产精品久久国产愉拍| 亚洲精品午夜视频| 欧美美女喷水视频| 色呦呦在线播放| 久久精品国产精品国产精品污 | 欧美色窝79yyyycom| 免费日本一区二区三区视频| 成人区精品一区二区| 亚洲永久免费| 亚洲女人久久久| 亚洲高清在线观看| 午夜精品久久久久久久久久蜜桃| 亚洲精品在线免费看| 国产91在线观看| 黄瓜视频在线免费观看| 波霸ol色综合久久| 国产毛片精品| 午夜精品中文字幕| 亚洲第一久久影院| 国产高清视频在线| 91网免费观看| 日本系列欧美系列| 久久久久久福利| 在线观看日韩视频| 中文字幕一区二区三区四区久久| av动漫在线观看| 亚洲欧美日韩在线| 色视频精品视频在线观看| 成人久久久久久久| 老司机一区二区三区| 国产精品久久久精品四季影院| 亚洲精品小视频| 香蕉免费一区二区三区在线观看| 国产一区二区视频免费在线观看| 一区二区三区四区不卡视频 | 伊人久久综合影院|