一步步Sharepoint教程2130Word文档下载推荐.docx
《一步步Sharepoint教程2130Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《一步步Sharepoint教程2130Word文档下载推荐.docx(36页珍藏版)》请在冰豆网上搜索。
不过不管怎样,我真是觉得不好意思呢!
本篇文章将介绍如何完美解决实现Form认证后无法再用SharePointDesigner编辑网站的问题。
这里所说的完美,是相对于前面一篇文章而言的。
在前面的一篇文章中,我们采用临时改成Windows认证的方案解决了这个问题。
而现在我们将在保持Form认证的情况下解决这个问题。
最重要的是,现在的方案简单得只有一张截图,真是有点骗发表的文章数目的嫌疑呢。
下面将记录这一步的操作过程。
1、首先确保网站已经设为Form认证模式,打开网站首页,使用管理员帐户登录,请注意,登录前把下面的Signmeinautomatically复选框的勾打上。
2、登录成功后,再点击InternetExplorer工具栏中的EditwithMicrosoftOfficeSharePointDesigner按钮,即可顺利打开SharePointDesigner了。
嘿嘿,想不到这个方案如此的简单,以致于我们几乎什么都没做!
在前面的文章中,我们讲解了很多基础的内容,主要包括安装配置、Form认证等。
可能这些对很多朋友来说,是太容易了。
那么,从下一篇文章开始,就让我们进入SharePoint的高级课题之旅吧。
下一篇文章我将记录如何编写一个最简单的WebPart的过程。
二十三:
编写一个最简单的WebPart
(1)——创建工程
在前面的文章中,我们讲解了很多基础的内容,主要包括安装配置、Form认证等。
本篇文章将介绍如何编写一个最简单的WebPart。
跟所有的编程技术一样,都是从编写第一个HelloWorld程序开始的。
笔者自叹也是一个俗人,所以当然也不能免俗,我们就也从编写一个HelloWorld的WebPart开始吧!
考虑到编写一个最简单的WebPart的文章共有20多幅截图,截图总大小近2M,为了尽量减少打开网页的时间,本篇文章将被分割成几个小的部分。
因此而给大家带来的阅读不便,就请海涵了:
)
本篇文章将创建一个WebPart工程。
为了方便您的学习,您可以下载本篇文章所创建的工程。
下面将记录每一步的操作过程。
1、首先VisualStudio2005,在菜单中依次选择File,New,Project。
2、单击Project后,即弹出NewProject对话框。
这里我们选择创建一个C#语言的ClassLibrary工程,工程名称为Eallies.WebParts.Hello。
3、新建工程完毕后,将默认的Class1改名为Instance,则整个工程就是这样的:
4、在右边的SolutionExplorer中,右键单击References,在弹出的菜单中选择AddReference,则弹出AddReference对话框。
这里我们选择ComponentName为System.Web。
5、添加完Reference后,我们打开Instance.cs,将其代码更改为:
1usingSystem;
2usingSystem.Collections.Generic;
3usingSystem.Text;
4usingSystem.Web.UI.WebControls.WebParts;
5
6namespaceHello
7{
8 publicclassHello:
WebPart
9 {
10 privatestring_Text="
HelloWorld!
"
;
11
12 [WebBrowsable(true),Personalizable(true)]
13 publicstringText
14 {
15 get{return_Text;
}
16 set{_Text=value;
17 }
18 protectedoverridevoidRender(System.Web.UI.HtmlTextWriterwriter)
19 {
20 writer.Write(_Text);
21 }
22 }
23}
6、然后再打开PropertiesAssemblyInfo.cs,将其代码更改为:
1usingSystem.Reflection;
2usingSystem.Runtime.CompilerServices;
3usingSystem.Runtime.InteropServices;
4usingSystem.Security;
6//GeneralInformationaboutanassemblyiscontrolledthroughthefollowing
7//setofattributes.Changetheseattributevaluestomodifytheinformation
8//associatedwithanassembly.
9[assembly:
AssemblyTitle("
Hello"
)]
10[assembly:
AssemblyDescription("
11[assembly:
AssemblyConfiguration("
12[assembly:
AssemblyCompany("
EalliesCorporation"
13[assembly:
AssemblyProduct("
14[assembly:
AssemblyCopyright("
Copyright©
EalliesCorporation2006"
15[assembly:
AssemblyTrademark("
16[assembly:
AssemblyCulture("
17
18//SettingComVisibletofalsemakesthetypesinthisassemblynotvisible
19//toCOMcomponents. Ifyouneedtoaccessatypeinthisassemblyfrom
20//COM,settheComVisibleattributetotrueonthattype.
21[assembly:
ComVisible(false)]
22
23//ThefollowingGUIDisfortheIDofthetypelibifthisprojectisexposedtoCOM
24[assembly:
Guid("
8318200d-9059-4b4e-81db-c146659bd89d"
25
26//Versioninformationforanassemblyconsistsofthefollowingfourvalues:
27//
28// MajorVersion
29// MinorVersion
30// BuildNumber
31// Revision
32//
33//YoucanspecifyallthevaluesoryoucandefaulttheRevisionandBuildNumbers
34//byusingthe'
*'
asshownbelow:
35[assembly:
AssemblyVersion("
1.0.0.0"
36[assembly:
AssemblyFileVersion("
37
38[assembly:
AllowPartiallyTrustedCallers()]
这里,我们实际上只是引用了System.Security,然后加上了[assembly:
AllowPartiallyTrustedCallers()]这一行代码。
至此,WebPart工程即创建完毕。
下一篇文章我将记录如何编写一个最简单的WebPart的第二部分。
二十四:
编写一个最简单的WebPart
(2)——配置WebPart
本篇文章将记录如何编写一个最简单的WebPart的第二部分,即配置WebPart,包括为WebPart创建一个强名称、配置web.config等。
1、首先打开前面创建的工程,在SolutionExplorer中右键单击工程名,在弹出的菜单中选择Properties,则可以打开工程的属性框,在属性框中选择Signing页。
在Signing页中,勾上Signtheassembly,并在Chooseastrongnamekeyfile下拉框中选择New。
2、在弹出的CreateStrongNameKey对话框中,我们输入Keyfilename,如Key.snk,然后将Protectmykeyfilewithapassword前面的勾去掉。
3、创建Keyfile后,则工程中多了一个Key.snk的文件。
至此,工程部分的工作全部结束,我们可以编译工程了。
4、下面我们将开始配置web.config。
为了找到WebPart工程的Assembly信息,我们需要借助于第三方软件,如Reflector。
请大家自行在网上下载免费的Reflector。
打开Reflector,在工程文件夹下面的binDebug子文件夹中找到Eallies.WebParts.Hello.dll,并将其拖入Reflector中。
这样,我们就能很方便的找到Assembly信息(即Name后的内容)。
5、再次打开本系列文章创建的Site的文件夹,找到web.config文件。
6、打开web.config文件,在其中<
SafeControl>
……<
/SafeControl>
节下添加一行配置信息。
其中,Assembly属性中的内容即是从Reflector中直接Copy过来的。
1 <
SafeControlAssembly="
Eallies.WebParts.Hello,Version=1.0.0.0,Culture=neutral,PublicKeyToken=b13450f862917dc5"
Namespace="
Eallies.WebParts.Hello"
TypeName="
Instance"
Safe="
True"
/>
7、在上面的文件夹中,我们可以看到一个_app_bin的子文件夹,我们将编译好的Eallies.WebParts.Hello.dll复制到该文件夹中。
至此,配置WebPart的工作全部完毕。
下一篇文章我将记录如何编写一个最简单的WebPart的第三部分。
二十五:
编写一个最简单的WebPart(3)——添加WebPart
本篇文章将记录如何编写一个最简单的WebPart的最后一部分,即添加WebPart,包括把WebPart添加到网站的WebParts列表中,及把WebPart添加到网页中。
1、首先按照前面讲解过的方法打开网站的SiteSettings管理主页面。
2、在SiteSettings管理主页面中点击Webparts,即可进入WebPartGallery管理页面。
3、在WebPartGallery管理页面中点击New,即可进入NewWebParts编辑页面。
在NewWebParts编辑页面的WebPart列表中,找到Eallies.WebParts.Hello.Instance,并将其勾上,然后点击PopulateGallery按钮。
4、下面将介绍如何将WebPart添加到网页中。
打开网站首页,点击SiteActions,在弹出的菜单中选择EditPage。
5、点击EditPage页面后,页面即进入编辑状态。
6、在想要添加WebPart的地方点击AddaWebPart,即可弹出AddWebParts对话框。
在AddWebParts对话框中找到所需的WebPart,将其勾上,然后点击Add按钮。
7、添加完WebPart的页面就是这样的,看,多了一个HelloWorld的组件。
8、点击工具栏上的Publish,页面即发布成功。
至此,编写一个最简单的WebPart的工作全部完毕。
当然,这个WebPart基本上没有任何作用,但通过学习编写该WebPart,我们就可以发现,WebPart也不是什么神秘的东西,它跟WebControl基本上一样的,只是使用方法有所不同。
事实上,继承自System.Web.UI.WebControls.WebParts命名空间的WebPart,实际上就是WebControl,可以直接在Asp.NET2.0中使用。
下一篇文章我将记录如何编写一个带事件的WebPart。
二十六:
编写一个带事件的WebPart
前面的文章中,我们编写了一个非常简单的WebPart,它只能输出一个HelloWorld!
的字符串。
很显然,这种WebPart根本就没有什么实际的作用。
有没有办法编写比较复杂一些的,比如是带事件的WebPart呢?
本篇文章将介绍如何编写一个带事件的WebPart。
要实现带事件的WebPart,实际上就是要实现有复合控件的WebPart,这在开发过程中具有非常的的实际意义。
如果我们能够做到这点,那么,其它的什么样的WebPart,相信大家都能举一反三的做到。
这里,我就用一个TextBox,一个Button控件来举例子,要做到的就是单击Button,能将当前系统时间显示在TextBox中。
至于WebPart的基本操作,前面的文章中讲得很清楚,这里不再一一讲解操作步骤。
1、首先创建一个命名空间为Eallies.WebParts.Sample的C#的ClassLibrary工程,并将默认的Class1.cs改名为Time.cs。
然后添加System.Web引用,并将AssemblyInfo.cs按照前面文章中的做法更改好。
将Time.cs的代码更改为如下代码:
1usingSystem;
4
5usingSystem.Web.UI;
6usingSystem.Web.UI.WebControls;
7usingSystem.Web.UI.WebControls.WebParts;
8usingSystem.Web.UI.HtmlControls;
9
10namespaceEallies.WebParts.Sample
11{
12 publicclassTime:
WebPart,INamingContainer
13 {
14 privatestring_Text;
15
16 privateHtmlTableCell_HtmlTableCell=newHtmlTableCell();
18 privateTextBox_TextBox=newTextBox();
19 privateButton_Button=newButton();
20
21 publicTime()
22 {
23 this._Button.Click+=delegate(objectsender,EventArgse)
24 {
25 this._Text=DateTime.Now.ToString();
26
27 this._HtmlTableCell.InnerHtml="
28 this.AddControls();
29 };
30 }
31
32 [WebBrowsable(true),Personalizable(true)]
33 publicstringText
34 {
35 get{return_Text;
36 set{_Text=value;
37 }
38
39 protectedoverridevoidCreateChildControls()
40 {
41 this.Controls.Add(newLiteralControl("
<
table>
+"
n"
));
42 this.Controls.Add(newLiteralControl("
<
tr>
43 this.Controls.Add(this._HtmlTableCell);
44 this.Controls.Add(newLiteralControl("
/tr>
45 this.Controls.Add(newLiteralControl("
/table>
46
47 if(this.Page.IsPostBack==false)this.AddControls();
48 }
49
50 protectedoverridevoidOnLoad(EventArgse)
51 {
52 base.OnLoad(e);
53
54 if(this.Page.IsPostBack==true)this.AddControls();
55 }
56
57 protectedoverridevoidRender(HtmlTextWriterwriter)
58 {
59 base.Render(writer);
60 }
61
62 privatevoidAddControls()
63 {
64 this._TextBox.ID=this.ID+"
TextBox"
65 this._TextBox.Text=this._Text;
66 this._HtmlTableCell.Controls.Add(this._TextBox);
67
68 this._HtmlTableCell.Controls.Add(newLiteralControl("
br>
69
70 this._Button.ID=this.ID+"
Button"
71 this._Button.Text="
GetTime"
72 this._HtmlTableCell.Controls.Add(this._Button);
73 }
74 }
75}
2、按照前面文章的方法为该WebPart添加强名称。
这里做一点改变,将编译的输出路径更改为站点的bin目录,如C:
InetpubwwwrootwssVirtualDirectories9001_app_bin,这样做的目的是为了方便调试。
3、其它步骤,如更改web.config、将WebPart添加到网站的WebParts列表中等,就