SharePoint Foundation开发基础


第1章 SharePoint Foundation开发基础

SharePoint能做什么

企业信息门户
应用程序工具集(文档库、工作空间、工作流、维基、博客、面向团队的合作列表)
可以通过Workspace离线访问
工作流宿主
二次开发
企业内容管理(文档管理、记录管理、Web内容管理)
数据的存储中心(LINQ、CAML)
服务的宿主(通过基于WCF的客户端对象模型)
支持客户端UI订制
WPF客户端应用
SharePoint Foundation和SharePoint Server 2010的区别
SharePoint Foundation免费;
支持Win 2008 (sp2)/Win2008 R2;
开发目的Win7/Vista(sp2);
数据量上限4GB,搜索30W条数据
SharePoint Foundation新特性
大量采用Ajax异步调用
引入Ribbon
SharePoint2010基础概念
服务器场
    一系列服务器的集合。Web前端服务器、应用程序服务器、数据库服务器。
    每个服务器角色分成若干个服务器组。(处理请求、存储索引、负载均衡)(爬网服务器组、查询服务器组、其他应用程序服务器组、沙盒解决方案应用程序服务器组)(搜索服务器、数据库服务器、配置数据服务器、其他数据服务器)
    SharePoint2010可以搜索1亿条数据,Fast Search Server For SharePoint 2010可以多达10亿条,每个查询最多1000W条。
Web应用程序
    SharePoint2010建立于IIS7.0之上;
    Web应用程序扩展了IIS网站,具有运行端口、独立身份认证体系、独立应用程序池、独立web.config文件;
    一个Web应用程序由若干网站集组成,一个网站集只能存储在一个内容数据库中,内容数据库大小限制100GB;
    建议SharePoint的所有数据都通过SharePoint对象模型API来访问。
服务应用程序
    服务应用程序可以运行于不同的Web应用程序下。
    常见的服务应用程序:商业连接服务(BCS)、用户档案服务(UPS)、搜索服务(SS)、托管元数据服务(MMS)
网站集和网站
    网站集:一个数据存储和权限分配的独立单位;包含若干网站;必须建立在某个Web应用程序下面。
    网站:必须建立在网站集下面。
字段类型、网站栏、内容类型
    字段类型:大致同数据库字段类型;
    栏:字段类型的实例,大致同数据库表列;
    内容类型:网站栏的集合,可理解为一个一个的模板,(如员工内容类型,包含姓名、生日、邮件地址。)可单独添加到每一个列表或文档库。
列表和文档库
    列表:是存储数据的容器,SharePoint里用来存储数据的基本结构,大致同数据库表。可任意添加栏,可添加内容类型,支持多个内容类型。

插入纪录如数据库表;
    通知、任务、日历、讨论版、联系人、链接、调查等都是列表的一种。

    文档库:一种特殊的列表。    
    表单库、图片库、幻灯片库、维基页面库等都是文档库。
 
    列表、文档库都支持版本控制。

主要区别:文档库每个纪录有且仅有一个文件存在;

列表里可以没有文件或者若干文件作为附件。

    
    文档集
一组属性相同的文档,如销售类,技术类等文档。维护一套相同的属性。

站点设置->站点集功能页面->激活“文档集”功能。激活后需要作为内容类型添加到相应文档库后使用。

唯一ID

在站点集范围内按照一定的编码规则为文档编制统一编号。

站点集设置->站点集功能页面->激活“文档ID设置”功能。

SharePoint Foundation的服务器端对象模型
    概述
        服务器端对象模型、客户端对象模型。
        开放给用户的编程接口,避免直接访问数据库。直接访问数据库可以绕开SharePoint产品的限制。
            1.添加Microsoft.SharePoint.DLL引用;(C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\ISAPI)
            2.目标框架NET3.5,X64位兼容;必须在Web前端服务器可应用程序服务器上运行;
            3.新建SharePoint项目。
    HelloWorld
        1.NET3.5,x64
        2.引用Microsoft.SharePoint.DLL
        3.using Microsoft.SharePoint
        4.    const string siteURL = "http://localhost";
                using (SPSite site = new SPSite(siteURL))  //获取站点集
                {
                    SPWeb web = site.RootWeb;            //获取根站点
                    foreach(SPList list in web.Lists)
                        if (!list.Hidden)
                            Console.WriteLine(list.Title);
                   }
    站点集和站点
站点集:SPSite
站点:SPWeb
 
   列表和文档库
           列表:Microsoft.SharePoint.SPList;列表集合:Microsoft.SharePoint.SPListCollection。
           SPListCollection lists = web.lists;
           SPList list = lists[index];
           SPList list = lists["Announcement"]; 
           SPList list = lists[new Guid("....")];
           SPList list = web.GetListFromUrl("http://localhost/lists/announcements/allitems.aspx");
           SPList list = web.GetList["/lists/announcements"];
           列表不存在时,抛出System.IO.File.NotFoundException;
            
            SPlist list = lists.TryGetList("Announcements");
            在获取失败时,返回NULL。
 
            文档库:Microsoft.SharePoint.SPDocumentLibrary继承自 SPList。
            
    列表项和文件
            列表项:Microsoft.SharePoint.SPListItem,列表里的一条数据纪录;列表项集合:Microsoft.SharePoint.SPListItemCollection。
            SPListItem newItem = list.Items.Add();
            newItem["Title"]="标题"; 
            newItem["Body"]="正文";
            newItem.Update();
            
            文件:Microsoft.SharePoint.SPFile
            
            通过SPList操作文件:
            byte[] fileData = System.IO.File.ReadAllBytes(@"c:\test.txt");
            SPFile newFile = list.RootFolder.Files.Add("test.txt",fileData);
            
            读取文件:
            SPListItem item = list.GetItemById(1);
            SPFile file = item.File;
            byte[] fileData = file.OpenBinary();
 
            通过SPFileConlection对象上传文件:
            byte[] fileData = System.IO.File.ReadAllBytes(@"c:\test.txt");
            web.Files.Add(strURL + fileName,fileData);
 
    开发人员面板
            输出画面加载的细节信息。
            stsadm命令
 
SharePoint解决方案开发
        wsp安装包,可以直接上传和部署。实际是cab。
        _layouts目录,避免修改根文件夹下的系统文件。
        /ISAPI                                Web服务文件
        /Resources                      资源文件
        /Template/Admin          中央管理站点的应用程序页面
        /Template/ControlTemplates        ASP.NET用户控件
        /Template/Features        Feature定义文件
        /Template/Images           图片文件
        /Template/Layouts          系统文件
        /Template/Layouts/1033/Styles    样式文件
        /Template/Layouts/Clientbin         SliverLight文件
        /Template/logs                系统日志文件
        /Template/SiteTemplates                站点定义文件
        /Template/Themes           站点主题文件
        /Template/Xml                 自定义字段类型文件
 
        Feature - 功能,可停止和激活。
        手动创建一个Feature,ID,Title,Version,Scope,Hidden,ImgUrl,Description。
                Scope:Farm,WebApplication,Site,Web。生效范围。
        手动创建解决方案包
                makecab.exe命令生成方案包;stsadmin部署方案包。
 
SharePoint浏览器
    显示SharePoint站点结构。
    可通过二次开发扩展SharePoint浏览器功能。
    要求所运行的服务器上必须安装有SharePoint Foundation或以上版本,并配置为单独的服务器场或者Web前端服务器。
 
SharePoint Designer 2010
    禁止Designer:管理中心->常用应用程序管理设置(General Applictation Settings)->SharePoint Designer,完全禁止或部分禁止。

【SharePoint学习笔记】第1章 SharePoint Foundation开发基础的更多相关文章

  1. 【学习笔记】第二章 python安全编程基础---python爬虫基础(urllib)

    一.爬虫基础 1.爬虫概念 网络爬虫(又称为网页蜘蛛),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本.用爬虫最大的好出是批量且自动化得获取和处理信息.对于宏观或微观的情况都可以多一个侧面去了 ...

  2. 【学习笔记】第二章 python安全编程基础---正则表达式

    一.python正则表达式 定义:正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式相匹配: 1.1RE模块:是python语言拥有全部的正则表达式功能的一个正则模块: 常见 ...

  3. 【学习笔记】第一章 python安全开发简介

    1.1为什么黑客喜欢用python? python为我们提供了非常完善的基础代码库,覆盖了网络.文件.GUI.数据库.文本等大量内容,被形象的称为“”内置电池“”,用python开发,许多功能不必从零 ...

  4. SharePoint 2010 最佳实践学习总结------第1章 SharePoint Foundation开发基础

    ----前言 这段时间项目出在验收阶段,不是很忙,就潜心把SharePoint学一下,不求有多深刻,初衷只是先入门再说.后续会发布一系列的学习总结.主要学习的书籍为<SharePoint2010 ...

  5. Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录

        Sharepoint学习笔记—习题系列--70-576习题解析  为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是:     1. ...

  6. Sharepoint学习笔记—习题系列--70-573习题解析 --索引目录

                  Sharepoint学习笔记—习题系列--70-573习题解析 为便于查阅,这里整理并列出了我前面播客中的关于70-573习题解析系列的所有问题,有些内容可能会在以后更新, ...

  7. Stealth视频教程学习笔记(第二章)

    Stealth视频教程学习笔记(第二章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  8. Stealth视频教程学习笔记(第一章)

    Stealth视频教程学习笔记(第一章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  9. 20145330《Java学习笔记》第一章课后练习8知识总结以及IDEA初次尝试

    20145330<Java学习笔记>第一章课后练习8知识总结以及IDEA初次尝试 题目: 如果C:\workspace\Hello\src中有Main.java如下: package cc ...

随机推荐

  1. android的apk逆向工程后的文件目录介绍

    一.用压缩软件打开apk,得到五个文件或文件夹 1.META-INF 2.res 3.AndroidManifest.xml 4.classes.dex 5.resources.arsc 二.xml文 ...

  2. cocos2dx 中使用的一些C++ 11 特性

    0.  placeholder 头文件:<functional> namespace: placeholder placeholder 就是一堆帮助bind占参数位置的东西,名字分别为 _ ...

  3. Java并发编程学习笔记(二)——对象的共享

    主要概念:可见性.重排序.失效数据.最低安全性.发布.逸出.线程封闭(Ad-hoc.栈封闭.ThreadLocal类).不变性.Final域.事实不可变对象. 1.在没有同步的情况下,编译器.处理器以 ...

  4. AJAX实现异步登录

    //代码较为简单,只是测试所用 1.html登录页面代码 <table> <tr> <td>用户名:</td> <td><input ...

  5. SELECT控件操作的JS代码示例

    SELECT控件操作的JS代码示例 1 检测是否有选中 if(objSelect.selectedIndex > -1) { //说明选中 } else { //说明没有选中 } 2.动态创建s ...

  6. 内存管理 - MEMORY POOL

    内存池优势: 效率高,频繁的new和delete效率低下 减少内存碎片,反复向系统申请和释放内存会产生大量内存碎片 防止内存泄露 内存池设计思路: 内存池可以根据实际需要,设计成不同的样子.下面是针对 ...

  7. appium+Python真机运行测试demo的方法

    appium+Python真机运行测试demo的方法 一,    打开手机的USB调试模式 二,    连接手机到电脑 将手机用数据线连接到电脑,并授权USB调试模式.查看连接的效果,在cmd下运行命 ...

  8. Web Form 和asp.net mvc 差别

    Asp.net MVC 和web Form的基本区别 Web Form ASP.NET MVC 视图和逻辑紧密耦合 视图和逻辑分离 页面(给予文件的URL) 控制器(基于路由的URL) 状态管理(视图 ...

  9. 简单的URL解析

    简单的URL解析,直接举例说明了 function getUrl(){ //如果存在则取到来后面的参数,注意,?不需要取出,substring从1开始,否则取""; var qs ...

  10. 利用 iframe解决ajax的跨域问题

    问题 1. form提交或a标签跳转方式提交不会引发跨域问题. 2. ajax出于安全问题就有了跨域问题,因为一次请求中既访问了外部域最后返回了自己的域. 3. 用iframe其实就是想仿照ajax的 ...