Sharepoint學習筆記—習題系列--70-576習題解析 -(Q144-Q146)

Question  144
 You are planning a feature upgrade for a SharePoint 2010 farm. The original feature with a version number of 1.0.0.0 is activated in numerous scopes within the farm. You have designed a new version of the feature, 2.0.0.0, which has been deployed and activated in many locations but not all. You need to recommend a way to use the object model to determine if the version number of each feature instance is less than the 2.0.0.0 version in all of the locations. Which approach should you recommend?
A. Use the object model to update the Version attribute of the feature in the existing Feature.xml file.
B. Call the Query Features method for each location hosting the feature in the various scopes.
C. Programmatically add an <Upgrade Actions> section to the Feature.xml file that specifies the new version number for the feature.
D. Create a feature receiver that calls the Upgrade method of the SPFeatures class for the feature.前端


解析:
   你計劃升級Sharepoint2010場內的某個功能,此功能的老版本1.0.0.0實例已經在場內的若干層次被激活了,你開發的新版本2.0.0.0 被部署到場內的許多位置,但並無覆蓋全部1.0.0.0實例的位置。所以,你想要使用對象模型來鑑別場內的哪些功能實例其版本號是低於2.0.0.0的。
   本題仍舊涉及Sharepoint的功能升級:
   爲了提供功能升級能力,Microsoft SharePoint Foundation 對象模型中已經添加了新的類型和成員。這些類型和成員包括:數據庫

  •  FeatureUpgrading 事件
  •  Version 屬性
  •  QueryFeatures 方法
  •  Upgrade 方法

 1. FeatureUpgrading 事件: 功能接收器 (SPFeatureReceiver) 如今可用於處理 FeatureUpgrading(SPFeatureReceiverProperties, String, IDictionary<String, String>) 事件。您能夠實現本身的自定義功能接收器來升級功能實例。
2.Version屬性: 現有的 SPFeatureDefinition 類已具備一個 Version 屬性,而 SharePoint Foundation 中的 SPFeature 類還提供一個新的 Version。可是,在 Feature.xml 文件中指定的當前功能版本是在 SPFeatureDefinition 類中定義的版本。Version 是惟一在指定做用域中與某個功能實例相關聯的版本類,而該做用域與功能定義版本可能並不匹配。若是與某個特定做用域中的對象(例如 SPWebApplication 或 SPSite 對象)關聯的一個或多個功能的版本號比與該功能實例關聯的 Feature.xml 文件中指定的版本號低,則肯定該對象須要升級。【選項A所涉及的思路】,但本題是須要判斷哪些功能實例其版本號是低於2.0.0.0的,而不是選項A所做的升級版本號。因此選項A也應該被排除。
  3.QueryFeatures 方法:新的 QueryFeatures 方法容許您經過使用一組篩選條件來查詢不一樣做用域中的功能。SPWebService、SPWebApplication、SPContentDatabase 和 SPSite 類均提供一個 QueryFeatures 方法,其重載容許您指定不一樣的條件來肯定返回哪一個功能實例結果集。編程

  •  SPWebService -- 在服務器場中查找符合篩選條件的已激活的功能實例。
  •  SPWebApplication -- 查找符合指定篩選條件的 Web 應用程序、網站集和網站範圍的功能。將針對 Web 應用程序對象中的全部內容數據庫運行查詢,並按照內容數據庫對返回的集合進行排序。
  •  SPContentDatabase -- 在內容數據庫中查找範圍限定爲網站集和網站並符合指定的篩選條件的功能。返回的集合相對於網站層次結構排序。例如,父網站的功能在子網站功能以前表示,層次結構爲從上至下。
  •  SPSite -- 查找全部符合特定篩選條件的網站集和網站範圍的功能。返回的集合按照網站層次結構排序。父網站的功能顯示在子網站功能的前面,而且按照從上至下的方式安排層次結構。新的客戶端對象模型中提供了此類  的 QueryFeatures 方法的重載。

在升級期間,QueryFeatures 方法在它發現某個實例版本號低於當前 Feature.xml 定義版本號時,肯定某個功能實例是否過時。根據 Feature.xml 文件中的 UpgradeActions 指令,將爲每個須要升級的功能實例調用升級。在成功升級某個功能實例以後,其版本號將會更新以匹配 Feature.xml 文件定義版本號。
  從以上描述能夠判斷,QueryFeatures 方法正是咱們在本題須要用到的方法,因此選項B是本題的正解。
  4. Upgrade 方法:SPFeature 類如今提供一個 Upgrade(Boolean) 方法來爲全部做用域中的某個功能實例執行升級:Farm、WebApplication、Site 和 Web。在對一個從屬功能實例調用 QueryFeatures 方法時,該方法首先升級相關層次結構中最高級別的功能實例,而後升級依賴該功能的全部功能實例。這種按層次結構升級的過程可確保全部從屬功能實例與其所依賴的功能實例保持同步。【選項D所採用的思路】,但因爲本題是要使用對象模型來鑑別場內的哪些功能實例其版本號是低於2.0.0.0的,因此與此方法無關。
   至於選項C. <UpgradeActions>節,Feature.xml 文件中新增的 <UpgradeActions> 節指定可應用於指定功能的升級操做。能夠將 <UpgradeActions> 節放置在 Feature.xml 文件的開頭或末尾,使其位於 <Feature> 元素的內容中。經過該節,您能夠爲不一樣的升級範圍指定升級操做,而且能夠包含應用於指定範圍的升級操做列表。升級定義始終將功能升級到 <Feature> 元素中聲明的版本。因此很顯然,選項C並非本題想要的解決辦法。安全

所以本題答案應該選 B 服務器

參考 
http://msdn.microsoft.com/zh-cn/library/ee535708(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/ee537575(v=office.14).aspx架構


Question  145
 You are designing a custom application to automate the deployment of SharePoint 2010 solutions. You need to ensure that the application uses Windows Power Shell cmdlets. Which cmdlet sequence should your application use?
A. Add-SPSolution, then Install-SPSolution.
B. Add-SPUserSolution, then Install-SPUserSolution.
C. Install-SPSolution, then Add-SPSolution.
D. Install-SPUserSolution, then Add-SPUserSolution.app


解析:
  你開發了一個應用來完成自動部署Sharepoint2010解決方案的任務,你須要保證此應用使用Power Shell命令。你應該選擇哪一個選項呢?
  本題關於Sharepoint解決方案包的部署安裝,Sharepoint解決方案包 是一個分發包,可將您的 SharePoint Server 2010 自定義開發工做分發到您的服務器場中的 Web 服務器或應用程序服務器。解決方案可用於打包和部署自定義功能、網站定義、模板、佈局頁、Web 部件、級聯樣式表和程序集。
  您可使用解決方案包部署新解決方案,以及升級服務器場中的現有解決方案。您能夠將全部 SharePoint Server 實體打包爲一個文件,將該文件添加到解決方案存儲區,以及將其部署到服務器場中的前端 Web 服務器。解決方案包可用於同步前端 Web 服務器,以使其狀態與服務器場中其餘 Web 服務器的狀態一致。
  在本地部署中,僅對從中啓動部署操做的計算機部署解決方案文件。僅在將解決方案文件部署到服務器場中的全部可用服務器以後,纔會在配置數據庫中將該解決方案標記爲「已部署」。而後會安裝解決方案功能,並將架構和定義文件提交到配置存儲區。
  添加解決方案包:必須將解決方案包添加到 SharePoint Server 服務器場的解決方案數據庫中,而後才能部署該解決方案包。
  部署解決方案包:您可使用管理中心網站或 Windows PowerShell 來部署導入的解決方案。在使用 Windows PowerShellAdd-SPSolution cmdlet 將某解決方案添加到解決方案存儲區後,必須將該解決方案部署到網站,而後才能對其進行訪問。
  上面描述說明,要先」添加」,再」安裝部署」,因此能夠直接排除選項C.D,由於它們的操做順序反了。
  選項A.B主要區別是兩個PowerShell命令的區別:
   Add-SPUserSolution: 向解決方案庫上載新的沙盒解決方案。此 cmdlet 不會激活上載的沙盒解決方案;若要在網站集中激活此解決方案,請使用 Install-SPUserSolution cmdlet。
   Add-SPSolution: 向服務器場上載 SharePoint 解決方案程序包。此 cmdlet 不會部署上載的 SharePoint 解決方案。使用 Install-SPSolution cmdlet 能夠在服務器場中部署 SharePoint 解決方案。
   因爲本題是」 完成自動部署Sharepoint2010解決方案的任務」,因此應該選A。而選項B使用Add-SPUserSolution命令僅是針對的是沙盒解決方案,且僅是上載解決方案到Solution Gallery,而後用Install-SPUserSolution激活。less

所以本題答案應該選 A 佈局

參考 
http://technet.microsoft.com/en-us/library/cc262995(v=office.14).aspx
http://technet.microsoft.com/zh-cn/library/ff607715.aspx
http://technet.microsoft.com/zh-cn/library/ff607552.aspx
http://msdn.microsoft.com/zh-cn/library/vstudio/ee231544.aspx
http://msdn.microsoft.com/zh-cn/magazine/cc507633.aspx網站


Question  146
 You are designing a SharePoint 2010 application. You have a requirement to deploy content between servers that experience frequent interruptions in connectivity. You need to design a strategy for exporting the content to a package and transporting the package to meet the requirements. Which approach should you recommend?
A. Create a job to export the content to a package, and then create a job to transport the package.
B. Create a path to export the content to a package, and then create a job to transport the package.
C. Use the Content Migration API to export the content to a package, and then create a path to transport the package.
D. Use the Content Migration API to export the content to a package, and then manually transport the package.


解析:
  你開發了Sharepoint2010應用程序來完成向若干個服務器中部署某個內容,這些服務器處於頻繁的相互交互狀態。所以,你須要想出一個辦法來完成把你想部署的內容打進一個包,而後再傳送到對應的位置。你該如何操做呢?
  本題涉及到Sharepoint的內容遷移,SharePoint Foundation 可提供一組支持將內容和依賴關係遷移到 SharePoint Foundation網站的高度靈活的應用程序編程接口 (API)。此內容可源自另外一個 SharePoint 網站,也能夠來自外部源。SharePoint 內容遷移的設計基於導出/導入模型。也就是說,您首先須要將網站數據、依賴關係和網站結構導出到累計加入內容遷移數據包(或多個數據包)的數據文件。而後,在目標位置導入該內容遷移數據包,並在遷移目標上重建數據包中的解壓縮內容以及數據、依賴關係和結構。
  內容遷移 API 可提供簡單而靈活的解決方案,用於在 SharePoint Foundation 網站之間遷移內容。可將與 Windows SharePoint Services 網站有關的內容連同任何依賴項(例如:安全性、角色、版本控制、工做流和其餘元數據)一塊兒導出到稱做內容遷移數據包 的一個或多個 XML 格式的文件中。在導入到目標網站的過程當中,將提取並解釋打包的數據。也能夠在遷移到其餘服務器以前將這些數據包保存到文件服務器。
  使用內容遷移 API 的方法
能夠經過如下三種方法調用內容遷移 API。
• Windows PowerShell
利用 Windows PowerShell,可使用導入和導出操做來遷移數據。可是,只能在網站範圍內執行此操做。此外,沒法選擇保留在某些狀況下多是必需的 GUID。
• SOAP
可使用在 Sites Web 服務中實現的 ImportWeb(String, String, String, Boolean, Boolean, Boolean, Int32) 和 ImportWeb(String, String, [], String, Boolean) 方法遷移遠程服務器上的數據。可是,在使用 Stsadm.exe 時,只能在網站範圍內執行操做。此外,沒法保留在某些狀況下多是必需的 GUID。
• Content Migration object model
對象模型可控制多數數據遷移方案。經過使用對象模型,能夠將網站中的任何內容遷移到列表中的項或庫中的單個文檔。能夠選擇是否包含有關適用於要遷移的對象的安全性、版本控制、用戶角色和其餘元數據的信息。內容遷移對象模型
 在本題的備選項中只有選項C.D使用到了Content Migration API,它們的區別在導入操做上。
因爲內容遷移是一個分兩步完成的過程。首先,將源中的內容導出到遷移包,而後將遷移包導入目標。表面上,導入內容只是導出的反向操做。可是,在導入操做中會有更復雜的流程和更多的決策點,這種複雜性並不只僅是像選項C那樣設置一個Path那麼簡單,它涉及到許多屬性的設置:當指定導入設置 (SPImportSettings) 時,請確保與相應的導出設置 (SPExportSettings) 相匹配。例如,若是 SPExportSettings 對象上的 FileCompression 屬性設置爲 true,則 SPImportSettings 對象的相應 FileCompression 屬性也必須設置爲 true。處理流程會提供一些需進行流程分支的決策點。第一個決策點爲是否要保留對象標識。此屬性設置肯定是經過對象 GUID(若是保留對象標識)仍是經過 URL 來定位導入對象。(有關對象標識和其餘遷移概念的詳細信息,請參閱選擇性遷移中的關鍵概念。)下一個決策點與從新分配父對象有關。若是對象爲層次結構中的頂級對象且您未保留對象標識,則必須從新分配父對象。另外一方面,若是對象不是頂級對象且您未保留對象標識,則無需從新分配父對象。因此在導入過程當中須要採用選項D所使用的人爲介入的方式。
  Sharepoint內容遷移是一個複雜的過程,不是靠job所能完成的(好比遷移內容來自於外部源時,靠Job顯然做用不到外部源),咱們應該依賴於Sharepoint所提供的Content Migration API來做這種工做,這也是排除選項A.B的緣由。
 
所以本題答案應該選  D

參考 
http://msdn.microsoft.com/zh-cn/library/bb249963(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/ms453426(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/cc768611(v=office.14).aspx

相關文章
相關標籤/搜索