SharePoint發(fā)行版本有SharePoint2003、SharePoint2007、Sharepoint 2010、SharePoint2013和SharePoint2016。SharePoint提供了功能強(qiáng)大的團(tuán)隊(duì)協(xié)作環(huán)境,使得組織能夠在整個(gè)組織內(nèi)部實(shí)現(xiàn)整合、組織、查找和提供 SharePoint站點(diǎn)。 我們介紹了如何通過修改注冊(cè)表,使SharePoint 2013 解決方案可以本地編輯,也提及了即使修改注冊(cè)表,還不能做到本地創(chuàng)建。 后來,仔細(xì)看了一下注冊(cè)表的結(jié)構(gòu),思考了一下可能造成這樣問題的原因,經(jīng)過幾次嘗試,發(fā)現(xiàn)在本地創(chuàng)建SharePoint解決方案,也是可行的。但是,并不是所有開發(fā)模板,都可以本地創(chuàng)建,例如事件觸發(fā)器、列表、工作流等,創(chuàng)建過程必須和SharePoint進(jìn)行交互的模板,我們無法在本地創(chuàng)建。 經(jīng)過測(cè)試,發(fā)現(xiàn)有如下模板是可以本地創(chuàng)建的: ?? WebPart的開發(fā) ?? 可視化WebPart的開發(fā) ?? 模塊部署母版頁(yè) ?? 應(yīng)用程序頁(yè)開發(fā) ?? 網(wǎng)站欄的開發(fā) ?? Feature的創(chuàng)建 本結(jié)論為個(gè)人測(cè)試結(jié)果,僅供開發(fā)參考,如有問題還需要細(xì)細(xì)排查。以上都是自己測(cè)試通過,除了以上開發(fā)模板,我在測(cè)試中發(fā)現(xiàn),都必須和SharePoint交互才能創(chuàng)建,我們對(duì)于本地創(chuàng)建無能為力。 1、若希望本地使用VS2013創(chuàng)建SharePoint解決方案及項(xiàng)目,需要?jiǎng)h除以下注冊(cè)表節(jié)點(diǎn),即SharePointTools,刪除前記得導(dǎo)出備份,方便以后需要時(shí)再次導(dǎo)入,經(jīng)過一段時(shí)間的使用,還未曾發(fā)現(xiàn)VS使用有問題。 2、如果不修改注冊(cè)表,創(chuàng)建SharePoint解決方案,會(huì)提示如下錯(cuò)誤: 3、刪除注冊(cè)表以后,重啟VS,創(chuàng)建SharePoint空項(xiàng)目成功,如下圖: 4、創(chuàng)建可視化WebPart,在項(xiàng)目上右鍵,添加新項(xiàng),選擇可視化WebPart,然后發(fā)現(xiàn)生成報(bào)錯(cuò); 5、找到錯(cuò)誤代碼,發(fā)現(xiàn)是這個(gè)初始化函數(shù)報(bào)錯(cuò),然后看黃色的警告,發(fā)現(xiàn)是有些本來自動(dòng)生成的文件,沒有生成成功(因?yàn)楸仨毢蚐harePoint交互,才能自動(dòng)生成); 6、對(duì)比正確的可視化WebPart,發(fā)現(xiàn)VisualWebPart1.ascx.g.cs這個(gè)文件,沒有生成成功,手動(dòng)添加進(jìn)來,如下圖; 7、這個(gè)文件,不僅僅是手動(dòng)添加進(jìn)來就好使的,在使用過程中,還發(fā)現(xiàn)及時(shí)手動(dòng)添加進(jìn)來,自動(dòng)生成的代碼,也不會(huì)生成,這就為我們開發(fā)帶來了不遍。但是,我通過手動(dòng)添加需要生成的代碼,也成功完成了可視化WebPart的Demo。我在部件上添加了一個(gè)Div,ID為“mydiv”,runat=server, 8、手動(dòng)添加該div的聲明代碼; ![]() ![]() 1 [GeneratedCodeAttribute("Microsoft.VisualStudio.SharePoint.ProjectExtensions.CodeGenerators.SharePointWebP" + 2 "artCodeGenerator", "12.0.0.0")] 3 protected global::System.Web.UI.HtmlControls.HtmlGenericControl mydiv; 4 5 [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)] 6 [GeneratedCodeAttribute("Microsoft.VisualStudio.SharePoint.ProjectExtensions.CodeGenerators.SharePointWebP" + 7 "artCodeGenerator", "12.0.0.0")] 8 private global::System.Web.UI.HtmlControls.HtmlGenericControl @__BuildControlmydiv() 9 {10 global::System.Web.UI.HtmlControls.HtmlGenericControl @__ctrl;11 @__ctrl = new global::System.Web.UI.HtmlControls.HtmlGenericControl("div");12 this.mydiv = @__ctrl;13 @__ctrl.ID = "mydiv";14 return @__ctrl;15 }View Code 9、在private void @__BuildControlTree中添加創(chuàng)建控件代碼: 1 global::System.Web.UI.HtmlControls.HtmlGenericControl @__ctrl1;2 @__ctrl1 = this.@__BuildControlmydiv();3 System.Web.UI.IParserAccessor @__parser = ((System.Web.UI.IParserAccessor)(@__ctrl));4 @__parser.AddParsedSubObject(@__ctrl1); 10、為可視化WebPart添加后臺(tái)代碼,如下圖: 代碼非常簡(jiǎn)單,只是讀取站點(diǎn)的Title,并顯示出來: 11、創(chuàng)建完可視化WebPart以后,創(chuàng)建WebPart,在項(xiàng)目上右鍵,新建項(xiàng),選擇WebPart;WebPart比較簡(jiǎn)單,只是添加后臺(tái)代碼就可以了,代碼依然是讀取站點(diǎn)Title然后Render出來; 12、添加完畢WebPart,我們添加網(wǎng)站欄,新建一個(gè)網(wǎng)站欄,然后,編輯網(wǎng)站欄的Xml即可: 13、然后,再添加應(yīng)用程序頁(yè),如下圖: 因?yàn)闇y(cè)試,功能比較簡(jiǎn)單,只是改了上面的文字,就是測(cè)試應(yīng)用程序頁(yè)是否可以使用; 14、創(chuàng)建模塊,添加母版頁(yè),如下圖: 這是模塊的目錄結(jié)構(gòu): 模塊的Xml描述文件,如下圖: 15、到這里,能創(chuàng)建的項(xiàng)目,都已經(jīng)創(chuàng)建完畢,并添加了簡(jiǎn)單的功能代碼,那些不能創(chuàng)建的,會(huì)報(bào)如下錯(cuò)誤,看了看應(yīng)該是調(diào)用程序集與SharePoint交互,而本地并沒有SharePoint造成的; 16、下面是我的本地解決方案的完整結(jié)構(gòu),包括兩個(gè)Feature(一個(gè)web,一個(gè)Site范圍),還包括應(yīng)用程序頁(yè)、模塊、網(wǎng)站欄、可視化WebPart、WebPart; 17、將代碼拷貝到服務(wù)器,在項(xiàng)目上右鍵,按功能鍵F4調(diào)出屬性菜單,修改站點(diǎn)Url,在服務(wù)器上打包部署; 18、部署解決方案完畢,頁(yè)面上添加WebPart,正常顯示: 19、頁(yè)面上添加可視化WebPart,顯示正常: 20、打開網(wǎng)站欄,我們創(chuàng)建的網(wǎng)站欄已經(jīng)部署成功,如下圖: 編輯網(wǎng)站欄,如下圖,可以編輯網(wǎng)站欄的欄名,并選擇網(wǎng)站欄所屬的分組,這里的分組是網(wǎng)站欄xml中描述的分組: 21、打開應(yīng)用程序頁(yè)面,如下圖,顯示正常: 22、使用SPD打開網(wǎng)站,找到母版頁(yè)文件夾,發(fā)現(xiàn)母版頁(yè)也已經(jīng)部署成功,就此,所有測(cè)試的模板,均證實(shí)本地創(chuàng)建、開發(fā),服務(wù)器部署是可行的; 總 結(jié) 美中不足,因?yàn)楸镜貨]有SharePoint環(huán)境,所以我們打包解決方案依然要去有環(huán)境并裝有VS的地方打包,然后部署,但是本地開發(fā),也已經(jīng)算是很大的進(jìn)步了,我們不用在糾結(jié)于沒有服務(wù)器了。 Sharepoint 可以幫助企業(yè)用戶輕松完成日常工作。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!