Windows SharePoint Services 3.0编码开发工具和技巧(Part 1 of 2)
转: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(公共语言运行时).好比我们人类的 ...
随机推荐
- OC加强-day06
#program mark - 08 NSMutableDictionary的使用 [掌握] "/08 NSMutableDictionary的使用/1_练习 "练习 1.小明的身 ...
- Struts2的输入校验
一.Struts2提供了基于验证框架的输入校验,在这种校验方式下,所有的输入校验只需要编写简单的配置文件,Struts2的验证框架将会负责进行服务器校验和客户端校验. 校验失败后将Struts2将自动 ...
- MySQL配置文件详解
MYSQL 配置文件详解 “全局缓存”.“线程缓存”,全局缓存是所有线程共享,线程缓存是每个线程连接上数据时创建一个线程(如果没有设置线程池),假如有200连接.那就是200个线程,如果参数设定值是1 ...
- js监听
IE浏览器监听: function attachEvent(string eventFlag, function eventFunc) eventFlag: 事件名称,但要加上on,如onclick. ...
- 解析sql中的表名
最近的项目需求中需要解析sql得表名,由于只需要表名我觉得应该用相对粗暴一点的方式来解析 初步思路: 1.转义字符:去除两个引号连在一起的 2.字符串: 去除所有被引号包裹的 3.括号:识别括号处理 ...
- (转载)MVC + JQUERY + AJAX的几种方式
MVC + JQUERY + AJAX的几种方式 // 传过去一个简单值,获取一个简单值 $.ajax({ type: "GET", url: ...
- LDR伪指令与ADR伪指令的区别
测试代码 ldr r0, _start adr r0, _start ldr r0, =_start nop mov pc, lr _start: nop 设置代码的起始地址为 0x0c008000, ...
- EF5.0 对一个或多个实体的验证失败。有关详细信息,请参见“EntityValidationErrors”属性
使用asp.net+EF5.0练习的时候,遇到这样一个问题: 对一个或多个实体的验证失败.有关详细信息,请参见“EntityValidationErrors”属性 但是感到很疑惑,去百度,说是关闭EF ...
- jersey REST的接口简述
GET方法:只读,是幂等和安全的.在接口中抽象地定义了资源的请求方法类型后,其全部实现类都无须再定义. HEAD方法:与GET方法相似,只是服务器端的返回值不包括HTTP实体. OPTIONS方法:与 ...
- 《无懈可击的Web设计》_灵活的文字
常见的方法 body{ font-size:12px; } 使用像素单位的优点: 不管使用哪种浏览器或者设备来查看,文字看起来都大小一致. 为什么这么做不是无懈可击的? 以像素为单位设定文字大小之后, ...