SharePoint 2013 開發——APP開發的考慮和建議

Justin-Liu發表於2015-06-29

需要考慮的方面:

1. 記得CSOM授予網站集及以下的許可權,而場解決方案需要整個場的訪問許可權。

2. 由於應用程式是彼此完全獨立的存在,他們直接不能進行直接的通訊,這跟在平板電腦和手機上是一樣的。一個實現方式是在APP中留一個外接的部分,比如放到Azure雲中,這個外接的部分可以暴露一個WEB服務如WCF端點,可以作為APP之間通訊的媒介,這和代理的原理類似。

3. Silverlight還沒有被正式廢棄,仍然在客戶端物件模型中有效。然而,微軟更建議使用JavaScript和HTML5。

4. 每個APP的DNS條目不是必須的,建議為目標APP域建立一個萬用字元DNS條目,Visual Studio可以為你做這件事。

5. APP支援他們自己的身份驗證,意味著他們支援Windows認證或表單認證/基於宣告的認證。

6. 有一點必須要注意,不能使用伺服器端程式碼(包括自定義的伺服器端控制元件)。所有自定義的伺服器端程式碼必須託管在SharePoint環境的外部。但是伺服器端程式碼仍然是本地SharePoint開發者的便利工具,這也是我一直強調Server API的不可替代的方面。Web部件、應用程式頁、計時器任務等仍然是有很大價值的東西。APP拓寬了SharePoint業務開發的領域,但是使用起來仍然是有限的,我覺得這也是資料不多的原因吧。

7. 遠端事件接收器與傳統的事件接收器類似,但是程式碼執行在外部的服務上。遠端事件接收器對於開發來說有些棘手,但APP是可以使用的,因為傳統的不能用在APP上。


提供的關鍵建議:

1. Colud-hosted和SharePoint-hosted應用程式的決策標準。

Cloud-hosted APPSharePoint-hosted APP
最靈活的選擇,支援任意型別的應用程式程式碼基於內嵌的JavaScript程式碼需求,適合較小的應用程式
開發者可以使用任何開發技術建立自己的基礎架構基於SharePoint的JavaScript程式碼,不存在服務端程式碼
可能需要處理多租戶的管理和明確的許可權管理繼承頁面或網站上的多租戶功能和許可權

2. APP和場解決方案的決策標準。

首先,微軟是建議開發者預設優先選擇APP的開發方式的,這是因為對於場解決方案來說,APP提供了一些優點:

(1). 對於終端使用者來說,可以通過SharePoint應用商店和企業內部的應用程式目錄方便地進行應用的查詢、購買和安裝;應用程式一次編寫之後可以在本地、雲端幾乎任何位置執行。

(2). 對於管理員來說,應用程式相對於沙盒解決方案提供了更安全的擴充套件SharePoint的方式。

(3). 對於開發者來說,應用程式可以應用非SharePoint開發技術,這降低了開發者必備技術和學習曲線的門檻;相對於場解決方案,應用程式更靈活和易於擴充套件,並且應用程式通過OAuth實現了利用安裝者的許可權;開發者可以使用跨平臺標準,包括HTML、REST、OData、JavaScript和OAuth。

(4). 對於企業來說,SharePoint應用程式比解決方案更加靈活,通過微軟SharePoint商店可以輕鬆地擴充市場和進行銷售。

儘管有了上述優點,我仍然會強調解決方案(即Server API)是無法取代的,所以當我們需要解決具體問題時,就需要從以下的方面來考慮判斷使用哪種方式:

(1). 程式碼中是否需要包含伺服器端物件模型。這個是顯而易見的,Server API永遠是最全面最強大的介面(此處強調一下,強大很多),有些CSOM力所不能及的地方就需要使用解決方案。

(2). 程式碼是否需要訪問在執行APP的網站之外的SharePoint物件,如果需要,那麼使用解決方案。

(3). 我們實現的東西的目的是為了協助終端使用者還是管理員,管理員任務是不能通過CSOM實現的,所以這種情況我們也要使用解決方案。

(4). 簡單的東西用APP,複雜的東西用解決方案。因為APP個體之間是相互獨立的,如果我們要實現一個相對大型的有很多內在聯絡的東西,還是選擇解決方案更合適一些。

但是,場解決方案對於一個伺服器上的所有Web應用程式都可用,需要完全信任並且具有管理員許可權,程式碼錯誤導致的異常嚴重時會造成整個伺服器癱瘓,所以一定要小心。

最後再引用一個表格,在我們實際進行開發任務的時候可以參考。



相關文章