views:

60

answers:

1

I've started working on an existing, large ASP.NET project and I'd love to get some feedback on better ways to organize the project as a whole. This question was somewhat related but doesn't really have enough specific details to help an ASP.NET newbie like me.

The site isn't terribly complicated. There a number of themes that can be applied to give the user different styles & functionality and most of the common elements between themes are placed in UserControls.

The problem is that, when the project is compiled, the whole thing gets built into a single, massive DLL. That means that making changes across a number of UserControls and then rolling out those changes a few at time is incredibly difficult, if not impossible.

Unfortunately, we have to assume Visual Studio 2003 and .NET 1.1.

Like I said, I'm an ASP.NET newbie so be gentle.

  • Is there a way to do things differently so that maybe each UserControl is its own separate DLL?
  • Are there other things I could change to make it easier to push out changes in small batches?
+1  A: 

The way we do things at my current job is to compile multiple small DLL's. Controls typically have their own DLL separate from object logic so we can use objects in things like windows services. This does require recompilation of the entire project though.

We use cruisecontrol.net which has some neat features which builds the entire project in the background. You can set up projects so that when you chagne a DLL, cruise control will recompile every project that references the DLL. It's a very handy feature that takes the ownice away from any one person as the build master. You just wait for cruise control to build the project and you receive a success/failure email when it is done. Not sure if this is what you're looking for. I'll be glad to go back and forth with you if you need any more help !

good luck !!

Scott Vercuski
Let's start at a real basic level :) What do I have to do in VS to get each Control to have it's own DLL? That doesn't seem to be the default behavior for UserControls.
Mark Biek
You would create a new "Class Library" project and add a new user control to it .... the Class Library will compile to a separate DLL which you can add as a reference to your project
Scott Vercuski
So, in the end, I'd have a single solution which has as many projects as I need? Each project within the solution would compile to a DLL which I can then move around as I need to. Do I have it right?
Mark Biek
Yep ! absolutely .... we don't have our DLL's lumped under one solution .... all of ours are in their own solution ... but you can do it either way .... each project will compile into its own DLL and you can use the DLL anywhere. We take all of our DLL's and put them out in a UNC path (something like \\server01\productionlibrary) and all of our applications reference the UNC path, just our way of keeping things relatively sane. When we compile our DLL's we drop the release version into the UNC path for future use.
Scott Vercuski
Excellent to know. Thanks for the info!
Mark Biek
anytime ! good luck with your project !
Scott Vercuski
"...takes the *onus* away from any one person..."
StriplingWarrior