Moss WebParts开发
来源:互联网 发布:windows pe 硬盘版 编辑:程序博客网 时间:2024/05/17 01:20
在开始WebParts开发之前,我们先了解一下MOSS的一些开发工具,然后再开始从简单到复杂的WebParts。
先插句对 MOSS的基本认识。MOSS,说白点就是一个建站系统(我个人感觉),比普通CMS强大而已,它可以进行工作流。你创建的网站等所有信息也都是保存在 DB中,它的对象模型都是以SP开头,如SPSite、SPWeb、SPList、SPListItem、SPField等,Site有Web集合,Web有List集合,List有Item集合和Field集合。安装MOSS后,所有的页面、模板、WebPart、程序集等都在 C:/Program Files/Common Files/Microsoft Shared/web server extensions/12这个12文件夹中,你在IIS的虚拟目录中是看不到页面文件的。运行SP程序的是w3wp.exe这个进程而不是运行 aspnet_ap.exe。
开发工具
使用这些工具,会使你在以后的MOSS开发中非常顺手。
1. Visual Studio extensions for Windows SharePoint Services
Visual Studio extensions for Windows SharePoint Services(点击链接可以下载)是开发自定义SP程序的工具。安装后会集成在VS2008中(VS2010 Beta2已经集成),它提供了工程模板、项目模板和SP方案建造器,这些模板会自动生成bat文件、Feature.xml和Manifest.xml 文件,右键点击工程选择deploy命令就会自动部署程序。通过View菜单其他工具可以找到WSP视图,WSP Builder和STSDEV工具可以帮助你维护Feature.xml和Manifest.xml文件,部署是会产生Web solution package (WSP),只要将这个包发给用户,让他自己在服务器上运行即可以轻松部署你开发的功能。
1> 工程模板:
* Web Part
* Team Site Definition
* Blank Site Definition
* List Definition TDGSF
* Empty SharePoint Project
2> 项目模板:
* Web Part
* Custom Field
* List Definition (with optional Event Receiver)
* Content Type (with optional Event Receiver)
* Module
* List Instance
* List Event Handler
* Template
3> SP方案建造器:
大家可以用它产生一个站点。更多关于使用的信息可以下载用户向导Visual Studio extensions Windows SharePoint Services User Guide.
2. CAML Query Tools
Collaborative Application Markup Language (CAML) 其实就是为查询SPList数据的XML标记语言。下面是生成CAML的工具:
* U2U CAML Query Builder
* U2U CAML Query Builder Feature
* Stramit SharePoint CAML Viewer
* CAML.NET
更多关于CAML的信息, 请看MSDNCollaborative Application Markup Language Core Schemas。
3. SharePoint Designer
可以设计工作流,编辑模板等,更多信息请看Microsoft Office SharePoint Designer。
4. 更多链接
* Automating Solution Package Creation for Windows SharePoint Services by Using MSBuild
* Microsoft Office SharePoint Developer Center
* Microsoft SharePoint Team Blog
* SharePoint Solution Installer
* Team-Based Development in Microsoft Office SharePoint Server 2007
* Using Visual Studio 2005, MakeCab.exe and MSBuild to Create Window SharePoint Services v3 Solution Files (*.WSPs)
* Web Application Automation Tool (WatiN)
* Windows SharePoint Services
* Windows SharePoint Services Developer Center
* Windows SharePoint Services 3.0 SP1 Developer Evaluation VPC
WebPart
关于WebPart的部署,大家可以看高维鹏(Brian)的SharePoint 2007图文开发教程(3)---实现简单的WebPart,这里我只讲代码。
1. Hello WebPart
新建一个WebPart模板类库,添加一个WebPart项目,Hello类继承System.Web.UI.WebControls.WebParts.WebPart。功能是在页面中输出"Hello WebPart World!”。注意,其中AssemblyInfo.cs后面一定要有 [assembly: System.Security.AllowPartiallyTrustedCallers()] 这一句,否则WebPart将无法使用。
public class Hello : WebPart
{
string text = "Hello WebPart World!";
[WebBrowsable(true), Personalizable(true)]
public string Text
{
get { return text; }
set { text = value; }
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
writer.Write(text);
}
}
2. 高级WebPart
这个WebPart我们将要表演如下节目:
* 在WebPart中显示站点“Test”列表中的“Name”字段
* 单击每个项目将该内容显示在上面创建的Hello部件中
这是一个带事件的WebPart,同时将数据传送到页面另外一个WebPart中显示,继承WebPart控件的同时还要实现IPostBackEventHandler接口。
public class List : WebPart, IPostBackEventHandler
{
private List<string> nameList = new List<string>();
private HtmlTableCell tableCell = new HtmlTableCell();
public List()
{
using (SPWeb web = SPContext.Current.Web)
{
SPList testList = web.Lists["Test"];
//"Test"为Test列表的名称
foreach (SPListItem item in testList.Items)
{
Guid nameId = item.Fields["Name"].Id;
//"Name"为Name字段的显示名称
nameList.Add(item[nameId].ToString());
}
}
}
protected override void CreateChildControls()
{
this.Controls.Add(new LiteralControl("<table><tr>"));
this.Controls.Add(tableCell);
this.Controls.Add(new LiteralControl("</tr></table>"));
if (!Page.IsPostBack)
{
AddNameItems();
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (Page.IsPostBack)
{
AddNameItems();
}
}
private void AddNameItems()
{
string html = "<ul>";
foreach (string name in nameList)
{
html += string.Format(
"<li style=/"cursor:pointer/" onclick=/"{0}/">{1}</li>",
Page.ClientScript.GetPostBackEventReference(this, name), name);
}
html += "</ul>";
tableCell.Controls.Add(new LiteralControl(html));
}
#region IPostBackEventHandler Members
public void RaisePostBackEvent(string eventArgument)
{
for (int i = 0; i < WebPartManager.WebParts.Count; i++)
{
if (WebPartManager.WebParts[i].Title == "Hello")
{
Hello hello = (Hello)WebPartManager.WebParts[i];
hello.Text = eventArgument;
}
}
}
#endregion
}
先插句对 MOSS的基本认识。MOSS,说白点就是一个建站系统(我个人感觉),比普通CMS强大而已,它可以进行工作流。你创建的网站等所有信息也都是保存在 DB中,它的对象模型都是以SP开头,如SPSite、SPWeb、SPList、SPListItem、SPField等,Site有Web集合,Web有List集合,List有Item集合和Field集合。安装MOSS后,所有的页面、模板、WebPart、程序集等都在 C:/Program Files/Common Files/Microsoft Shared/web server extensions/12这个12文件夹中,你在IIS的虚拟目录中是看不到页面文件的。运行SP程序的是w3wp.exe这个进程而不是运行 aspnet_ap.exe。
开发工具
使用这些工具,会使你在以后的MOSS开发中非常顺手。
1. Visual Studio extensions for Windows SharePoint Services
Visual Studio extensions for Windows SharePoint Services(点击链接可以下载)是开发自定义SP程序的工具。安装后会集成在VS2008中(VS2010 Beta2已经集成),它提供了工程模板、项目模板和SP方案建造器,这些模板会自动生成bat文件、Feature.xml和Manifest.xml 文件,右键点击工程选择deploy命令就会自动部署程序。通过View菜单其他工具可以找到WSP视图,WSP Builder和STSDEV工具可以帮助你维护Feature.xml和Manifest.xml文件,部署是会产生Web solution package (WSP),只要将这个包发给用户,让他自己在服务器上运行即可以轻松部署你开发的功能。
1> 工程模板:
* Web Part
* Team Site Definition
* Blank Site Definition
* List Definition TDGSF
* Empty SharePoint Project
2> 项目模板:
* Web Part
* Custom Field
* List Definition (with optional Event Receiver)
* Content Type (with optional Event Receiver)
* Module
* List Instance
* List Event Handler
* Template
3> SP方案建造器:
大家可以用它产生一个站点。更多关于使用的信息可以下载用户向导Visual Studio extensions Windows SharePoint Services User Guide.
2. CAML Query Tools
Collaborative Application Markup Language (CAML) 其实就是为查询SPList数据的XML标记语言。下面是生成CAML的工具:
* U2U CAML Query Builder
* U2U CAML Query Builder Feature
* Stramit SharePoint CAML Viewer
* CAML.NET
更多关于CAML的信息, 请看MSDNCollaborative Application Markup Language Core Schemas。
3. SharePoint Designer
可以设计工作流,编辑模板等,更多信息请看Microsoft Office SharePoint Designer。
4. 更多链接
* Automating Solution Package Creation for Windows SharePoint Services by Using MSBuild
* Microsoft Office SharePoint Developer Center
* Microsoft SharePoint Team Blog
* SharePoint Solution Installer
* Team-Based Development in Microsoft Office SharePoint Server 2007
* Using Visual Studio 2005, MakeCab.exe and MSBuild to Create Window SharePoint Services v3 Solution Files (*.WSPs)
* Web Application Automation Tool (WatiN)
* Windows SharePoint Services
* Windows SharePoint Services Developer Center
* Windows SharePoint Services 3.0 SP1 Developer Evaluation VPC
WebPart
关于WebPart的部署,大家可以看高维鹏(Brian)的SharePoint 2007图文开发教程(3)---实现简单的WebPart,这里我只讲代码。
1. Hello WebPart
新建一个WebPart模板类库,添加一个WebPart项目,Hello类继承System.Web.UI.WebControls.WebParts.WebPart。功能是在页面中输出"Hello WebPart World!”。注意,其中AssemblyInfo.cs后面一定要有 [assembly: System.Security.AllowPartiallyTrustedCallers()] 这一句,否则WebPart将无法使用。
public class Hello : WebPart
{
string text = "Hello WebPart World!";
[WebBrowsable(true), Personalizable(true)]
public string Text
{
get { return text; }
set { text = value; }
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
writer.Write(text);
}
}
2. 高级WebPart
这个WebPart我们将要表演如下节目:
* 在WebPart中显示站点“Test”列表中的“Name”字段
* 单击每个项目将该内容显示在上面创建的Hello部件中
这是一个带事件的WebPart,同时将数据传送到页面另外一个WebPart中显示,继承WebPart控件的同时还要实现IPostBackEventHandler接口。
public class List : WebPart, IPostBackEventHandler
{
private List<string> nameList = new List<string>();
private HtmlTableCell tableCell = new HtmlTableCell();
public List()
{
using (SPWeb web = SPContext.Current.Web)
{
SPList testList = web.Lists["Test"];
//"Test"为Test列表的名称
foreach (SPListItem item in testList.Items)
{
Guid nameId = item.Fields["Name"].Id;
//"Name"为Name字段的显示名称
nameList.Add(item[nameId].ToString());
}
}
}
protected override void CreateChildControls()
{
this.Controls.Add(new LiteralControl("<table><tr>"));
this.Controls.Add(tableCell);
this.Controls.Add(new LiteralControl("</tr></table>"));
if (!Page.IsPostBack)
{
AddNameItems();
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (Page.IsPostBack)
{
AddNameItems();
}
}
private void AddNameItems()
{
string html = "<ul>";
foreach (string name in nameList)
{
html += string.Format(
"<li style=/"cursor:pointer/" onclick=/"{0}/">{1}</li>",
Page.ClientScript.GetPostBackEventReference(this, name), name);
}
html += "</ul>";
tableCell.Controls.Add(new LiteralControl(html));
}
#region IPostBackEventHandler Members
public void RaisePostBackEvent(string eventArgument)
{
for (int i = 0; i < WebPartManager.WebParts.Count; i++)
{
if (WebPartManager.WebParts[i].Title == "Hello")
{
Hello hello = (Hello)WebPartManager.WebParts[i];
hello.Text = eventArgument;
}
}
}
#endregion
}
- Moss WebParts开发
- MOSS AJAX WebParts开发环境设置
- MOSS AJAX WebParts开发环境设置
- MOSS AJAX WebParts开发环境设置
- MOSS AJAX WebParts开发环境设置
- MOSS SDK学习(7) -- 筛选WebParts的使用
- WebParts
- 转:MOSS 2007 Filter webparts ,建立筛选Document Library 的Web Part
- MOSS工作流 InfoPath+WorkFlow+Moss 开发要点
- MOSS工作流 InfoPath+WorkFlow+Moss 开发要点
- MOSS 开发资源收藏
- MOSS:项目开发步骤
- MOSS项目开发步骤
- MOSS开发必备
- MOSS定制,开发方式
- MOSS开发常见错误信息
- MOSS开发--随笔
- MOSS中的WebPart开发
- research on btrfs
- shell脚本编写
- DB2命令大全
- I'm Dead
- ORA-15033 error when run root.sh
- Moss WebParts开发
- 不定參數的 C 函式
- 嵌入式及手机开发[笔试题目]
- 更新FreeBSD
- 本机内存简介:操作系统,硬件限制及虚拟内存
- c语言错误
- SQL Server 2000的数据库容量究竟是多大
- c 语言中插入汇编使用的格式
- 更换ESX服务器控制台网卡和故障恢复方案