使用ASP.NET几种Webpart部署方式


  本文标签:Webpart部署方式 使用ASP.NET

  使用ASP.NET几种Webpart部署方式:

  1.使用ASP.NET 2.0的Webpart部署方式,声明SafeContorl之后上载到Sharepoint的Webpart gallery中,MSDN上的Walkthrough: Creating a Basic Web Part 有详细介绍.

  2.使用SharePoint的Webpart,装一个VS Extensions for SharePoint之后有一个项目类型叫做webpart,写一个webpart,然后F5,就会把webpart部署到你的SharePoint的站点中.实际上也是部署了一个Feature. 其原理MSDN上也有介绍:Walkthrough: Creating a Basic SharePoint Web Part

  3.kaneboy在他的blog中提到过使用Feature的部署DelegateContorl的方式部署一个ascx文件到站点集的Feature  。

  以上三种方式各有优缺点,前两种方式采用纯粹的Webpart的形式,开发起来很麻烦,特别是一些丰富的用户界面会变得很麻烦  。第三种方式虽然解决了前两种方式的不足,但是没有Code-behind,做企业级开发把 code写在ascx文件中实在有点不合适,而且使用Feature部署以后管理起来不是很方便  。那么今天我就来Demo一种使用Code-behind 用户控件作为WebPart的方式,而且将部署的UserContorl便于管理  。

  这里使用一个工具叫SmartPart, 这个工具在WSS 2.0时代就有,现在又针对与WSS 3.0的版本  。下载回来一个msi安装包,不知道为什么我在两个VPC上安装都没有成功,解压缩到临时目录下之后就没反映了  。没办法,一些还得自己动手丰衣足食阿  。在临时目录下有一个Cab文件,把这个文件打开之后研究一下,大概明白了安装的步骤  。

  Step(1): 将SmartPart.dll部署到GAC.

  Step(2):新建一个Web Project,在里面开发你的用户控件,Demo的用户控件叫UCPart.ascx  。
前台代码:

  1. <%@ Control Language="C#" CodeFile="UCPart.ascx.cs" Inherits=
    "DemoWebPart.UCPart" CompilationMode="Always" %> 
  2. <asp:TextBox ID="txbDate" runat="server"> 
  3. asp:TextBox> 

  
后台代码:

  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Collections;  
  5. using System.Web;  
  6. using System.Web.Security;  
  7. using System.Web.UI;  
  8. using System.Web.UI.WebControls;  
  9. using System.Web.UI.WebControls.WebParts;  
  10. using System.Web.UI.HtmlControls;  
  11. namespace DemoWebPart  
  12. {  
  13. public partial class UCPart : System.Web.UI.UserControl  
  14. {  
  15. protected void Page_Load(object sender, EventArgs e)  
  16. {  
  17. this.txbDate.Text = DateTime.Now.ToShortDateString();  
  18. }  
  19. }  

  功能很简单,就是在后台代码中为一个textbox赋一个值  。编译一下通过之后,把这个用户控件连同其后台代码文件copy到<%IIS Root Dir%>\wss\VirtualDirectories\xxxx\UserContorls下  。

  其中<%IIS Root Dir%>为IIS的根目录,xxxx为当前Web Application的端口号  。如果你第一次做这个操作,是需要手工建立一个UserContorls文件夹的  。

  1. <SafeControl Assembly="SmartPart, Version=1.1.0.0, Culture=neutral, 
    PublicKeyToken=dd064a5b12b5277a"
     Namespace="SmartPart" TypeName="*" /> 

  同时更改<%IIS Root Dir%>\wss\VirtualDirectories\xxxx\Web.Config.声明SaftContorl.以上介绍使用ASP.NET几种Webpart部署方式  。