The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

ASP.NET 2.0 for an Intranet

Since about 2001 I've been the sole developer for our company intranet. It's mostly classic ASP although I did "tinker" with ASP.NET 1-point-something and created a couple of simple-ish web applications.

At that time, all the tutorials covered creating standalone projects using Visual Studio 2003. File..New...Project, it created a Virtual Directory and all the files went into that. Creating several unrelated projects to run from / of the intranet appeared to be less that straightforward?

I am looking to break out of my classic ASP comfort zone and develop any new applications using ASP.NET 2.0 and port some existing pages to ASP.NET 2 also, like the restaurant menu; currently a single ASP page that reads an Excel spreadsheet provided by the catering folk and outputs an HTML table. The URL here is http://intranet/restmenu.asp; that is to say, it's NOT in its own folder but runs from root. This is the same for several of the simpler, single page "applications."

My question is, does ASP.NET 2.0 in Visual Studio 2005 or Visual Web Developer 2005 easily support developing single-page web apps that can be run from the root of an intranet without overwriting any project files (web.config?) each "project" thinks it has exclusive ownership of? I know Visual Studio 2005 is less "project" based than 2003 but what would be the best method for developing a number of unrelated (except they all run from the same intranet), single-page web applications that will all be run from the intranet's root (/)?

Should I abandon this and create each page in its own virtual directory instead? E.g. /RestMenu/RestMenu.aspx, /Holiday/booking.aspx, etc..?
Charley Farley
Monday, May 21, 2007
"My question is, does ASP.NET 2.0 in Visual Studio 2005 or Visual Web Developer 2005 easily support developing single-page web apps that can be run from the root of an intranet without overwriting any project files (web.config?) each "project" thinks it has exclusive ownership of?"

Yes. Just copy the aspx files and the code-behind files (whatever.aspx.cs or whatever.aspx.vb) wherever you need them. That said, the problem with single-page web apps is that you have no code reuse, and any configuration information (DB connection string, etc) needs to be put into the code of each page.

I'd suggest thinking from the beginning about what code and configuration you'll want to share between pages, and design your architecture around that. Bear in mind that much of the productivity gains in ASP.NET come from the reuse of user interface elements from one page to the next. If you build standalone single-page applications that don't share any code, you'll give up those gains.

At the very least, have a look at Master Pages before you design your intranet.
Monday, May 21, 2007

Thanks for taking the time to answer.

I'll certainly read up on Master Pages. Our existing intranet has a server-side include that brings in an AdRotator for cycling through important company messages, saved as banner ads.

I assume I can probably do something similar with Master Pages; specifically, use an AdRotator that appears on all pages built from the same Master Page?

I was recommended the Wrox book, ASP.NET 2.0 Website Programming: Problem-Design-Solution. Looking through the sample chapter on the Wrox web site it certainly looks like quite a good book.

Any other suggestions that won't teach Grandma to suck eggs (I've been developing in classic ASP since 1999, I think) but will at least cover the important bases?
Charley Farley
Tuesday, May 22, 2007
Download the free Web Developer Express videos from the MS website.

They are produced by, and they will go a long way toward helping you figure out the VS2005 workflow.
Tuesday, May 22, 2007
I think that before you do anything else (beyond research), you need to create a true inventory of your "web sites" and determine the rationale for setting them up that way.

clcr mentioned code reuse and I do admit that I've thrown together ASP pages in much the same fashion and regretted it later because I couldn't reuse the code or easily fix common bugs. But, you may still need to keep some sets of pages separate so that you can track and bill changes accordingly. For example, if human resources demands a change to your password guidelines, you don't necessary want to force that change on your facilities department users.

Since you're the sole developer maintaining the company intranet, I suspect the decision how to lay out your files is going to be tied to how you justify your salary and budget; i.e., do you just get a blanket amount each year and make do, or do you actually track time and bill each department requesting changes? (In the former case, do code reuse as much as possible, in the later, organize them as parallel projects.)

One option I'd like you to consider is configuring IIS and your server operating system to have virtual hosts and virtual addresses each with their own document root. You may have one folder that contains everything but the public only sees the relevant subfolder associated with the site they're visiting. (That also implies you don't want multiple applications to use the same files.)
Wednesday, May 23, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz