设为首页 收藏本站
查看: 852|回复: 0

[经验分享] SharePoint开发笔记-为SharePoint2010客户端对象模型创建Silverlight应用程序

[复制链接]

尚未签到

发表于 2015-9-25 13:03:44 | 显示全部楼层 |阅读模式
  
  此为微软官方的练习,本人只是做了一些易错地方的说明.
  在此练习中,我们将创建一个在数据网格中显示 SharePoint 列表的基本 Silverlight 应用程序。列表的数据从服务器检索,因此可用于使用 SharePoint 客户端对象模型的 Silverlight。我们将使用 Visual Studio 2010 解决方案并将其部署到本地 SharePoint 服务器。
  任务 1 ― 创建 Silverlight 应用程序项目
我们将首先创建一个标准 Silverlight 应用程序项目。
1. 从“开始”|“所有程序”|“Microsoft Visual Studio 2010”|“Microsoft Visual Studio 2010”打开 Visual Studio 2010。
2. 从菜单中,选择“文件”|“新建”|“项目”。
3. 在“新建项目”对话框中,展开“已安装的模板”左侧菜单的“其他项目类型”|“Visual Studio 解决方案”|“空白解决方案”。
4. 选择“.NET Framework 3.5”
5. 将解决方案命名为 Begin。
6. 在“位置”文本框中输入 C:\SPHOLS\SPCHOL306\CS\Ex1\。
   DSC0000.png
  图 47 - “新建项目”对话框
  7. 按“确定”继续。
8. 从菜单中,选择“文件”|“添加”|“新项目”。
9. 在“添加新项目”对话框中,展开“已安装的模板”左侧菜单的“Visual C#”|“Silverlight”, 然后在屏幕中间部分的项目类型列表中选择“Silverlight 应用程序”项目类型。
10. 选择“.NET Framework 3.5”
11. 将项目命名为 SPSilverlightExample。
12. 位置保留不变。
DSC0001.png
  图 48 - “添加新项目”对话框
13. 按“确定”继续。
   DSC0002.png
  图 49 - 添加 Silverlight 应用程序对话框
14. 按“确定”创建项目。
15. 在 SPSilverlightExample 项目中,我们现在将添加 SharePoint Silverlight 客户端对象模型的引用程序集。右键单击 SPSilverlightExample 项目中的“引用”,然后选择“添加引用”。
16. 浏览到“C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\ LAYOUTS\ClientBin”文件夹。
17. 选择“Microsoft.SharePoint.ClientSilverlight.dll”和“Microsoft.SharePoint.Client.Silverlight.Runtime.dll”(按住 Ctrl 可以选择多个文件)
18. 按“确定”添加所选 dll 的引用。
   DSC0003.png
  图 50 - 添加引用
任务 2 ― 编写代码以访问并呈现 SharePoint 列表数据
1. 在 Visual Studio 中,打开“工具箱”并展开“Silverlight 控件”。
2. 将 DataGrid 控件拖动到 Page.xaml Silverlight 设计器中的现有 Grid 上。
   DSC0004.png
  图 51 - Silverlight 控件工具箱
3. 通过以下方式扩展 DataGrid,使其占据整个页面:转到“属性”网格并将“Width”和“Height” 属性设置为“Auto”,将“HoriztonalAlignment”和“VerticalAlignment”属性设置为“Stretch”,将“Margin”设置为 0。
   DSC0005.png \
  图 52 - DataGrid 属性
4. 另外,务必选中“AutoGenerateColumns”(或在 XAML 中将其值设置为 true)。
   DSC0006.png
  图 53 - AutoGenerate Columns 属性
5. 打开 App.xaml.cs,将以下 using 语句添加到文件顶部:
  


DSC0007.gif DSC0008.gif View Code



1 using Microsoft.SharePoint.Client;
2  using System.Threading;
  6. 将以下代码添加到 Application_Startup 方法的开头。
  


View Code



ApplicationContext.Init(e.InitParams, SynchronizationContext.Current);
  7. 打开 MainPage.xaml.cs,将以下 using 语句添加到文件顶部:
  


View Code



using Microsoft.SharePoint.Client;
  8. 将以下类添加到 MainPage 类之前:
  




1     public class Project
2     {
3         public string Title { get; set; }
4         public DateTime DueDate { get; set; }
5         public string Description { get; set; }
6     }
  9. 将以下变量添加到 MainPage 类中:
  




private ListItemCollection _projects;
  10. 将以下代码添加到 Page 构造函数中 InitializeComponent 调用的下方:
  


View Code



1  ClientContext context = new ClientContext(ApplicationContext.Current.Url);
2             context.Load(context.Web);
3             List Projects = context.Web.Lists.GetByTitle("Projects");
4             context.Load(Projects);
5             CamlQuery query = new Microsoft.SharePoint.Client.CamlQuery();
6             string camlQueryXml = "<View><Query><Where><Gt>" + "<FieldRef Name='Due_x0020_Date' />" + "<Value Type='DateTime'>2008-01-1T00:00:00Z</Value>" + "</Gt></Where></Query><ViewFields>" + "<FieldRef Name=\"Title\" /><FieldRef Name=\"Description\" />" + "<FieldRef Name=\"Due_x0020_Date\" />" + "</ViewFields></View>"; query.ViewXml = camlQueryXml; _projects = Projects.GetItems(query); context.Load(_projects);
7             context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(OnRequestSucceeded), null);
  11. 将以下代码添加到构造函数之后:
  


View Code



1  private void OnRequestSucceeded(Object sender, ClientRequestSucceededEventArgs args)
2         { // this is not called on the UI thread
3              Dispatcher.BeginInvoke(BindData);
4         }
5         private void BindData()
6         {
7             List<Project> projects = new List<Project>();
8             foreach (ListItem li in _projects)
9             {
10                 projects.Add(new Project()
11                 {
12                     Title = li["Title"].ToString(),
13                     DueDate = Convert.ToDateTime(li["Due_x0020_Date"].ToString()),
14                     Description = li["Description"].ToString()
15                 });
16             } dataGrid1.ItemsSource = projects; // must be on UI thread }
17          }
  此代码将初始化 SharePoint Silverlight 客户端对象模型上下文 (ClientContext)。然后获取对 Projects 列表的引用,
  并对列表运行简单的 CAML 查询以提取截止日期晚于 1/1/2008 的所有项目。结果将转换为 Projects 列表并绑定到 Silverlight DataGrid 控件。
  任务 3 ― 使用 SharePoint Silverlight Web 部件进行部署并测试
若要将解决方案部署到 SharePoint,Silverlight 项目创建的结果 .xap 文件需要位于 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin 文件夹中。
1. 右键单击“SPSilverlightExample”项目,选择“属性”并选择“生成”选项卡。
2. 将输出路径更改为 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\ClientBin。
  
   DSC0009.png
  
  图 54 - 项目属性
3. 生成解决方案。.xap 文件已复制到所需 SharePoint 目录,您可以将 Silverlight Web 部件添加到 SharePoint 网站。
4. 打开 Internet Explorer 并浏览到 http://chenrensong:33333。
  5. 选择页面顶部的“编辑”图标。
6. 选择“插入”选项卡,然后单击“Web 部件”。
7. 从“类别”列表中选择“媒体和内容”,从 Web 部件列表中选择“Silverlight Web 部件”, 然后单击“添加”。
8. 在弹出的“Silverlight Web 部件”对话框中,输入 /_layouts/ClientBin/SPSilverlightExample.xap 作为 URL。
   DSC00010.png
  图 55 - Silverlight Web 部件 Url 对话框
9. 单击“确定”保存 Silverlight Web 部件。
10. 退出编辑模式。
11. 最终 Web 部件在 SharePoint 页面上将如下所示:
   DSC00011.png
  图 56 - 完成的 Silverlight Web 部件
在此练习中,您已经创建了一个在数据网格中显示 SharePoint 列表的基本 Silverlight 应用程序。 列表的数据从服务器检索,因此可用于使用 SharePoint 客户端对象模型的 Silverlight。
  --------------------------------------------------------------------
  总结:做这个练习可能会出现列表没东西显示,这是因为你缺少Projects的列表,请建立一个包含Title、Due_x0020_Date、Description三个字段,然后添加数据,里面的数据就会显示到silverlight上面了.
  code sample:Begin.zip

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-118723-1-1.html 上篇帖子: Sharepoint学习笔记---Sandbox Solution-- Full Trust Proxy--开发实例之(1、创建一个能访问DataBase的Fu 下篇帖子: SharePoint开发获取文档库信息
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表