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,完全禁止或部分禁止。

最新文章

  1. WampServer Apache 服务无法启动解决办法
  2. 获取网卡的MAC地址原码;目前支持WIN/LINUX系统 获取机器网卡的物理(MAC)地址(服务器端)
  3. What does "Rxlch" mean in ENCODE?
  4. html格式化
  5. MYSQL开发技巧之行转列和列转行
  6. VIM 初步
  7. C# Datatable.Select()用法简介
  8. pip install -r requirements.txt
  9. 快速搭建完整zabbix3.4
  10. Vue系列之 => 路由匹配
  11. Flink(一)Flink的入门简介
  12. C++11之 std::atomic (不用锁实现线程互斥)
  13. 人工智能日常应用举例-nlp+视觉(听说看)
  14. SQL 中 Arg的使用
  15. Xcode 快捷键及代码格式化
  16. hdu-1404-博弈+打表
  17. input属性type为file打开文件资源管理器时,如何限制多次选取或只能一次选取的行为
  18. pytest使用笔记(三)——pytest+allure+jenkins配置使用
  19. 【RL系列】马尔可夫决策过程——Jack‘s Car Rental
  20. Scanner.findInLine()与while的使用莫名其妙的导致NoSuchElementException: No line found

热门文章

  1. struts2乱码
  2. 用Java编程找到两个字符串中共有的字符
  3. Android Studio安装插件GsonFormat
  4. ASP.NET项目部署到Linux服务器出现服务器错误
  5. RaspBMC使用攻略与问题总结
  6. javascript常用数组算法总结
  7. [读书笔记]Java之动态分派
  8. Oracle笔记1-数据库概念
  9. Servlet---RequestDispatcher.include方法
  10. include/asm/dma.h