There is one question always bother me these days: How to develop and deploy WSS webparts in one solution using the WSS extension for the VS2005? This solution should consist of such files:
Today I found a easy way to realize what I need. (However, you could package these things into one solution manually, but that is a little bit complicated.)
First, Create a webpart project using the WSS add-in for VS2005. If you don't know how to do this, read Creating a Windows SharePoint Services 3.0 Web Part Using Visual Studio 2005 Extensions.
You could add another webpart project, and the add-in will deploy them together when you click deploy.
Now, add another project, called "Module" project, this project is used to provision files, I shall put my web user control in this project later.
Create another project, and create a user control, I build a simple control which just let the label control display the text in the textbox. The simple code is like this:
<script runat="server"> Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Me.Label1.Text = Me.TextBox1.Text End Sub </script> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> <br /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
Then, in the Module.xml file, I change the configuration.
<?xml version="1.0" encoding="utf-8"?> <!-- _filecategory="Module" _filetype="File" _filename="module.xml" _uniqueid="aa01ed93-8312-48ea-a798-6645071c35c7" --> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Module Name="Module1" Url="Controls" Path=""> <File Url="sample.txt" /> <File Url="MyControl.ascx" /> </Module> </Elements>
Then, in one of my web part class, I could use the control like this:
protected override void CreateChildControls() { Controls.Clear(); Controls.Add(Page.LoadControl("~/Controls/MyControl.ascx")); this.EnsureChildControls(); }
The project look like this.
When deployed, there should be 3 features in the solution, consists of two webparts and a Module. I think this could reduce the deploy work when developing a webpart which using a custom web user control.
However, I didn't do much test work, if you find any problems with this method. Please feel free to tell me, thanks.