If you’ve read my blogs before, then you probably know I am a fan of WSPBuilder (http://www.codeplex.com/wspbuilder). I like the intuitive nature and flexibility of the product. It really helps with the deployment aspects of SharePoint features and functionality. However, in the end, it is really just a structured way to create a deployment/feature project that will create the wsp install file for SharePoint. It really doesn’t help much when building UI functionality. For example: if you want to build a Web Part in SharePoint, you still have to build the Web Part code out programmatically (instead of using the WYSIWYG features of Visual Studio). The same issue comes up with building master pages, application pages or anything that requires html and a code behind.
In this article I am going to show you how you can utilize the flexible nature of WSPBuilder, ASP.Net Web Applications and post build scripts in order to utilize WSPBuilder as your deployment project for your UI.
Solution Overview
SharePoint is a dynamically generated website that pulls information out of a database. It also utilizes files on the server and uses those files as templates or actionable files. The combination of these static files on the server and the information in the database creates the web page we see. This architecture is what allows us to create pages, add webparts, modify navigation, etc… all within the SharePoint site itself.
So, when developing against SharePoint, we need to deploy files to this static place on the server and register the files in the database. This static place on the server is called the 12 hive. It is usually found at: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12. A lot of stuff goes on in the 12 hive. You have the templates for the website, images, themes, etc… You also have very special items called Features. Features allow us to deploy custom functions to SharePoint and then activate/deactivate them at our leisure.
WSPBuilder allows us to “mimic” the 12 hive, within a Visual Studio project. As long as you have the same 12 hive structure setup, it can create the SharePoint deployment file (i.e.: the wsp). You do not need WSPBuilder to create wsp files; you can do the same thing by building extra files in your solution called manifest.xml and ddf files. However, for rapid application development, it is easier to use a third party solution like WSPBuilder because it creates those extra deployment files for you.
While WSPBuilder is a great tool to help us build the deployment files, it is not a web application project in Visual Studio. Web application projects help us build code behind and designer files for our server side controls.
Thus, the ideal solution for building UI elements in SharePoint consists of:
- ASP.Net Web Application project to build the UI elements
- WSPBuilder project to create our deployable wsp file
The ASP.Net Web Application project will contain the UI elements (such as User Controls). The build process will move the appropriate elements from the ASP.Net Web Application project to the WSPBuilder deployment project. Then the deploy will move the files from the wsp to the SharePoint Server.

The key to this solution is seperation of concerns. You should build all UI related functionality in the ASP.Net Web Application project. All SharePoint specific functionality (ex: features), should be built in the WSPBuilder project.
Create the WSPBuilder deployment project
- Create your project in Visual Studio (File – New – Project)
- Choose the WSPBuilder project. I am utilizing the one under c# for this example.
- Give it a good name. I am using DemoProject for this example.
- Make sure it creates a new solution when creating the project.
- Add a folder under the 12 folder called “Template”.
- Add a folder under the Template folder called “LAYOUTS”.
- Add a folder under the Template folder called “FEATURES”.
- Add a folder under the Template folder called “CONTROLTEMPLATES”.
- Add a folder under the project called “GAC”.
Note: The “GAC” folder in WSPBuilder is a special folder. We can place external dlls in this folder the the resulting WSP will deploy those dlls to the GAC for us.

Create the UI project
As I mentioned in the beginning of this article, the point is to create our UI elements in an ASP.Net Web Application project. So, we need to create another project, in the same solution, so that we can develop our UI elements.
- Create the UI project (File – Add – New Project)
- Choose the ASP.NET Web Application Template. I am utilizing the one under c# for this example.
- Give it a good name. I am using DemoProjectUI for this example.
- Delete the Default.aspx
- Sign the project (this is because we are going to deploy to the GAC)
- Go to the properties (right-click the project and choose properties).
- Go to the Signing tab.
- Choose “Sign the assembly”.
- Under the “Choose a strong name key file” – choose <New>
- Give it a strong name – I usually use the name of my project (for example: DemoProjectUI).
- Uncheck “Protect my key with a password”.
- Add in the post build commands
- Go to the properties (right-click the project and choose properties).
- Go to the Build Events tab.
- Add the following into the post build section:
xcopy "$(TargetPath)" "$(SolutionDir)DemoProject\GAC\" /Y /s
xcopy "$(ProjectDir)*.ascx" "$(SolutionDir)DemoProject\12\TEMPLATE\CONTROLTEMPLATES\" /s /Y /R
Let’s recap what we did in the steps above. First we created a WSPBuilder project called DemoProject. This is our deployment project. It will create wsp files that we can deploy to SharePoint. Then we created an ASP.Net Web Application project called DemoProjectUI. This is where we will create all our UI elements. This will allow us to create user controls with html and code behind files. Lastly, we made sure that we moved the dll and ascx files, from the DemoProjectUI project, to the appropriate place in the DemoProject project.
Create a Web Part
Our next step is to create a Web Part. As anyone who has developed in SharePoint before knows, Web Parts are complete code files. They are not the html with code behind files we are used to when developing in ASP.Net. Some people are fine with developing Web Parts completely programmatically. However, it is much easier to create UI elements when you have WYSIWYG editors, html and code behind.
One way to get the normal ASP.Net web development experience, when developing Web Parts, is to use the SmartPart. The SmartPart is a very clever Web Part, developed by Jan Tielens, which can render .Net user controls in Web Parts. I really like the SmartPart, especially for people learning to build SharePoint Web Parts as user controls. However, I like more control over what I do and there are some limitations to the SmartPart. It is not my intent to go over those limitations in this article, but you can read them here: http://weblogs.asp.net/erobillard/archive/2008/03/04/what-to-know-about-smartpart-and-loadcontrol.aspx
In the end, you can accomplish the same thing as the SmartPart using the “LoadControl” method in .Net. Thus, this article will show how to create a Web Part, which will load the user control from our UI project.
- Create the Web Part using WSPBuilder
- Right-click on the DemoProject project
- Go to Add – New Item
- Choose WSPBuilder – Web Part Feature
- Give it a good name. For this example I am going to use DemoFeature
- A popup will come up with Title, Description and Scope. Since we are developing a Web Part, you must choose “Site” for the scope. This is because we need the Web Part to deploy to the Web Part gallery of our Site Collection.
Notice that WSPBuilder did two things for you:
- It created the feature in the features folder
- It created the Web Part code in a folder called WebPartCode - Modify the Web Part code to use “LoadControl”
- Open up the DemoFeature.cs file in the WebPartCode folder
- Remove the MyProperty property and attribute for now. This is just WSPBuilder showing you how you can use properties. We aren’t going to use them for this demo.
- Find the CreateChildControls method and find the comment that says “Your code here…”
- Remove the line under it.
- Replace it with this:
this.Controls.Add(Page.LoadControl("~/_controltemplates/DemoControl.ascx"));
Your CreateChildControls method should look like this:
protected override void CreateChildControls()
{
if (!_error)
{
try
{
base.CreateChildControls();
this.Controls.Add(Page.LoadControl("~/_controltemplates/DemoControl.ascx"));
}
catch (Exception ex)
{
HandleException(ex);
}
}
}
- Add the control to the UI project
- Right-click on the DemoProjectUI project
- Go to Add – New Item
- Choose Web – Web User Control
- Give it a good name. For this example I am going to use DemoControl.ascx
Now, when you build your solution, the DemoControl.ascx will move to the ControlTemplates folder in the DemoProject project. The SharePoint Web Part will look for the control by using the _controltemplates path.
Note: SharePoint can find any control in the ControlTemplates folder by using the _controltemplates path because of a mapping it creates in IIS. SharePoint maps the _controltemplates path to the servers 12 hive at 12/Template/ControlTemplates.
Utilizing the Code Behind
We now have our basic solution setup. We have our UI project and can build our user control there. We have our WSPBuilder deployment project that will create our SharePoint install file. But, we aren’t ready to deploy just yet. We still need to tell our user control how to talk to its code behind. Because we are utilizing the GAC for our assemblies, we need to put a fully qualified domain in our ascx file. There are a couple of techniques for figuring out this fully qualified domain. What I like to do is deploy the project and go to the GAC to get the properties.
- Deploy the WSP, so that the assembly gets added to the GAC, so that we can pull out the assembly information.
- Right-click on the DemoProject project
- Click WSPBuilder – Build WSP (wait for it to finish)
- Right-click on the DemoProject project
- Click WSPBuilder – Deploy WSP (wait for it to finish)
- Get the assembly information from the GAC
- Usually found at C:\Windows\assembly
- Right-click on the DemoProjectUI assembly and click properties
- Note the public key token and version ( I suggest copying the public key token at this point because we are going to use this information in the next step).
- Add the assembly information to the ascx
- Go to the DemoControl.ascx file in the DemoProjectUI project
- Add an Assembly reference as the first line in this file. Below is an example. However, you cannot copy this example. Your assembly reference must have the correct information about your assembly (including your public key information).
<%@ Assembly Name="DemoProjectUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=772ab5f02712b819"%>
Now we are ready to test our solution!
Deploy the Solution
Now that we are finished setting everything up, we can deploy the solution. This is real easy with the use of WSPBuilder as long as we are developing on a SharePoint server.
Note: Please make sure you have a web application and site collection setup in SharePoint before doing the following steps. When you deploy the WSP solution, it will deploy to all web applications on your development server. Thus, the web application must exist before you deploy.
- Right-click the DemoProject project
- Click WSPBuilder – Build WSP (wait for it to finish)
- Right-click on the DemoProject project
- Click WSPBuilder – Deploy WSP (wait for it to finish)
- Open up your SharePoint site.
- Go to Site Actions – Site Settings
- Go to Site Collection Features
- Activate the DemoFeature
- Go back to the site
- Go to Site Actions – Edit Page
- Click “Add a Web Part” in one of your web zones
- Find your WebPart. It should be under “MyGroup” unless you changed the group name in your feature. The elements.xml file in the feature folder of the DemoProject lets you configure this information. I
- Add your Web Part to the page
Note: if you go to the SharePoint site at this point and it says “Server Not Available”, then just keep refreshing the page until it shows up. The WSP install recycled the application pools because it needs to every time a dll in the GAC is added or modified. It sometimes takes a few seconds for this process to finish.
At this point your Web Part is empty because we didn’t add any html or code to it. However, you solutions architecture is ready to go. Now you can go back to your User Control, do your development, deploy the solution and it will show up on your page. Let’s give it a try.
- Go to the DemoProjectUI project
- Open the DemoControl.ascx
- Put a label tag on the control
- Go to the code behind (i.e.: DemoControl.ascx.cs)
- In the Page_Load type the following
protected void Page_Load(object sender, EventArgs e)
{
test.Text = "Hello World";
}
- Right-click the DemoProject project
- Click WSPBuilder – Build WSP (wait for it to finish)
- Right-click on the DemoProject project
- Click WSPBuilder – Deploy WSP (wait for it to finish)
- Open your SharePoint site and see your Web Part. It should say “Hello World”.
<asp:Label runat="server" ID="test" />
Remember: if it says “Server Not Available”, then keep refreshing the page until the site shows up again.
Wow, that was a lot of setup just to create a user control that can render in a Web Part. But, the great thing is, you only have to do the setup once. As a SharePoint Architect, I set this up for my team and they can just concentrate on building the user controls. It runs very smooth!
Per popular demand, here is the demo solution from the walkthrough. I used Visual Studio 2008, WSPBuilder Extenstions 1.0.5 and .net 2.0 for this solution (I used 2.0 so it can work for a client of mine, it can be upgraded to 3.5 easily)
DemoProject




Hi Greg,
In my user control, I have a web service file (.asmx). The user control will use the web method from there. What folder in DemoProject (the WSPBuilder project) should have this file? Thanks.
Stock
Thanks for the article. I am trying to follow the instructions 100% and my plain web part looks like it is deployed as it is shown in the web part list, and in Central Administration as being deployed and inserted into the GAC.
When I try to add it to a Web Parts page I get this error:
DemoFeature: A Web Part or Web Form Control on this Page cannot be displayed or imported. The type cannot be found or it is not registered as safe.
Any help would be great.
Thanks,
Jeff
For some reason it didn’t get marked as safe in the web.config file of your SharePiont site. If you deploy the WSP, from WSPBuilder, after the web application is created, then the WSP should take care of marking it as safe. So, I am not sure why it didn’t get marked as safe in your situation.
Create Custom SharePoint WebParts, it is simple.
Try this too,
Custom SharePoint WebParts
Nice Work !!!
Try this too,
Custom SharePoint WebParts
SharePoint WebParts, it is simple.
Try this too,
Custom SharePoint WebParts
Thanks for the Info!! this is my first time using Sharepoint and this is the best how to I have seen yet. However I have one problem if anyone has the time… I have created 5 DemoFeature projects now and with each one I can activate the feature and add it to the page. But I can never see the label text. any ideas?
Thanks
Now we need an article on writing a custom toolpart that contains a dynamic list of textboxes for storing webart settings. So for example:
for each product in webpart.productarray
Create textbox in toolpart to set the product’s detail form URL
this would allow for setting list properties at sharepoint web page edit time.
Hi,
Great article!
Is it possible to use LINQ to SQL in my Usercontrol and successfully get the webpart to work? Will i be able to create a LINQ Model in the Web Application?
Thanks
Sure, LINQ to SQL is possible if you just want to connect to a database or something. I’ve done that before. You just need to make sure you servers are ready for it – upgraded to .net 3.5.
Hello,
I just tried the above example and when I build the project the DemoControl.ascx does not move to the ControlTemplates folder in the DemoProject project. I then of course get an error that the file does not exist.
Any ideas?
Thanks
Hello Again,
I just wanted to check to make sure that no one can help me out with with this….
I still can not see the label, I have run through this 5+ times and I can add the web part and so on, I can also debug and see that it does update the test.Text to “Hello WOrld” but I still can not see hello world within the web part.
Thansk
Hi Jeff,
Unfortunately, it is very hard to help someone through comments of a blog. Sometimes it is possible with a very specific error, but it is very hard when it just doesn’t work. Have you tried the Demo Project link at the end of the article yet? It is a sample project with the walkthrough. Maybe you can see the differences of that verse the code you’ve been building.
My other suggestion is don’t copy and paste from blogs. Sometimes I’ve seen quotes and other characters get messed up from the webpage to the code. I always suggest re-typing.
Sorry I can’t be of more help,
Greg
ok… i will admit it… .I am a tard. All I had to do to get it to work was change the font color… it was working the whole time.. My bad. Great how to
Hey Greg,
I got some emails from this chain and figured I chime in.
I finally got back around to this. You know I do not hate wspbuilder but I want to understand the interals a little lower. I was able to figure out how deploy the ASP.net web part from scratch. I used your stuff as guidance.
http://www.k2distillery.com/2009/10/embed-and-deploy-user-control-in.html
http://www.k2distillery.com/2009/09/user-control-error-in-sharepoint.html
Hi Greg,
Thank you for a great article!! It helped me a lot.
Regards,
Annette
[...] http://greggalipeau.wordpress.com/2009/05/18/developing-sharepoint-webparts-using-user-controls-and-... [...]
Thank you for a great blog and of showing a good way of creating web parts.
Do you have any tips on how I easily can reuse this project for another project?
To manually have to rename all folder and changing the build script seems like a lot of steps.
Thank you for a great blog and of showing a good way of creating web parts.
Do you have any tips on how I easily can reuse this project for another project?
I am unsure if my last message was sent or not because of company site blocking. Anyway thank you for a great blog
Hi Greg,
Thanks for the very detailed instructions in this great article.
I am using VS2008 SP1 with WSPBuilder version 1.0.6
After building and deploying the Web part to WSS 3.0 based Site, when I try to add the DemoFeature webpart I am getting the following error :
“Unable to add selected Web part
DemoFeature: A Web Part or Web Form Control on this Page cannot be displayed or imported. The type could not be found or it is not registered as safe.”
Can you please help me to resolve it?
Thanks.
That error can be a couple things, but the first thing to check is whether your class got registered in the safe controls entry of your web.config. WSPBuilder should do this for you, but sometimes it gets messed up.
Also, sometimes I like to completely uninstall the solution (there is a command in WSPBuilder for that) and then re-build and re-deploy. If the issue is happening because it is trying to update the solution (which happens sometimes), that will fix it. If that doesn’t help, then there is something else wrong with your solution that is keeping it from deploying correctly. Unfortunately, there are lots of things that can go wrong in SharePoint solutions and I would have to look at the code to know exactly what it is.
AGH!!!! Wasted an hour messing with this. Thanks for passing this little tip along!
I ran into the same issue as you Dominic. I was able to fix it by removing the root namespace from the project properties. I then rebuilt, built the wsp and deployed and everything worked fine. There are a couple of issues with doing this though. When you create any new web part features, you will need to modify both the .webpart file & the .vb file for the webpart to add the proper name space in both files.
For example, if I have a Root name-space defined in the project properties, and I build and deploy my dll to the GAC, what happens if I use Reflector is that I see the name-space twice. For the project described above, it would have shown DemoProject.DemoProject as the name-space. Inside the webpart it would show DemoProject.DemoWebPart. That would cause it to fail when trying to add it to the page.
If I don’t have the Root name-space defined in the project properties, then Reflector will show DemoProject as the name-space, and the web part should work properly in the page you add it to, however, as I said above, when adding new webparts, you will need to manually add the namespace to the .webpart file and the .vb file.
BTW, I don’t know if it is just an issue with WSPBuilder and vb.net or if this also happens in a c# project.
Anyway, hope this helps. Good Luck.
Hello Greg,
Thanks for a great outline. I just had a question. When making a web application you have your own web.config file. I was wondering if anything you do in the web control web.config will not apply, to clarify, does it default to the SharePoint web.config.
I am basically coming from my own web app that the client now wants to convert to a web part. So i thought i would convert the web app to a user control.
Thanks
Yes, SharePoint uses the web.config file from the SharePoint Virtual Directory in IIS. This virtual directory is setup when you build your SharePoint site. The changes you make to the web.config file of your Visual Studio solution will not become part of SharePoint’s web.config. SharePoint does a lot of stuff to it’s own web.config file, so it doesn’t want you to overwrite that. But, there is something you can do programatically. SharePoint has an object in it’s api called spwebconfigmodification. It’s a little difficult to work with and isn’t perfect by any means. But, if you setup it up correctly you can make changes to “parts” of the SharePoint web.config through code. I would suggest looking into that object if you have lots of configuration changes you want to keep in sync. If you only have a few changes, just updating the SharePoint web.config manually always works (that’s usually my one exception to things I will do manually in SharePoint).
Michael R,
so this appears to be only an issue with using WSPBuilder + vb.net webparts? Been using this walkthrough as a baseline but using vb.net instead of c# and have been running into the same issues. Is this a bug with WSPBuilder + vb.net webparts?
Hello,
Great solution thanks, Im trying though to use it with web part properties…
[Personalizable(PersonalizationScope.Shared), WebBrowsable(true),
WebDisplayName("Help Wiki Name"),
WebDescription("The site of the help wiki")]
So I’m having to try to cast the control so that I can access the properies of the control…
PZCSharePointWebParts.PZCTipOfTheDay myControl = (PZCSharePointWebParts.PZCTipOfTheDay)Page.LoadControl(“~/_controltemplates/PZCSharePointTipOfTheDay.ascx”);
myControl.HelpWiki = HelpWiki;
this.Controls.Add(myControl);
But this results in..
Unable to cast object of type ‘ASP._controltemplates_pzcsharepointtipoftheday_ascx’ to type ‘PZCSharePointWebParts.PZCTipOfTheDay’.
Any ideas?
Hi Sam,
Something I like to do is pass parameters into the constructor of the user control. To do that just create an overloaded constructor on your usercontrol with the variables you want to pass in. Then, create a “new” loadcontrol method on your webpart (I usually build a webpartbase class to put this method). This new loadcontrol method should be able to take in an array of parameters. Then, you can just pass in the parameters to your usercontrol constructor in the correct order. Here is a good post from Sahil Malik on how to do this: http://dotnetslackers.com/ASP_NET/re-23165_LoadControl_a_UserControl_and_pass_in_Constructor_Parameters.aspx
Hope that helps,
Greg
Hi Greg,
I exactly follow your example and everything works fine. In the user control project DemoProjectUI, there is one user control. So far so good. However, when I create the second user control (another ascx file) in DemoProjectUI and make a second web part in DemoProject, this 2nd web part has error when adding it to the sharepoint web page. The error is: no such type found or it is not safe. Everything is OK to the first web part.
So, it seems that the DemoProjectUI project can only have one user control, not multiples. Have you tried to make several user controls in the same DemoProjectUI project?
Stock
Upsss. i get the error “Could not load type ‘ListFoldUI.FoldCtl’.”
Project: ListFold
UI: ListFoldUI
Control: FoldCtl
ascx went to CONTROLTEMPLATES, ListFoldUI went to GAC folder, and both are in the GAC, solllow all steps 3 times.
NO idea what is wrong, thanks for helping
Hi greg,
First thanks for the blog. I have setup the Webpart/User Control solutions successfully, however, I have binded my User Control (i.e Grid) to an ObjectDataSource which uses my business objects in Add_Code directory, and which in turns consumes my web services. However, when UserControl is used in my webpart, I get an error that basically says the Type specified in my ObjectDataSource (i.e. my business object class, which is compiled into User Control Project) can not be found. Have you or any one else tried to use a data access solution with the user control that gets loaded into the web part?? Thanks, any advice will greatly be appreciated.
Thanks,
Donald G.
Hi Greg,
really nice blog. I got most of my stuff working with your help but can you guide me on how I can get Images embedded in my web app project to display on the webpart and CSS styles to display on my webpart. I tried putting the images in the Images Folder under Templates in the WSPBuilder project. It gets deployed to the Images folder in the correct location on the server but somehow my images dont get displayed on the webpart.
Will be thankful for any guidance you can offer
Thanks
Aditi
Hi Aditi,
If you put an image in the Images folder under the Templates (i.e.: 12/Templates/Images), then you can reference it with the relative path of “/_layouts/images”.
So, for example, if I had an image called test.gif in that folder the source for the image html tag would be src=”/_layouts/images/test.gif”.
The reason this work is because SharePoint maps a virtual directory to the folder on the server.
Hope that helps,
Greg
Hi Greg,
I did the demo above and everything was working fine until i get to the part where my wepart is suppose to say ‘hello word’, i added the code in the .cs file for that label in the page load method but when i go share point my webpart gives me an error of (Could not load type ‘DemoProjectUI.DemoControl’).
Please assist if you can.
Kind Regards
Wesley
Michael R. thanks for the comment. I think this is a WSPBuilder issue with vb, I have not heard of the issue with c#. Anyway removing the namespace from the properties did the trick. I will just have to note the change need with new web parts. Thanks again.
Hi Wesley ,
You should check that the in a first line.
Hi Greg,
Very nice article. I’ve followed all these steps on two different sharepoint servers, the only issue I’m stuck at is whenever I add the webpart it gives me the following error :
DemoFeature:
“Could not load type DemoProjectUI.DemoControl”
I’ve cross checked that the deployment is properly done or not. All the files and assemblies are placed properly. Still I’m not able to view the web part. M I missing anything here. Any ideas ?
Thanks.
Vishwajit
I’ve tried specifying the ReceiverClass and ReceiverAssembly explicitly in the feature.xml file, but still it didn’t work for WebPart Feature.
ReceiverAssembly=”DemoProjectUI, Version=1.0.0.0, Culture=neutral, PublicKeyToken=056d85aa5d2098b4″
ReceiverClass=”DemoProjectUI.DemoControl”
Specifying these things for Features With Receivers worked !! Any idea why only web part feature has issues ?
Thanks,
Vishwajit
Vishwajit,
9 times out of 10 the reason for what you are seeing is because you don’t have a “fully qualified” assembly reference in the ascx control. By default .net does not fully qualify the assembly reference to the code behind. But, if you deploy the code behind to the GAC (as we did) you need to fully qualify (i.e.: fully assembly and token). This was in the directions, but it is easily missed.
So, I would first verify that your fully qualified reference to the code behind is right in the ascx. If that is correct, then it is probably something small that would be hard for me to debug through comments.
I hope it works!
Greg
Thanks Greg. It worked after reversing the sequence of declaration of Assembly and Control Elements. So, a “fully qualified” reference has been made available for the User Control.
-Vishwajit
What about SharePoint 2010?
Finally got it all working thanks to this post! Very nicely explained
Thanks!!
Paul
http://blackforestcoder.blogspot.com
@Qkn – if you’re using Visual Studio 2010 then you have this kind of support out-of-the-box. The whole build, test, deploy cycle is integrated in VS 2010. Nice!
Paul
http://blackforestcoder.blogspot.com
Thanks, this has been very helpful.
Can the Web Application project use Web Part Connection info?
Hi Greg,
I’m developing a webpart using ascx control, in the same manner, as you explained.
For now, i want the custom property values(available via modify shared webpart) of webpart, and use them in ascx control for some reason.
How can i do this?
Greg,
I added a aspx page to the web application project (DemoProjectUI) and set it to run as start up rpoject. I try to drop the acsx onto the aspx page to do rapid debugging but i keep getting parsing errors. Any ideas how to get this to work where i can work on the UI before pushing it to sharepoint??
regards,
I got it to work. I had to repush the UI Project to the GAC because once i added the webform the bits changed
Is there a way to simulate the _layouts behavior while developing the ascx? I have user controls with images, js files, and css referenced. Right now I change them back before I deploy them.