Problem with buid times - big Web Site Project

3

3P

Hi.

I'm working on big solution. It's WebSite project with around 50 projects
in it.
Whenever I make any change in project referenced from WebSite and compile
that project
it takes about 20 minutes before I can use the website. I navigate to
localhost IIS address
and have to wait 20 minutes before it's usable. Looks like it is
recompiling everything.
I don't have to say that it makes our work almost impossible. If I make
mistake then that
20 minutes is lost. I edit the error and again have to wait 20 minutes.
That can't be normal
thing. What happens then?

My first thought was it's because of WebSite Project not WebApplication.
But one of coowerkers
said he converted it do WebApplication and it didn't change anything (I
didn't see it, so I don't
know if I shoud believe it). My other thougt was that we have to many
projects or some too complicate
dependencies between projects. Build is very very slow.

Do You have any ideas? Anyone with experience at working with so big
solutions in ASP.NET?

3P
 
J

Juan T. Llibre

re:
!> If I make mistake then that 20 minutes is lost

Usually, developers test their applications on a staging server.
Only when the application has been fully debugged should it be uploaded to the production server.

Also, are you setting <compilation debug="false"> in web.config on the production server ?

Doing that will bring down both compilation and execution times.



===============
 
M

Mr. Arnold

3P said:
Hi.

I'm working on big solution. It's WebSite project with around 50 projects
in it.
Whenever I make any change in project referenced from WebSite and compile
that project
it takes about 20 minutes before I can use the website. I navigate to
localhost IIS address
and have to wait 20 minutes before it's usable. Looks like it is
recompiling everything.
I don't have to say that it makes our work almost impossible. If I make
mistake then that
20 minutes is lost. I edit the error and again have to wait 20 minutes.
That can't be normal
thing. What happens then?

My first thought was it's because of WebSite Project not WebApplication.
But one of coowerkers
said he converted it do WebApplication and it didn't change anything (I
didn't see it, so I don't
know if I shoud believe it). My other thougt was that we have to many
projects or some too complicate
dependencies between projects. Build is very very slow.

Do You have any ideas? Anyone with experience at working with so big
solutions in ASP.NET?

1) Is this on your development machine?

2) Does this solution have more than one ASP.NET Web UI project and all
those projects are being complied too, and then they all have to be complied
each time you navigate to localhost to start the solution?

3) Does each ASP.NET UI solution has its own individual Web site within the
total solution?

You have one .sln that encompasses the total solution all projects. And if
you use that .sln for the total solution, then it's going to take some time
to build and get started, as it's encompassing everything.

If each ASP.NET UI is its own Web site, you can do what is called a
'project breakout'. That involves creating a .sln for each individual UI
Web site project that contains all other projects and/or components from the
total solution that's going to make it an infidel development project, so
that you can start the individual development solution, build it starting a
subset of the total project.

You're not building or staring the entire solution, but a segmented part is
built and started that makes start-up time much faster, if a individual.sln
file is used for each Web site project within the total solution.

When you build and deploy the solution to a test or production server, you
must use the totalproject.sln

If it's on your development machine, then you use the individualproject.sln,
to build and start it.

There are times in the development process that you must build using the
totalproject.sln on your machine, in order to make your individual.sln to
build and start the project properly.






__________ Information from ESET NOD32 Antivirus, version of virus signature database 4353 (20090820) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
 
3

3P

Dnia 21-08-2009 o 05:14:15 Mr. Arnold said:
1) Is this on your development machine?
Yes this is on my development machine.
2) Does this solution have more than one ASP.NET Web UI project and all
those projects are being complied too, and then they all have to be
complied each time you navigate to localhost to start the solution?
There is only one ASP.NET Web UI project in solution - Web Site Project.


All I do is change source in one of the referenced projects and then
navigate
to localhost/WebSite. Before I can click anything in website it's 20
minutes.
Every time I change anything in referenced project.com/mail/
 
3

3P

re:
!> If I make mistake then that 20 minutes is lost

Usually, developers test their applications on a staging server.
Only when the application has been fully debugged should it be uploaded
to the production server.
I'm working on my local machine. My thoughts are it's so slow because I use
Web Site Project and whenever I change sth in referenced project anything
get's
validated and recompiled in Web Site? Web Site Application doesn't validate
aspx/ascx when compiling right?

3P
 
J

Juan T. Llibre

You should look into using Web Deployment Projects...

With WDP, you have more flexible options for generating
compiled assemblies from a Web project, including these alternatives:

a. A single assembly for the entire Web site.
b. One assembly per content folder.
c. A single assembly for all UI components.
d. An assembly for each compiled file in the Web site.

In other words, you can change the build options so that when
you change a single file only that dll will need to be built/deployed.

You are currently building a single assmble which includes 50 projects.

I'd suggest building one assembly per content folder.
That way, when files in one project change only that project will need to be rebuilt.

Background info :
http://msdn.microsoft.com/en-us/library/aa479568.aspx

WDP download for VS 2008 :
http://www.microsoft.com/downloads/...E8-C73B-4BDD-BB1B-FE697256C459&displaylang=en





===============
 
3

3P

I find this hard to believe that there is only one ASP.NET Web UI
project in the solution, if there are 50 projects in the solution.
What's the other 49 projects about?
This is huge application for insurance company. There is one Web Site
Project. Others are dll libraries.
 
3

3P

You should look into using Web Deployment Projects...

With WDP, you have more flexible options for generating
compiled assemblies from a Web project, including these alternatives:

a. A single assembly for the entire Web site.
b. One assembly per content folder.
c. A single assembly for all UI components.
d. An assembly for each compiled file in the Web site.

In other words, you can change the build options so that when
you change a single file only that dll will need to be built/deployed.

You are currently building a single assmble which includes 50 projects.

I'd suggest building one assembly per content folder.
That way, when files in one project change only that project will need
to be rebuilt.

Background info :
http://msdn.microsoft.com/en-us/library/aa479568.aspx

WDP download for VS 2008 :
http://www.microsoft.com/downloads/...E8-C73B-4BDD-BB1B-FE697256C459&displaylang=en

But this all applies to Web Application project not Web Site Project
Project right?
I don't have any assemblies for Web Site Project. There are aspx, ascx
files in WebSite directory.
There are dll-s from other 50 projects that are copied bo Websites bin
subfolder during build.

Any good sources about converting WebSite Project to Web Site Application?
 
3

3P

Dnia 21-08-2009 o 22:24:09 Mr. Arnold said:
Well, if there are a ton of ASP.NET Web pages, then you are stuck on
your development machine.

Because each time you access the solution the first time after a build
on localhost, it's going to recompile all those pages to be used in
memory when you access the solution 'localhost'.

If it was Web Site Application would it also recompile all pages? Is there
any way to make it
compile only pages I navigate to? I use/work on about 5% of pages. I don't
care about others.
 
3

3P

Seems that I worked that out without changing to Web Site Application.

Two hotfixes (one is optimizeCompilation) + batch compilation set to false
in some folders and went from 20 to 2 minutes :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top