Question 144
You are developing a Feature that will be used in multiple languages.
You need to ensure that users view the Feature's title and description in the display language of their choice.
What should you create?
A. a Feature event receiver
B. a site definition
C. multiple Elements.xml files
D. multiple Resource (.resx) fileshtml
解析:
本題的實質是想實現Sharepoint網站的語言支持或本地化。
本地化 是自定義給定區域性或區域設置下的應用程序、網頁或網站的過程。在 Microsoft SharePoint Foundation 2010 中,本地化主要包括翻譯用戶界面 (UI) 的顯示文本。網站 UI 有時稱做「部件版式」,即與控件和表單關聯的視覺元素,尤爲是標題欄、菜單和導航連接,以及用於構架和組織內容或幫助用戶與之交互的全部元素。
利用多語言用戶界面 (MUI) 功能,用戶能夠更改 SharePoint Foundation 2010 UI 的語言。例如,講西班牙語但在英語用戶界面中工做的用戶能夠經過使用任何頁面右上角的控件,將顯示語言更改成西班牙語。該用戶能夠單擊用戶名對應的箭頭,指向「選擇顯示語言」,而後單擊「Español」。隨即網站的工具欄、導航欄、列表標題和列標題將顯示爲西班牙語。
若要使這種操做正常執行,服務器場管理員必須下載和安裝要支持的每種語言的 SharePoint Foundation 2010 語言包,並且網站全部者必須啓用備用語言支持。
因此使用語言包是實現本地化的一個層面,但MUI 功能不是翻譯工具。若是安裝了某個語言包,則 MUI 能夠在顯示 SharePoint Foundation 中包含的用戶界面文本時切換到該語言。但是MUI 不能更改添加到 SharePoint Foundation 中的自定義元素的用戶界面文本【這纔是本題涉及到的另外一個層面: 自定義元素】,直到您提供這些元素的本地化資源。
在本地化解決方案時,您應考慮解決方案向用戶顯示的全部文本信息。 必須翻譯信息性消息、錯誤消息和 UI 字符串,並將這些翻譯放在資源文件中(即本題的.resx文件中)。資源文件中的每一個字符串都有惟一的標識符。Visual Studio 中的功能資源始終命名爲 Resources。 若是選擇某種不是固定語言的語言,則會向資源文件名中添加區域性 ID。例如,若是添加固定語言(默認)功能資源文件,則該文件名爲 Resources.resx。 若是經過選擇日語的區域性(日本)來添加特定語言的功能資源,則文件名爲 Resources.ja-JP.resx。 功能資源文件名是自動指派的,沒法進行更改。
因此描述到此,本題的選項也就出來了,即經過multiple Resource (.resx) files來實現多語言支持。
再來看看其它選項:
選項A. a Feature event receiver 功能事件接收器, 用於指定在功能的生存期中做爲四個關鍵事件的一部分調用的服務器端代碼例程:安裝、激活、停用和刪除。開發人員建立一個功能,並肯定它在激活時必須對對象模型進行某些調用,在停用時必須執行某些清理。開發人員還建立一個自定義功能事件接收器類,並在功能定義中包括對該類的引用。因此功能事件接收器是與多語言支持無關係的。
選項B. a site definition其定義就是:Contains a server-side collection of files that defines the structure of one or more site templates.也就是在服務器端包含了若干文件(這些文件就是ASPX頁面文件以及XML文件)用於定義一個或多個站點模板的結構。很顯然,是與站點定義相關,與多語言支持無關。
選項C. multiple Elements.xml files 包含功能元素聲明的功能清單文件,與功能定義相關,與多語言實現無關。
因此本題目正確選項應該是D
參考:
http://msdn.microsoft.com/zh-cn/library/ff955227(v=office.14).aspx
http://blogs.msdn.com/b/joshuag/archive/2009/03/07/using-resource-files-resx-when-developing-sharepoint-solutions.aspx前端
Question 145
You are developing a custom Feature by using Microsoft Visual Studio 2010.
You need to ensure that when you deploy the Feature, a file named Form1.xsn is deployed to the Feature folder. You must achieve this goal by using the minimum amount of development effort.
What should you do?
A. Add a new module to the Visual Studio project.
B. Add a Feature receiver to the Visual Studio project.
C. Configure the Properties element in the Feature definition file.
D. Configure the Activation Dependencies element in the Feature definition file.web
解析:
本題是想要在部署一個Feature時,須要包含一個指定的文件到此Feature的目錄中。
功能(Feature)是Sharepoint的重要概念,功能下降了對網站進行簡單自定義的複雜性,同時在將升級應用於部署時,功能至關可靠。藉助功能,無需再複製大量代碼便可更改簡單功能。功能存儲在前端 Web 服務器上的 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES 目錄中。Feature 子文件夾包含 Feature.xml 文件,該文件用於定義功能的基本屬性以及綁定到功能的元素
因此Feature.xml文件及其包含的元素及相關內容就是解決本題的基礎,Feature 元素用於在 Feature.xml 文件中定義功能並指定支持功能的程序集、文件、依賴項或屬性的位置。功能包括 Feature.xml 文件和用於描述各個元素的任意數量的文件。
模塊(Module)是在網站中設置的文件實例的集合。若要將文件設置到 Microsoft SharePoint Foundation 網站中,必須在功能或網站定義中使用 Module 元素。經過 Module 元素可向 SharePoint Foundation 網站或文檔庫中添加一個或多個文件【此句就是本題要達到的目的,也便是選項A所描述的方式】。
Module 元素中包含 File 元素,後者用於定義要設置哪些文件,也能夠包含對要添加的 Web 部件集的定義。若是經過 Module 元素將文件設置到子目錄,SharePoint Foundation 會自動確保所建立的目錄結構與您的文件相匹配。
功能激活依賴關係(Activation Dependencies)表達對兩個功能之間相互關係的要求。您能夠針對同一個範圍的功能或更大範圍內的功能表達激活依賴關係。當某個特定範圍內的某個功能對於其餘範圍內的其餘功能具備依賴關係時,就存在跨範圍激活依賴關係。跨範圍激活依賴關係的一個示例是一個網站範圍的功能依賴於一個網站集範圍的功能【即選項D描述的方式】。很顯然,功能激活依賴關係並非用來解決添加一個新的文件到某個Feature中的問題的。
選項C所提的Properties element是用來描述相關Feature的屬性的。與添加外部文件資源無關。
至於選項B, Feature receiver 是用來指定在功能的生存期中做爲四個關鍵事件的一部分調用的服務器端代碼例程:安裝、激活、停用和刪除。你固然能夠在此處對外部文件資源作添加處理。但經過複雜的代碼編寫來實現本題目的顯然不符合本題的儘可能簡單的操做要求。
因此本題目正確選項應該是A
參考:
http://msdn.microsoft.com/en-us/library/ms462994.aspx
http://msdn.microsoft.com/en-us/library/ms441170.aspx服務器
Question 146
You need to add a new field to a provisioned content type.
You must propagate the field to child lists and child content types.
What should you use?
A. <AddContentTypeField>
B. <ApplyElementManifests>
C. <FieldRefs>
D. <MapFile>
解析:
本題要求添加一個新的字段(Field)到某個已經有的內容類型中,並要把此變更傳播到其子列表和子內容類型中去。
表面上看這是一道關於內容類型實現的題目,但實質上倒是一個Feature升級(或功能版本控制)的題目。
SharePoint 2010 中的功能版本控制支持提供許多升級功能時可以使用的功能。例如,可以使用 SPFeature.Version 屬性來肯定服務器場上部署的功能版本,於是肯定必須升級的功能。 您還能夠定義 SPFeatureDependency.MinimumVersion 屬性的值以處理功能依賴項。例如,可以使用 MinimumVersion 屬性來確保激活依賴功能的特定版本。可在功能的每一個新版本中添加或刪除功能依賴項。
SharePoint 2010 功能框架還提升了對象模型級別,從而更輕鬆地支持功能版本控制。您可使用 QueryFeatures 方法來檢索功能列表,並且能夠同時指定功能版本以及某功能是否須要升級。
咱們在 Feature.xml 文件中定義升級操做。SPFeatureReceiver 類包含一個 FeatureUpgrading 方法,您可以使用該方法來定義升級期間執行的操做。當功能的 Feature.xml 文件包含一個或多個 <CustomUpgradeAction> 標記時,功能升級期間將調用此方法。
AddContentTypeField 升級操做可用來定義現有內容類型的其餘字段。它還提供將這些更改向下推入子實例的選項,這一般是首選行爲。最初將一個內容類型部署到網站集時,將在網站集級別建立該內容類型的定義。若是該內容類型在任何子網站或列表中使用,則將建立該內容類型的子實例。若要確保更新特定內容類型的每一個實例,必須將 PushDown 屬性設置爲 true,如如下示例所示。框架
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"> <UpgradeActions> <VersionRange EndVersion ="2.0.0.0"> <AddContentTypeField ContentTypeId="0x0101002b0e208ace0a4b7e83e706b19f32cab9" FieldId="{ccbcd479-94c9-4f3a-95c4-58897da434fe}" PushDown="True"/> </VersionRange> </UpgradeActions> </Feature>
【因此這正是本題須要的答案,即選項A】
ApplyFeatureManifests 升級操做可用來將新項目應用到 SharePoint 2010 網站,而無需從新激活功能。正如您可將新元素添加到任何新的 SharePoint elements.xml 文件中同樣,您可指示 SharePoint 將特定元素文件中的內容應用到激活了給定功能的網站。
若是要升級現有功能,且該功能的 FeatureActivating 事件接收器執行您不但願再次對已部署功能的網站執行的操做,則可使用此升級操做。如下示例演示如何在 Feature.xml 文件中包含此升級操做。ide
<Feature xmlns="http://schemas.microsoft.com/sharepoint/"> <UpgradeActions> <VersionRange EndVersion ="2.0.0.0"> <ApplyElementManifests> <ElementManifest Location="AdditionalV2Fields\Elements.xml"/> </ApplyElementManifests> </VersionRange> </UpgradeActions> </Feature>
【這正是選項B的描述】
至於選項C.D 均與Feature的版本控制無關。
選項C. <FieldRefs> 用於指定要在此內容類型中引用的列。
ID: 可選屬性,類型爲 Text。指定標識字段的 GUID
Name: 可選屬性,類型爲 Text。此屬性提供將引用的字段的內部名稱
選項D. <MapFile>容許您將未自定義的文件映射到前端 Web 服務器上的其餘位置。
因此本題目正確選項應該是A
參考:
http://msdn.microsoft.com/en-us/library/ff595314.aspx
http://msdn.microsoft.com/zh-cn/library/ee537575(v=office.14).aspx工具