Question 139
You create a SharePoint solution that contains two Features named Feature1 and Feature2.
You need to ensure that Feature1 is always activated before Feature2. You must achieve this goal by using the minimum amount of development effort.
What should you do?
A. Create a custom Feature receiver for Feature1.
B. Create a custom Feature receiver for Feature2.
C. From Feature1.feature explorer, add Feature2 to the Feature Activation Dependencies list.
D. From Feature2.feature explorer, add Feature1 to the Feature Activation Dependencies list.
解析:
本题是关于功能激活依赖关系,要求Feature1在Feature2之前被激活,且工作量最少。
Sharepoint功能激活依赖关系表达对两个功能之间相互关系的要求。您可以针对同一个范围的功能或更大范围内的功能表达激活依赖关系。当某个特定范围内的某个功能对于其他范围内的其他功能具有依赖关系时,就存在跨范围激活依赖关系。跨范围激活依赖关系的一个示例是一个网站范围的功能依赖于一个网站集范围的功能。
一般规则:
依赖关系仅可处理一个深度级别。换句话说,不支持依赖关系链。如果最后一个功能可见(也就是说,如果一个可见功能依赖于第二个可见功能,接下来第二个可见功能依赖于第三个可见功能),则 SharePoint Foundation 不支持多层激活依赖关系。但是,如果一个可见功能依赖于第二个可见功能,而接下来第二个可见功能依赖于一个隐藏功能,则 SharePoint Foundation 的确支持多层激活依赖关系。
您可以针对隐藏功能或可见功能确定激活依赖关系,但隐藏功能不能具有激活依赖关系。Feature 元素上的 Hidden 属性确定功能是否显示在用户界面中。
当多个功能对某个给定功能具有依赖关系时,请记住,让其中一个从属功能处于没有所需功能依赖关系的状态会带来风险。例如,假设一个可见的网站集范围的功能(名称为功能 B)依赖于一个隐藏的网站集范围的功能(名称为功能 A),而第三个可见的网站范围的功能(名称为功能 C)也依赖于功能 A。停用功能 B 也将停用功能 A,这样,就使功能 C 处于没有所需功能依赖关系的状态。
针对本题:既然要求工作量最少,首先就排除具体的代码编程,即排除选项A.B。且由于上述的一般规则,所以即便要在功能事件接收器中去激活另一个功能也应该有诸多限制,且能否实现我没有试过,但由于在VS2010中可以在Feature Designer的Feature Activation Dependencies设置窗口中容易的设置,所以如此偿试的人应该不多。
所以转向选项B.D,由于是Feature2依赖于Feature1,所以应该是把Feature1加到Feature2的功能激活依赖设置表中。因此排除选项C。
所以本题目正确选项应该是D
参考:
http://www.mssharepointtips.com/tip.asp?id=1042
http://msdn.microsoft.com/en-us/library/aa543162.aspx
http://msdn.microsoft.com/zh-cn/library/aa543162(v=office.14).aspx
Question 140
You create a SharePoint solution.
You deploy the SharePoint solution by using Microsoft Visual Studio 2010. You need to prevent the Feature that is contained in the solution from being automatically activated when you deploy the solution.
What should you configure in Visual Studio 2010?
A. the active deployment configuration
B. the build configuration
C. the pre-deployment command line
D. the startup item
解析:
本题描述的是你想通过VS2010部署一个Solution,但想要用阻止某个Feature被自动激活。
如果你看了Question138中的选项D描述,就应该能回答此题了。但为保证本题的完整性,下面再重一遍:
默认情况下,在运行 Visual Studio SharePoint 应用程序时,将在 SharePoint Server 上自动为您激活该应用程序的功能。 不过,在调试功能事件接收器时,这会导致问题,原因是当 Visual Studio 激活某个功能时,该功能会在不同于调试器的进程中运行。 这意味着,一些调试功能(如断点)将无法正常工作。
若要在 SharePoint 中禁用功能的自动激活并允许对功能事件接收器进行适当的调试,请在调试之前将项目的“活动部署配置(active deployment configuration)”属性的值设置为“无激活(No Activation)”。 然后,在开始调试您在 Visual Studio后的 SharePoint 应用程序中,请手动激活 SharePoint 中的功能。 若要激活该功能,请打开 SharePoint 中的 网站操作 菜单上,选择 站点设置(Site Settings),选择 管理网站功能 链接(Manage Site Features),然后选择该功能旁边的激活按钮,继续像以往一样进行调试。所以本题应该选A.
再来看其它选项:
选项B. the build configuration “生成配置”提供了一种方法,用于存储多个版本的项目或解决方案的相关属性。 你可以在标准工具栏找到Solution Configurations List并通过它更改活动配置。默认情况下,使用 Visual Studio 创建的项目包括调试(Debug)和发布配置(Release)。VS2010 自动配置的“调试”配置以便于程序员调试应用程序,而配置“发布”配置以便用于应用程序的最终发布。 你也可以创建和编辑自定义解决方案和项目配置,以满足具体应用程序的要求。
选项C. the pre-deployment command line在VS2010中,我们可以通过设置预先部署命令和后期部署命令来自定义部署过程。 在从 Visual Studio 调试 SharePoint 解决方案时,这些命令会在其他部署操作前后运行。不过这里的命令都无法介入到Solution的部署内部过程中,所以无法通过它去停止指定Feature的激活与否。
选项D. the startup item 它是项目(Project)的属性之一,用于说明项目在运行时第一个应该被运行的Item。此选项也与本题要求无关。
所以本题目正确选项应该是A
参考:
http://msdn.microsoft.com/en-us/library/ee231587.aspx
http://msdn.microsoft.com/en-us/library/vstudio/ee231517.aspx
http://msdn.microsoft.com/en-us/library/ee256698.aspx
Question 141
You create a SharePoint solution by using Microsoft Visual Studio 2010. The SharePoint solution contains a third-party assembly.
You need to deploy the third-party assembly to the Global Assembly Cache (GAC).
What should you use?
A. a SharePoint mapped folder
B. the active deployment configuration
C. the Feature Designer
D. the Package Designer
解析:
本题是想要在VS2010中把一个第三方的Assembly部署到GAC。
选项A. a SharePoint mapped folder 前面提到过, 在 SharePoint 中的一些常用文件夹,例如图像(Images)和布局(Layouts)文件夹都牢牢的定义在Sharepoint的文件层次结构中(就像一种默认的契约,不能由用户自行更改,而是某种程度地固化在系统架构中了)。 您可以将这些文件夹映射到 SharePoint 项目中,以便更加轻松地访问它们。 很显然,新Map一个映射文件夹也仅仅是为Sharepoint项目新建立一个快捷方式,与本题的部署第三方程序集无关。
选项B. the active deployment configuration:用于阻止指定的Feature在部署Solution后自动激活,也与本题无关。
选项C. the Feature Designer。通过使用 Visual Studio 中的功能设计器,可以创建并自定义 SharePoint 功能。 例如,可以设置功能作用域,并将其他功能添加为依赖项。 默认情况下,当您在解决方案资源管理器或 SharePoint 包资源管理器中添加新功能时,将会打开“功能设计器”。但作为第三方已经开发好的程序集却并不属于你的功能,所以选项C也与本题无关。
选项D. the Package Designer 利用包设计器,您可以创建和自定义部署包。 例如,您可以添加 SharePoint 项目项和功能,重置 IIS 服务器,设置功能激活范围以及标识功能依赖项。 该设计器还会生成一个清单,即一个用于描述每个包的 XML 文件。在Package中包含了Features以及其它使用到的资源(Assets:如第三方的程序集)。可以在Visual Studio中将相关的 SharePoint 元素组合到功能中。 例如,“联系人”列表定义的功能可以包括列表实例和列表定义。 可以将这两个元素合并到单个功能中以进行部署。 接下来,您可以创建一个 SharePoint 解决方案包 (.wsp) 以将多个功能、网站定义、程序集和其他文件捆绑到单个包中。当然,在你部署你的解决方案时,对应的部件就会部署到对应的位置(包括GAC)。
所以本题目正确选项应该是D
参考:
http://msdn.microsoft.com/en-us/library/ee231605.aspx
http://msdn.microsoft.com/en-us/magazine/ee309510.aspx