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

[经验分享] SharePoint 2010中的客户端模型

[复制链接]
累计签到:15 天
连续签到:1 天
发表于 2015-9-24 09:28:24 | 显示全部楼层 |阅读模式
  1.介绍
  客户端模型是SharePoint 2010才提供的,可以更灵活的在任何客户端设备中操作SharePoint对象,在2007版本中没有客户端模型,2010中有三种客户端模型JavaScript,SilverLight,.NET Managed。下面是对比情况:
  
DSC0000.png        DSC0001.png
  
  2.原理
  当我们使用客户端模型访问SharePoint 2010服务器对象的时候,请求首先会被打包成XML格式的SharePoint对象模型,然后在由客户端发送到服务器端,在服务器端调用服务器端的对象模型,。然后得到反应结果以JSON
  格式发给客户端对象模型,客户端模型在解析得到的结果,展现给前端,如下图:
DSC0002.png
  3.客户端模型对象
服务器端客户端Javascript
Microsoft.SharePoint.SPContextMicrosoft.SharePoint.Client.ClientContextSP.ClientContext
Microsoft.SharePoint.SPSiteMicrosoft.SharePoint.Client.SiteSP.Site
Microsoft.SharePoint.SPWebMicrosoft.SharePoint.Client.WebSP.Web
Microsoft.SharePoint.SPListMicrosoft.SharePoint.Client.ListSP.List
Microsoft.SharePoint.SPListItemMicrosoft.SharePoint.Client.ListItemSP.ListItem
Microsoft.SharePoint.SPFieldMicrosoft.SharePoint.Client.FieldSP.Field
  4.一些例子代码
  using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
  namespace OM
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
  private void button1_Click(object sender, EventArgs e)
        {
            Cursor old = this.Cursor;
            this.Cursor = Cursors.WaitCursor;
  Microsoft.SharePoint.Client.ClientContext clientContext = new Microsoft.SharePoint.Client.ClientContext("http://moss2010/sites/test");
            NetworkCredential nwc = CredentialCache.DefaultNetworkCredentials;
            clientContext.Credentials = nwc;
            Microsoft.SharePoint.Client.Web web = clientContext.Web;
  clientContext.Load(web);
            clientContext.ExecuteQuery();
  this.lblSiteTitle.Text = web.Title;
  this.Cursor = old;
  }
  private void button2_Click(object sender, EventArgs e)
        {
            Cursor old = this.Cursor;
            this.Cursor = Cursors.WaitCursor;
  Microsoft.SharePoint.Client.ClientContext clientContext = new Microsoft.SharePoint.Client.ClientContext("http://moss2010/sites/test");
            NetworkCredential nwc = CredentialCache.DefaultNetworkCredentials;
            clientContext.Credentials = nwc;
            Microsoft.SharePoint.Client.Web web = clientContext.Web;
  var query = from list
                        in clientContext.Web.Lists
                        where list.Title == "SharePoint Team Members"
                        select list;
  var result = clientContext.LoadQuery(query);
            clientContext.ExecuteQuery();
  Microsoft.SharePoint.Client.List listMember = result.SingleOrDefault<Microsoft.SharePoint.Client.List>();
  Microsoft.SharePoint.Client.CamlQuery caml = new Microsoft.SharePoint.Client.CamlQuery();
            caml.ViewXml = @"<View><Query></Query></View>";
  Microsoft.SharePoint.Client.ListItemCollection listItems = listMember.GetItems(caml);
            clientContext.Load(listItems);
            clientContext.ExecuteQuery();
  List<Employee> allDatas = new List<Employee>();
            foreach (Microsoft.SharePoint.Client.ListItem item in listItems)
            {
                allDatas.Add(new Employee(item["Title"], item["Age"], item["Sex"]));
            }
            dataGridView1.DataSource = allDatas;
  this.Cursor = old;
        }
  private void button3_Click(object sender, EventArgs e)
        {
            Microsoft.SharePoint.Client.ClientContext clientContext = new Microsoft.SharePoint.Client.ClientContext("http://moss2010/sites/test");
            NetworkCredential nwc = CredentialCache.DefaultNetworkCredentials;
            clientContext.Credentials = nwc;
            Microsoft.SharePoint.Client.Web web = clientContext.Web;
  var query = from list
                        in clientContext.Web.Lists
                        where list.Title == "SharePoint Team Members"
                        select list;
  var result = clientContext.LoadQuery(query);
            clientContext.ExecuteQuery();
  Microsoft.SharePoint.Client.List listMember = result.SingleOrDefault<Microsoft.SharePoint.Client.List>();
  Microsoft.SharePoint.Client.CamlQuery caml = new Microsoft.SharePoint.Client.CamlQuery();
            caml.ViewXml = @"<View><Query><Where><Eq><FieldRef Name='Employee_x0020_Name' /><Value Type='Text'>" + tbxInput.Text + "</Value></Eq></Where></Query></View>";
  Microsoft.SharePoint.Client.ListItemCollection listItems = listMember.GetItems(caml);
            clientContext.Load(listItems);
            clientContext.ExecuteQuery();
  this.lblOutput.Text = listItems[0].FieldValues["Title"].ToString();
  this.Cursor = old;
        }
    }
  public class Employee
    {
        public Employee(object title, object age, object sex)
        {
            this.Age = age;
            this.Sex = sex;
            this.Title = title;
        }
        public object Title { get; set; }
        public object Age { get; set; }
        public object Sex { get; set; }
    }
}

运维网声明 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-118039-1-1.html 上篇帖子: Moss/sharepoint 匿名访问之看例做题 下篇帖子: SharePoint 2007 到 SharePoint 2010 迁移项目实战心得系列(一):项目背景
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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