转:http://blog.csdn.net/mattwin/article/details/2074984
WSSv3 Technical Articles_Windows SharePoint Services 3.0编码开发工具和技巧(Part 1 of 2)
SharePoint Services解决方案的概念,解决方案的架构,还有创建、部署、维护升级Windows SharePoint Services解决方案的技术。这篇文章也包含了一个Walkthrough介绍了开发人员和管理员可以获得的手段和方法。
Web Part和它们的基础构架,ASP.NET提供者模型。(关于这些技术有许多文章可以学习,但并不是本篇文章涉及的内容。)
Web Services技术也是必须的。
解决方案类型
|
描述
|
Web Parts
|
SharePoint Web Part Page的一个基础部分为站点的访问者提供一个特殊的功能。Web Parts可以从存储中提取数据,而不是Windows SharePoint Services的存储(例如Microsoft SQL Server和Oracle存储);抓取数据来驱动业务流程;聚集或者订阅SharePoint站点中的可用信息,或者实现其他的功能。Windows SharePoint Services 3.0和MOSS 2007都有很多默认的Web Part可以使用。
|
Event handlers
|
一个.NET组件,其中包含一个或多个类,在SharePoint站点中发生特殊事件(例如在列表中添加一个项目,给文档库创建一个栏,删除一个站点等)的时候执行。
|
Information management policies
|
MOSS中一个很丰富的策略框架,Developer可以使用它来创建自定义策略在SharePoint站点的内容存储或者管理时强制一些行为。
|
Workflow Activities and templates
|
工作流是一组Activity的集合,这些Activity是和Windows SharePoint Services或信息工作者相关的。现在已经有很多Activity可用;尽管如此,你可以创建自定义Activity用.NET来编译并部署,这样有经验的用户可以在使用Microsoft Office SharePoint Designer 2007创建工作流时使用他们。Developer也可以使用workflow extensions for Visual Studio 2005来创建工作量模板并作为一个.NET组件部署到SharePoint服务器上。
|
Timer Jobs
|
一个包含代码的组件,可以使用SharePoint Timer Service来预定执行。例如,管理员计划每天晚上要创建一个关于文档被签出超过一周的报告。
|
内容
|
描述
|
Site page
|
ASP.NET页面存储在站点集自己的一个文档库中(因此它存储在内容数据库中)。可以用来制作用户自定义功能(例如报表或仪表板页面)。站点的页面可以被动态创建并提供了很大的灵活性。尽管如此,由于它们都存储在内容数据库中,Windows SharePoint Services对这些页面应用了严格的安全策略,不允许在线的代码。此外,这些页面在无编译模式下运行。
|
Application page
|
物理ASP.NET页面存储在/12/Template/Layouts文件夹下。这个文件夹被Web服务器上所有的Windows SharePoint Services站点共享。应用页面是为SharePoint站点创建额外的管理特性比较好的方式。因为他们不是内容数据库中的内容,可以在线执行代码。
|
Style sheets and master pages
|
用来定义站点的外观,同时也定义了站点中所有页面公用的功能。
|
Navigation control
|
基于ASP.NET的导航控件提供了基于ASP.NET对象模型的体验。Windows SharePoint Services提供了很多默认基于ASP.NET的导航控件。当一个Windows SharePoint Services站点发布到公网上时通常都需要自定义导航控件。
|
User control
|
ASP.NET用户控件(.ascx文件)可以为SharePoint站点的页面提供很多功能。Windows SharePoint Services提供了很多控件,存储在/12/Template/ControlTemplates文件夹中。创建自己的用户控件,例如,显示在母版页中。用户控件可以给用户提供一种特殊的编辑上的体验,例如自定义信息管理策略或自定义字段。
|
Feature
|
描述
|
Site definition
|
站点自定义模板,部署在/12/Template/SiteTemplate文件夹中。其中核心文件为Onet.xml,其中还包含了站点的全局定义和配置。
|
Features
|
Windows SharePoint Services 3.0中介绍的,一种以组件的方式自定义SharePoint站点的Schema和功能。Features被建立和部署后可以被激活。很多以前提到的解决方案类型都可以用Feature来定义。你可以在/12/Template/Features文件夹下找到已经部署的Feature定义的列表。
|
Custom Lists
|
自定义列表和文档库的Schema也是基于CAML文件定义的,而且一般都作为Feature定义的一部分。有时也是站点定义的一部分。
|
Site Columns and Content Types
|
Schema作为可重用包中的一部分,可以在SharePoint容器(列表和文档库)中进行存储和管理。网站栏和内容类型大多数情况下都是提供给Feature的内容。
|
Custom Field Definitions
|
这些是基于CAML的文件,和包含后台代码的.NET组件一起,例如,在用户创建文档库自定义元数据时作为字段的类型供用户选择。
|
using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;
namespace HelloWorldWebPart
{
[Guid("4e7c009f-19b4-469f-b16c-0a2560c3cdb6")]
public
class HelloWorldWebPart : System.Web.UI.WebControls.WebParts.WebPart {
protected
override void Render(HtmlTextWriter writer) {
// TODO: add custom rendering code here. // writer.Write("Output HTML"); writer.Write("Hello Readers!");
}
}
}
|
public
override string GetValidatedString(object value) {
if (value.ToString().Length != 3) {
throw new SPFieldValidationException ("仅能输入3个字符!");
}
else {
return value.ToString(); }
}
|
Anatomy of a SharePoint solution
Main XML elements in a solution manifest file
<SolutionSolutionId="1de3b0fc-78e9-4fe6-ae63-51ea50109982"xmlns="http://schemas.microsoft.com/sharepoint/"
> </Solution>
|
Services运算服务器、文档转换服务器等等)上解决方案的例子中一般是自定义配置或者自定义转换。IISReset特性可以用来当解决方案部署到IIS的Web应用上时重启Information Services (IIS)。
<SolutionSolutionId="dda6427b-b880-46c0-a428-10c4bac0ce91"xmlns="http://schemas.microsoft.com/sharepoint/"
> <FeatureManifests>
<FeatureManifestLocation="HelloWorldWebPart_28c3eefe-2c03-4791-9f69-4405c80e1d92/feature.xml"
/> </FeatureManifests>
…
</Solution>
|
<SolutionSolutionId="dda6427b-b880-46c0-a428-10c4bac0ce91"xmlns="http://schemas.microsoft.com/sharepoint/"
> …
<Assemblies>
<AssemblyLocation="HelloWorldWebPart.dll"DeploymentTarget="GlobalAssemblyCache"
> <SafeControls>
<SafeControlAssembly="HelloWorldWebPart,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5"Namespace="MSDN"TypeName="HelloWorldWebPart"Safe="True" /> </SafeControls>
</Assembly>
</Assemblies>
</Solution>
|
assembly cache中;WebApplication告诉Windows SharePoint Services将组件放到IIS Web应用程序中的某一个应用程序文件夹中。WebApplication表示Solution的使用依赖于管理员设置的与IIS Web应用程序相关的web.config文件的信任级别。将组件部署到GAC中,这是一个全局信任的位置,做为一个Developer不需要担心设置它的信任级别。
<SolutionSolutionId="8f37f0a7-ec35-4a63-9c3d-91205d9a2ac6"
xmlns="http://schemas.microsoft.com/sharepoint/"
> …
<ApplicationResourceFiles>
<ApplicationResourceFileLocation="hellowp.resx"/>
<ApplicationResourceFileLocation="hellowp.en-us.resx"/>
</ApplicationResourceFiles>
</Solution>
|
<DwpFiles>
<DwpFileFileName="hellowebpart.webpart"Location="hellowebpart.webpart"/>
</DwpFiles>
|
<SiteDefinitionManifests>
<SiteDefinitionManifestLocation="LitwareSiteTemplate">
<WebTempFileLocation="1033/xml/webtempLitware.xml"
/> </SiteDefinitionManifest>
</SiteDefinitionManifests>
|
<SolutionSolutionId="25236d92-90da-40b6-a878-ae5ef62b038a"xmlns="http://schemas.microsoft.com/sharepoint/"
> <FeatureManifests>
<FeatureManifestLocation="HelloWorldWebPart_4e7c009f-19b4-469f-b16c-0a2560c3cdb6/feature.xml"
/> </FeatureManifests>
<Assemblies>
<AssemblyLocation="HelloWorldWebPart.dll"DeploymentTarget="GlobalAssemblyCache"
> <SafeControls>
<SafeControlAssembly="HelloWorldWebPart,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5"Namespace="HelloWorldWebPart"TypeName="HelloWorldWebPart"Safe="True" /> </SafeControls>
</Assembly>
</Assemblies>
</Solution>
|
<SolutionSolutionId="cf5ab279-3d67-4183-8566-3ee695086a83"xmlns="http://schemas.microsoft.com/sharepoint/"
> <TemplateFiles>
<TemplateFileLocation="xml/fldtypes_85fdb4e1-7890-4e7a-b031-ed44ec2e09aa.xml"
/> </TemplateFiles>
<Assemblies>
<AssemblyLocation="SimpleTypeFieldDemo.dll"DeploymentTarget="GlobalAssemblyCache"
> <SafeControls>
<SafeControlAssembly="SimpleTypeFieldDemo,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5"Namespace="ProjectReferenceNumber"TypeName="ProjectReferenceNumberField"Safe="True" /> </SafeControls>
</Assembly>
</Assemblies>
</Solution>
|
<SolutionSolutionId="ac14f411-0bcb-4074-ba59-591a21b47a77"xmlns="http://schemas.microsoft.com/sharepoint/"
> <FeatureManifests>
<FeatureManifestLocation="LeagueCalendar_45ac1492-1100-4069-b6eb-3ff3fda781b7/feature.xml"
/> <FeatureManifestLocation="PlayersList_4c42b7d0-9b41-49ff-93aa-e76c570362e6/feature.xml"
/> <FeatureManifestLocation="Teams_99315f3f-1112-4ded-bc3a-8f4477f7af3c/feature.xml"
/> <FeatureManifestLocation="MSDNLeague_9b587e0c-947b-4201-8f6f-e944fafd2bf5/feature.xml"
/> <FeatureManifestLocation="MSDNLeague_be95e5aa-ab72-4b7f-a8de-7a6fa87d5aaa/feature.xml"
/> </FeatureManifests>
<Assemblies>
<AssemblyLocation="MSDNLeague.dll"DeploymentTarget="GlobalAssemblyCache"
> <SafeControls>
<SafeControlAssembly="MSDNLeague,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=34487da495114f6c"Namespace="MSDNLeague"TypeName="MSDNLeague"Safe="True" /> </SafeControls>
</Assembly>
</Assemblies>
<SiteDefinitionManifests>
<SiteDefinitionManifestLocation="MSDNLeague_e74168d4-4c89-4262-8ab1-fb053257c3a6">
<WebTempFileLocation="2052/xml/webtempMSDNLeague_6b9813c7-2b8f-4507-8de6-9cd2431c5053.xml"
/> </SiteDefinitionManifest>
</SiteDefinitionManifests>
</Solution>
|
<FeatureId="{489C77F1-B064-408e-9B85-029A33BDF9D7}"
Title="Employees"
Description="This feature provides support
for creating an Employee List." Version="1.0.0.0"
Scope="Web"
Hidden="FALSE"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifestLocation="ListTemplates/Employees.xml"/>
<ElementFileLocation="Employees/allitems.aspx"
/> <ElementFileLocation="Employees/dispform.aspx"
/> <ElementFileLocation="Employees/editform.aspx"
/> <ElementFileLocation="Employees/newform.aspx"
/> <ElementFileLocation="Employees/schema.xml"
/> </ElementManifests>
</Feature>
|
<SolutionSolutionId="{B2BE6294-D62F-4f14-9266-7C37AD2B9DBA}"
xmlns="http://schemas.microsoft.com/sharepoint/"
> <FeatureManifests>
<FeatureManifestLocation="EmployeesList/feature.xml"
/> </FeatureManifests>
</Solution>
|
;
; *** .ddf file for generating SharePoint solution
; .OPTION EXPLICIT ; Generate errors
.Set CabinetNameTemplate=Employees.wsp
.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory
.Set CompressionType=MSZIP;** All files are compressed in cabinet files
.Set UniqueFiles="ON"
.Set Cabinet=on
.Set DiskDirectory1=Package ;
*** the manifest file
manifest.xml manifest.xml
; *** the feature files
Features/EmployeesList/feature.xml EmployeesList/feature.xml
Features/EmployeesList/ListTemplates/Employees.xml EmployeesList/ListTemplates/Employees.xml
Features/EmployeesList/Employees/AllItems.aspx EmployeesList/Employees/AllItems.aspx
Features/EmployeesList/Employees/DispForm.aspx EmployeesList/Employees/DispForm.aspx
Features/EmployeesList/Employees/EditForm.aspx EmployeesList/Employees/EditForm.aspx
Features/EmployeesList/Employees/NewForm.aspx EmployeesList/Employees/NewForm.aspx
Features/EmployeesList/Employees/schema.xml EmployeesList/Employees/schema.xml
|
set MakeCabTool=d:/Program Files/Microsoft Visual Studio 8/SmartDevices/SDK/SDKTools/makecab.exe
set SPAdminTool=%CommonProgramFiles%/Microsoft Shared/web serverextensions/12/BIN/stsadm.exe
"%MakeCabTool%" /f wsp_structure.ddf
"%SPAdminTool%" -o addsolution -filename package/Employees.wsp
"%SPAdminTool%" -o deploysolution -name Employees.wsp -immediate
|
adopter material for Microsoft Redmond for the latest version of SharePoint and has toured many countries with his developer-focused workshops. He is a frequent speaker at major Microsoft conferences such as TechEd and SharePoint Connections, and is the author
of numerous white papers published on MSDN. He is also the author of a book titled
Inside MOSS 2007, published by Microsoft Press. More information about Patrick can be found at his
blog.
Windows SharePoint Services 3.0编码开发工具和技巧(Part 1 of 2)的更多相关文章
-
Microsoft Windows Sharepoint Services V3.0 安装图示
本文以图示的方式,向读者展示Microsoft Windows SharePoint Services V3.0的安装过程. 在以下图示的安装过程中,使用了下面所列出的软件: Windows Serv ...
-
Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: ";An update conflict has occurred, and you must re-try this action";
Article ID: 939308 - View products that this article applies to. Expand all | Collapse all Symptoms ...
-
Windows SharePoint Services 默认母版页
转:http://msdn.microsoft.com/zh-cn/library/ms467402(v=office.12).aspx 最终用户可以自定义的 Windows SharePoint S ...
-
Windows平台cocos2d-x 3.0 android开发环境
cocos2d-x升级到3.0后变化不小,除了API的变化(主要是函数和类名称变化,以及使用了C++11的不少特性.function/bind, lamda, std::thread-),创建和编译p ...
-
windows上安装python和python开发工具
一.python安装: 登录python官网,下载需要的安装包:https://www.python.org/downloads/windows/.,一般就下载 executable installe ...
-
VS2010开发工具使用技巧<;之简单讲解>;
俗语云:工欲善其事必先利其器! 1.代码放大 效果:放大前----------------------------------------------------------------->放大 ...
-
sublime前端开发工具常用技巧
ctrl+N//新建文件夹ctrl+shift+p//打开命令行!,ctrl+E//快速生成html模板ctrl+E//自动补齐ctrl+P(#@)//goto 任何地方,其中#查找元素,@查找样式c ...
-
Android安装 sdk+jdk+Eclipse+Adt开发工具
根据别人提供的手册和安装过程体验加以更新和详细描述 安装Android开发工具 开发Android应用程序的门坎并不高,因为Google已经为Android应用程序开发提供了免费而且跨平台的集成开发环 ...
-
C#入门教程(一)–.Net平台技术介绍、C#语言及开发工具介绍-打造C#学习教程
一.什么是.Net平台? .Net平台是微软搭建的技术平台,技术人员在此平台上进行应用的搭建与开发.它提供了运行所必须的环境.NET Framework类库以及CLR(公共语言运行时).好比我们人类的 ...
随机推荐
-
bzoj3208--记忆化搜索
题目大意: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人员开发一个滑雪项目. 我们可以把风景区看作一个n*n的地图,每个点有它的初始高度,滑雪只能从高处往低处滑[严格大于] ...
-
Android BaseAdapter的使用
数据适配器有很多种,今天在这里记录一下最通用是适配器BaseAdapter. 首先说一下什么是适配器,这里我从网上找到一幅图片 由上图我们不难看出,所谓的适配器,就是数据与视图之间的桥梁.由它把数据绑 ...
-
SASS学习笔记_02
导入 当模块化布局的时候 导入头和尾 私有化 不生成css文件 文件名前面加下划线 结果 嵌套导入 导入css文件 不推荐 注释 和默认变量值
-
PIL 安装
1.安装依赖包 1.1 ubuntu安装 apt-get install python-devapt-get install libjpeg-dev apt-get install libjpeg8- ...
-
Springmvc+Spring+Mybatis实现员工登录注册功能
ssm实现用户注册以及登录功能..转载请标明出处 http://www.cnblogs.com/smfx1314/p/smfx1314.html 前端bootstrap 所使用的IDE是eclips ...
-
MongoExport后的负载均衡问题查询及解决:can&#39;t accept new chunks because there are still 2 deletes from previous migration
问题 前一阵有一个数据导出需求,按照各种数据库的使用方法,使用MongoExport方法导出数据,将数据导出到本地文件系统,在导出之后遇到此问题. 此问题和mongoexport的原理有关,我们知道数 ...
-
android 随手记 摄像头录像
1 xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:androi ...
-
python基础--文件操作实现全文或单行替换
python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...
-
[Domino]执行命令load design的时候出现Warning: Cannot locate design template
发现问题 在做Pseudo Test的时候被QA测出了一个问题.在Domino concole打命令“load design”,被Workbench翻译过后的数据库提示了一个警告:Warning: C ...
-
JQuery表单验证插件
使用jQuery的validate插件实现一个简单的表单验证 <!DOCTYPE html> <html> <head> <meta charset=&quo ...