31、创建Silverlight Web部件:详细指南

创建Silverlight Web部件:详细指南

1. 了解Silverlight和SharePoint支持情况

Silverlight是一个强大的开发平台,可用于为Web、桌面和移动应用程序创建引人入胜的交互式用户体验,无论在线还是离线。它具有浏览器独立性,通过浏览器插件跨平台和跨设备执行。若想了解更多信息,可访问官方Silverlight开发者中心:http://silverlight.net 。

在Web部件中使用Silverlight,能构建强大而丰富的互联网应用程序(RIA),结合动画、视频、布局、矢量图形、透视3D、特效和Deep Zoom等功能,为SharePoint用户带来出色体验。

SharePoint通过在网页中添加脚本或标记来支持Silverlight。可以开发托管Silverlight的应用程序页面、Web部件页面和Web部件,甚至SharePoint本身的一些功能也是用Silverlight实现的。此外,SharePoint自带一个Silverlight Web部件,可用于托管自定义Silverlight应用程序,只需将其指向包含Silverlight控件的包即可。

2. 准备工作

在开始创建Silverlight Web部件之前,需要在开发机器上下载并安装Silverlight Toolkit,因为后续要使用其中的饼图控件。该工具包可从http://silverlight.codeplex.com/releases 下载。

3. 创建Visual Studio解决方案
  • 打开Visual Studio :以提升模式打开Visual Studio,选择“新建项目”。
  • 选择项目模板 :在“新建项目”对话框中,选择“SharePoint”,然后选择“2010”,并选择“空SharePoint项目”模板。将新项目命名为“SL-SummaryTaskWebPart”,点击“确定”。在弹出的自定义向导中,保留默认设置,点击“完成”。此方法适用于沙盒解决方案和农场解决方案。
4. 创建新的Silverlight应用程序
  • 添加新项目 :在解决方案资源管理器中,右键单击解决方案节点“SLSummaryTaskWebpart”,选择“添加”,然后选择“新项目…”。在“新项目”对话框的模板部分选择“Silverlight”,并选择“Silverlight应用程序”。将项目命名为“TaskGroupsPieChart”,点击“确定”。
  • 配置新Silverlight应用程序 :在弹出的“新Silverlight应用程序”对话框中,取消选中“在新网站中托管Silverlight应用程序”,因为将在SharePoint Silverlight Web部件中测试和调试该应用程序。确保将Silverlight版本设置为“Silverlight 3”。

创建完成后,会显示Silverlight设计器(也称为XAML编辑器),同时在解决方案资源管理器中会看到添加了两个XAML文件:“App.xaml”和“MainPage.xaml”。“App.xaml”类似于控制台应用程序中的“Main”方法,用于启动应用程序并创建新的“MainPage”对象;“MainPage.xaml”是编写实现代码的地方。

5. 准备开发环境
  • 添加饼图控件到工具箱 :右键单击工具箱中的Silverlight控件栏,选择“选择项…”。在“选择项”对话框中,选择“Silverlight组件”选项卡,向下滚动直到找到“PieSeries”条目,它代表由“Chart”控件渲染的饼图数据。勾选该条目,点击“确定”将“PieSeries”添加到工具箱。使用此控件前,必须安装Silverlight Toolkit。
  • 添加对SharePoint Silverlight客户端对象模型的引用 :右键单击“TaskGroupsPieChart”项目中的“引用”文件夹,选择“添加引用”。在对话框中选择“浏览”选项卡,浏览到“{SharePointRoot}\Template\Layouts\ClientBin”目录,选择“Microsoft.SharePoint.Client.Silverlight.dll”和“Microsoft.SharePoint.Client.Silverlight.Runtime.dll”程序集,点击“确定”。
  • 添加使用指令 :在“MainPage.xaml.cs”中添加以下使用指令:
5


-"
    .
1 4
-*  1
  
>+/  5
   4

第一条指令用于访问SharePoint客户端对象模型,第二条指令用于为“TaskGroup”对象创建“ObservableCollection”对象。
- 添加新类 :在“TaskGroupsPieChart”项目中添加一个新类,命名为“TaskGroup”,并添加相应代码。

6. 创建饼图控件
  • 设计UI :双击“MainPage.xaml”打开Silverlight设计器。在工具箱中找到“Chart”控件,将其拖到设计器表面。通过拖动调整“Chart”控件的大小,在“属性”窗口中将图表名称更改为“ctTaskGroupsChart”,并将其“Title”属性设置为“TaskGroups”。
  • 修改XAML :在设计器底部的XAML部分,找到 <chartingToolkit:Chart…> 元素,删除该元素开始标签和结束标签之间的所有内容。然后从工具箱中将“PieSeries”控件拖动到XAML编辑器中,放在 <chartingToolkit:Chart> 标签内。以下是修改后的图表XAML代码:
"
%

8 1"

R
V
")  $   
5"
CNCNN
("   %"8I

1"

%  %"8I


H 
") %
7FDLR    CD
"
%

8 . -   
   !
!"
%

8 1"

  • 配置PieSeries控件属性 :将光标放在 <chartingToolkit:PieSeries/> 行上,打开“PieSeries”控件的“属性”窗口。点击图标按类别对属性进行排序。以下是需要为“PieSeries”控件的相应属性分配的值:
    | 属性 | 值 |
    | ---- | ---- |
    | DependentValuePath | TaskCount(将使用“TaskGroup”类的“TaskCount”属性作为依赖值) |
    | AnimationSequence | FirstToLast(按从第一个到最后一个的顺序添加饼图段) |
    | IndependentValuePath | TaskState(将使用“TaskGroup”类的“TaskState”属性作为独立值) |
    | IsSelectionEnabled | 选中(在鼠标悬停在饼图上时提供漂亮的动画效果) |
    | ItemBinding | Binding…(点击“ItemBinding”单元格中的小图标,在上下文菜单中选择“应用数据绑定”,会弹出一个菜单对话框,可关闭它) |
7. 实现代码

以下是“MainPage”类的代码:

+"
""5"."   6   
1



:

"    $& 1
  

(
-"
   %"84

"    $& 1
  

&.

%"84

"    $& 1
  

1
    %"84

"    $& 1
  

7"%"84

"    $& 1
  

3    

    %"84
+>+   
"+    1
  
%"8I

"8

$4

+5"."   ;<
:
&"V  1

   ;<4
I  %"8I

;<4
=

"    
I    %"8I

;<
:
1    1
  
  1    1
  1

    4
$"8$
  7    +$I   M*% ;%"8<4
1"W 
*"W    
*   91"W    
*;<4
"W 
*H    9X
H  9W    
*7    
    20  # ("   O-"O!A
H"    %*    O1
  O(
A
-"
   !H"  !2!7    
    !W    
*!H   94

(
-"
   %"8"8$I & ;"W   
*<4
1"W 
*"W    
*C  91"W    
*;<4
"W 
*CH   9X
H   9W    
*7    
    20  # ("   O-"O!A
H" %*    O1
  O&A
.


    !H" !2!7    
    !W    
*!H   94

&.

%"8"8$I & ;"W   
*C<4
1"W  
*"W    
*F  91"W    
*;<4
"W  
*FH   9X
H   9W    
*7    
    20  # ("   O-"O!A
H" %*    O1
  O1
    !H"  A
!2!7  
    !W    
*!H   94

1
    %"8"8$I & ;"W   
*F<4
1"W  
*"W    
*'  91"W    
*;<4
"W  
*'H   9X
H   9W    
*7    
    20  # ("   O-"O!A
H" %*    O1
  O7"

   
   A
   !H"   !2!7    
    !W    
*!H   94

7"%"8"8$I & ;"W   
*'<4
1"W  
*"W    
*D  91"W    
*;<4
"W  
*DH   9X
H   9W    
*7    
    20  # ("   O-"O!A
H" %*    O1
  O3    

    !H"  !2A
!7  
    !W    
*!H   94

3    

    %"8"8$I & ;"W   
*D<4

  $
";
(
-"
   %"8<4

  $
";
&.

%"8<4

  $
";
1
    %"8<4

  $
";
7"%"8<4

  $
";
3    

    %"8<4

      W  
*)*;1  # 2  -         N
1   # 2  0"  <4
=
+
M3""%
1"
;<
:
;"8

$Q``"8

$1
<
:
%"8I

1"
3""1
  "8

$4
=
=

"    
1  # 2  -         ;
+/        
N
1    # 2  -          )
"
<
:
"8

$ 9>+   
"+    1
  
%"8I

;<4
"8

$);   9%"8I


;(
-"
   N
(
-"
   %"81
<<4
"8

$)
;   9%"8I

;&


    N
&.

%"81
<<4
"8

$);   9%"8I


;1
    N
1
    %"81
<<4
"8

$);   9%"8I


;7"N
7"%"81
<<4
"8

$);   9%"8I


;3     

    N
3    

    %"81
<<4
3"  
M  &
8   ;M3""%
1"
<4
=

"    
1  # 2  0"  ;
+/        
N
1    # 2  0"   )
"
<
:
+#   1
  
    2  " 4
=
=

与之前的Web部件实现相比,主要区别在于使用了Silverlight客户端对象模型提供的对象,使用“ListItemCollection”代替了服务器对象模型中的“SPListItemCollection”,并添加了代码来创建“TaskGroup”的“ObservableCollection”。同时,所有使用SharePoint Silverlight客户端对象模型的查询都需要异步进行,因此要使用“ExecuteQueryAsync”方法,该方法接受两个委托作为参数:“ClientRequestSucceeded”和“ClientRequestFailed”。

如果查询请求失败,将调用“ClientRequestFailed”处理程序,并向用户显示带有详细错误消息的消息框;如果请求成功,“ClientRequestSucceeded”事件将触发,会将包含状态和任务计数的新“TaskGroup”对象添加到“taskgroupList”中。最后,通过调用“BeginInvoke”方法,使用创建UI的线程的“Dispatcher”对象回调到UI线程。

当UI线程重新获得控制权时,将执行“BindDataToChart”方法,该方法将“TaskGroup”对象的集合绑定到图表控件。

下半部分

8. 部署Silverlight Web部件到SharePoint
  • 构建项目生成.XAP文件 :构建“TaskGroupsPieChart”项目,会生成一个.XAP文件,该文件将被SharePoint Silverlight Web部件使用。.XAP文件是Silverlight应用程序的可执行文件,包含一个名为“AppManifest.xaml”的.XAML文件和应用程序引用的.DLL文件,它是一个压缩的ZIP文件,可以通过将文件扩展名重命名为.ZIP并使用ZIP工具打开来查看其内容。
  • 创建文档库存储.XAP文件 :建议将所有.XAP文件存储在一个文档库中,该文档库可以是现有的,也可以是专门用于存储Silverlight应用程序的新文档库,并且可以将其设置为隐藏,以便普通SharePoint用户无法看到。
    • 打开SharePoint主页,选择“网站操作”菜单中的“新建文档库”。
    • 在出现的“创建”对话框中,将新文档库命名为“SLApps”,保留“导航”和“文档历史记录”设置为默认值。
    • 由于没有.XAP文件的模板,在“文档模板”下拉列表中选择“无”。
9. 使用SharePoint模块部署.XAP文件
  • 添加模块 :右键单击项目“SLSummaryTaskWebPart”,选择“添加”,然后选择“新项目”。在“新项目”对话框中选择“模块”,将其命名为“PieChartModule”,点击“添加”。Visual Studio会将该模块(包括一个示例文件)添加到项目中,可删除该示例文件,Visual Studio会自动更新“Elements.xml”文件,使其不再引用已删除的示例文件。
  • 配置项目输出引用
    • 选择SharePoint项目项文件夹“PieChartModule”,在“属性”窗口中找到“项目输出引用”属性,点击其旁边的省略号按钮。
    • 在弹出的“项目输出引用”对话框中,点击“添加”按钮。默认情况下,Visual Studio会将当前项目添加到成员列表中。在右侧网格中找到“项目名称”属性,从下拉列表中选择“TaskGroupPieChart”。
    • 将“部署类型”属性更改为“ElementFile”,然后点击“确定”。
  • 手动更新Elements.xml文件 :需要对“Elements.xml”文件进行一些额外的手动更新,更新后的文件如下:
   

    

      !!   "



!"
    
!
5
 ("    .    1"
5
 6
-$)
0    .".   1"
5
 K%"8I

.   1"
"
6
%"8I

.   1"
"
%*  I
"+   &$+
"
*!
!5
 
!    

具体更新内容如下:
- 为“Module”元素添加“Url”属性,指定将.XAP文件添加到哪个文档库,这里指定为刚刚创建的用于存储.XAP文件的文档库。
- 从“File”元素的“Url”属性中删除“PieChartModule/”,因为不需要完整路径,只需指定.XAP文件的名称。
- 添加“Type”属性,并将其值设置为“GhostableInLibrary”,告诉SharePoint为.XAP文件创建一个列表项。

10. 测试和调试
  • 启用Silverlight调试 :右键单击项目“SLSummaryTaskWebPart”,选择“属性”。在Visual Studio的“属性”页面中选择“SharePoint”选项卡,在“编辑配置”区域中选中“启用Silverlight调试(而非脚本调试)”。
  • 设置断点并调试 :在“TaskGroupsPieChart”项目的“MainPage”类的“ClientRequestSucceeded”事件处理程序中设置断点,按下“F5”。浏览器打开后,导航到“SLApps”文档库,验证.XAP文件是否已正确部署。
11. 创建Silverlight Web部件并指向.XAP文件
  • 添加Silverlight Web部件 :创建或使用之前创建的测试Web部件页面,切换到编辑模式。在“插入Web部件”部分,选择“媒体和内容”类别,然后选择“SilverlightWebPart”。点击“添加”按钮,会弹出一个对话框,要求输入.XAP文件的URL。输入“/SLApps/TaskGroupsPieChart.xap”,点击“确定”。
  • 调试和查看效果 :添加Web部件后,会命中断点,可以继续调试代码。调试完成后,可以清除断点或停止调试,刷新页面以查看整个饼图的Silverlight动画效果。与Web部件和可视化Web部件项目不同,调试后不需要再次部署解决方案,因为停止调试时不会收回.XAP文件。
12. 另一种创建Silverlight Web部件的方法

除了使用SharePoint自带的通用Silverlight Web部件,还可以创建自定义Web部件来托管.XAP文件。这种方法的优点是可以编写代码自动选择所需的.XAP文件,并根据需要调整Web部件的大小。

综上所述,通过以上步骤可以成功创建、部署和调试一个Silverlight Web部件,为SharePoint用户提供更丰富的交互体验。整个过程的流程图如下:

graph TD;
    A[准备工作] --> B[创建Visual Studio解决方案];
    B --> C[创建新的Silverlight应用程序];
    C --> D[准备开发环境];
    D --> E[创建饼图控件];
    E --> F[实现代码];
    F --> G[部署Silverlight Web部件到SharePoint];
    G --> H[测试和调试];
    H --> I[创建Silverlight Web部件并指向.XAP文件];
    I --> J[选择创建方式(通用或自定义)];

通过这个详细的指南,你可以逐步完成Silverlight Web部件的创建和部署,为SharePoint应用增添更多的交互性和视觉效果。希望这些步骤和代码示例能帮助你顺利实现目标。

8. 部署Silverlight Web部件到SharePoint
  • 构建项目生成.XAP文件 :构建“TaskGroupsPieChart”项目,会生成一个.XAP文件,该文件将被SharePoint Silverlight Web部件使用。.XAP文件是Silverlight应用程序的可执行文件,包含一个名为“AppManifest.xaml”的.XAML文件和应用程序引用的.DLL文件,它是一个压缩的ZIP文件,可以通过将文件扩展名重命名为.ZIP并使用ZIP工具打开来查看其内容。
  • 创建文档库存储.XAP文件 :建议将所有.XAP文件存储在一个文档库中,该文档库可以是现有的,也可以是专门用于存储Silverlight应用程序的新文档库,并且可以将其设置为隐藏,以便普通SharePoint用户无法看到。具体操作步骤如下:
    1. 打开SharePoint主页,选择“网站操作”菜单中的“新建文档库”。
    2. 在出现的“创建”对话框中,将新文档库命名为“SLApps”,保留“导航”和“文档历史记录”设置为默认值。
    3. 由于没有.XAP文件的模板,在“文档模板”下拉列表中选择“无”。
9. 使用SharePoint模块部署.XAP文件
  • 添加模块 :右键单击项目“SLSummaryTaskWebPart”,选择“添加”,然后选择“新项目”。在“新项目”对话框中选择“模块”,将其命名为“PieChartModule”,点击“添加”。Visual Studio会将该模块(包括一个示例文件)添加到项目中,可删除该示例文件,Visual Studio会自动更新“Elements.xml”文件,使其不再引用已删除的示例文件。
  • 配置项目输出引用
    1. 选择SharePoint项目项文件夹“PieChartModule”,在“属性”窗口中找到“项目输出引用”属性,点击其旁边的省略号按钮。
    2. 在弹出的“项目输出引用”对话框中,点击“添加”按钮。默认情况下,Visual Studio会将当前项目添加到成员列表中。在右侧网格中找到“项目名称”属性,从下拉列表中选择“TaskGroupPieChart”。
    3. 将“部署类型”属性更改为“ElementFile”,然后点击“确定”。
  • 手动更新Elements.xml文件 :需要对“Elements.xml”文件进行一些额外的手动更新,更新后的文件如下:
   

    

      !!   "



!"
    
!
5
 ("    .    1"
5
 6
-$)
0    .".   1"
5
 K%"8I

.   1"
"
6
%"8I

.   1"
"
%*  I
"+   &$+
"
*!
!5
 
!    

具体更新内容如下表所示:
|更新内容|详细说明|
| ---- | ---- |
|为“Module”元素添加“Url”属性|指定将.XAP文件添加到哪个文档库,这里指定为刚刚创建的用于存储.XAP文件的文档库|
|从“File”元素的“Url”属性中删除“PieChartModule/”|不需要完整路径,只需指定.XAP文件的名称|
|添加“Type”属性,并将其值设置为“GhostableInLibrary”|告诉SharePoint为.XAP文件创建一个列表项|

10. 测试和调试
  • 启用Silverlight调试 :右键单击项目“SLSummaryTaskWebPart”,选择“属性”。在Visual Studio的“属性”页面中选择“SharePoint”选项卡,在“编辑配置”区域中选中“启用Silverlight调试(而非脚本调试)”。
  • 设置断点并调试 :在“TaskGroupsPieChart”项目的“MainPage”类的“ClientRequestSucceeded”事件处理程序中设置断点,按下“F5”。浏览器打开后,导航到“SLApps”文档库,验证.XAP文件是否已正确部署。
11. 创建Silverlight Web部件并指向.XAP文件
  • 添加Silverlight Web部件 :创建或使用之前创建的测试Web部件页面,切换到编辑模式。在“插入Web部件”部分,选择“媒体和内容”类别,然后选择“SilverlightWebPart”。点击“添加”按钮,会弹出一个对话框,要求输入.XAP文件的URL。输入“/SLApps/TaskGroupsPieChart.xap”,点击“确定”。
  • 调试和查看效果 :添加Web部件后,会命中断点,可以继续调试代码。调试完成后,可以清除断点或停止调试,刷新页面以查看整个饼图的Silverlight动画效果。与Web部件和可视化Web部件项目不同,调试后不需要再次部署解决方案,因为停止调试时不会收回.XAP文件。
12. 另一种创建Silverlight Web部件的方法

除了使用SharePoint自带的通用Silverlight Web部件,还可以创建自定义Web部件来托管.XAP文件。这种方法的优点是可以编写代码自动选择所需的.XAP文件,并根据需要调整Web部件的大小。

综上所述,通过以上步骤可以成功创建、部署和调试一个Silverlight Web部件,为SharePoint用户提供更丰富的交互体验。整个过程的流程图如下:

graph TD;
    A[准备工作] --> B[创建Visual Studio解决方案];
    B --> C[创建新的Silverlight应用程序];
    C --> D[准备开发环境];
    D --> E[创建饼图控件];
    E --> F[实现代码];
    F --> G[部署Silverlight Web部件到SharePoint];
    G --> H[测试和调试];
    H --> I[创建Silverlight Web部件并指向.XAP文件];
    I --> J[选择创建方式(通用或自定义)];

通过这个详细的指南,你可以逐步完成Silverlight Web部件的创建和部署,为SharePoint应用增添更多的交互性和视觉效果。希望这些步骤和代码示例能帮助你顺利实现目标。

【太阳能学报EI复现】基于粒子群优化算法的风-水电联合优化运行分析(Matlab代码实现)内容概要:本文档是一份关于“基于粒子群优化算法的风-水电联合优化运行分析”的研究资料,旨在通过Matlab代码实现对该优化模型的复现。文档重点介绍了如何利用粒子群优化(PSO)算法解决风能与水能联合调度中的复杂优化问题,包括系统建模、目标函数构建、约束条件处理及算法实现过程。研究兼顾可再生能源的不确定性与电力系统运行的经济性,通过仿真验证了该方法在提升能源利用率和系统稳定性方面的有效性。此外,文档还附带多个相关领域的Matlab代码案例,涵盖微电网调度、储能配置、负荷预测等,突出其在电力系统优化中的实际应用价值。; 适合人群:具备一定电力系统基础知识和Matlab编程能力的研究生、科研人员及从事新能源优化调度的工程技术人员;尤其适合希望复现EI期刊论文或开展智能优化算法在能源领域应用研究的用户。; 使用场景及目标:①学习并复现基于粒子群算法的风-水电联合运行优化模型;②掌握Matlab在电力系统优化中的建模与仿真方法;③拓展至微电网、储能调度、多能源协同优化等相关课题的研究与开发。; 阅读建议:建议结合文档中提供的Matlab代码进行逐模块调试与分析,重点关注目标函数设计、粒子群算法参数设置及约束处理机制。同时可参考文中列举的其他优化案例,举一反三,提升对智能算法在能源系统中综合应用的理解与实践能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值