473,396 Members | 2,098 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Large solution

HI,

I am developing a application in vb.net. I split down my functionality
into several separate DLL's. The solution is becoming very large, nearly 100
projects, each project a dll's. There is one entry exe.

It is very slow to load and compile now. All my references are project
references, is there a standard way to split the solution. In the past I
have had versioning problems if a compile groups of projects individually.

Tim
Jul 21 '05 #1
4 1661
100 projects?

Surely you aren't actually _working_ on 100 projects at a time?

I would suggest you get NAnt (http://nant.sourceforge.net/) and set it up to
perform your recompilations for you.
Then when you are actually working in the code, use a solution file that
contains a small set of related projects, so that load time is reasonable.

NAnt is a build tool. Let it do your compiles for you.

I'm not going to criticize your structure, because I don't know what you are
trying to accomplish. However, I would also suggest that you want to create
assemblies according to the principle of cohesion. That is, you group
together classes that logically tie together in the same layer, so that you
can (a) allocate the work, (b) seperate the concerns, and (c) make it easy
to find and change business rules. Even in very large systems, it is
unusual to have 100 projects. That said, check out NAnt.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Tim Marsden" <TM@UK.COM> wrote in message
news:%2********************@tk2msftngp13.phx.gbl.. .
HI,

I am developing a application in vb.net. I split down my functionality
into several separate DLL's. The solution is becoming very large, nearly 100 projects, each project a dll's. There is one entry exe.

It is very slow to load and compile now. All my references are project
references, is there a standard way to split the solution. In the past I
have had versioning problems if a compile groups of projects individually.

Tim

Jul 21 '05 #2
Thanks for the reply.

Please advise, is it better to have several dll's each with a small amount
of function or a bigger dll with more.
Does this effect the load time of objects at runtime if they are part of a
large dll.

Thanks
Tim

"Nick Malik [Microsoft]" <ni*******@hotmail.nospam.com> wrote in message
news:4q********************@comcast.com...
100 projects?

Surely you aren't actually _working_ on 100 projects at a time?

I would suggest you get NAnt (http://nant.sourceforge.net/) and set it up
to
perform your recompilations for you.
Then when you are actually working in the code, use a solution file that
contains a small set of related projects, so that load time is reasonable.

NAnt is a build tool. Let it do your compiles for you.

I'm not going to criticize your structure, because I don't know what you
are
trying to accomplish. However, I would also suggest that you want to
create
assemblies according to the principle of cohesion. That is, you group
together classes that logically tie together in the same layer, so that
you
can (a) allocate the work, (b) seperate the concerns, and (c) make it easy
to find and change business rules. Even in very large systems, it is
unusual to have 100 projects. That said, check out NAnt.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Tim Marsden" <TM@UK.COM> wrote in message
news:%2********************@tk2msftngp13.phx.gbl.. .
HI,

I am developing a application in vb.net. I split down my functionality
into several separate DLL's. The solution is becoming very large, nearly

100
projects, each project a dll's. There is one entry exe.

It is very slow to load and compile now. All my references are project
references, is there a standard way to split the solution. In the past I
have had versioning problems if a compile groups of projects
individually.

Tim


Jul 21 '05 #3
The load time of objects at runtime is slightly improved if they are part of
a larger DLL, because the cost to load the dll is performed once for every
object in it, often very close to when the application first starts up.
However, for the vast majority of applications, load time is not the issue.
Humans can't percieve the distinction.

The biggest costs associated with your application will be associated with
the cost of maintaining it. The less expensive it is to maintain, the
better.
That is why so many folks try to "guess" what is needed in the future and
put in bits of code to support those future needs. Some things are useful
(like using the configuration file for all of your deployment settings and
web service locations). Others are dubious at best, but it is definitely a
driving force in software development.

With all due respect, I would personally find it difficult to maintain an
application with 100 assemblies.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Tim Marsden" <TM@UK.COM> wrote in message
news:OR****************@TK2MSFTNGP14.phx.gbl...
Thanks for the reply.

Please advise, is it better to have several dll's each with a small amount
of function or a bigger dll with more.
Does this effect the load time of objects at runtime if they are part of a
large dll.

Thanks
Tim

"Nick Malik [Microsoft]" <ni*******@hotmail.nospam.com> wrote in message
news:4q********************@comcast.com...
100 projects?

Surely you aren't actually _working_ on 100 projects at a time?

I would suggest you get NAnt (http://nant.sourceforge.net/) and set it up to
perform your recompilations for you.
Then when you are actually working in the code, use a solution file that
contains a small set of related projects, so that load time is reasonable.
NAnt is a build tool. Let it do your compiles for you.

I'm not going to criticize your structure, because I don't know what you
are
trying to accomplish. However, I would also suggest that you want to
create
assemblies according to the principle of cohesion. That is, you group
together classes that logically tie together in the same layer, so that
you
can (a) allocate the work, (b) seperate the concerns, and (c) make it easy to find and change business rules. Even in very large systems, it is
unusual to have 100 projects. That said, check out NAnt.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Tim Marsden" <TM@UK.COM> wrote in message
news:%2********************@tk2msftngp13.phx.gbl.. .
HI,

I am developing a application in vb.net. I split down my functionality into several separate DLL's. The solution is becoming very large, nearly
100
projects, each project a dll's. There is one entry exe.

It is very slow to load and compile now. All my references are project
references, is there a standard way to split the solution. In the past

I have had versioning problems if a compile groups of projects
individually.

Tim



Jul 21 '05 #4
Many Thanks

I will rethink the solution. Is it better to use project references, or
reference the built assembly. When using assembly references I get into
trouble with version numbers etc.

Regards Tim

"Nick Malik [Microsoft]" <ni*******@hotmail.nospam.com> wrote in message
news:2J********************@comcast.com...
The load time of objects at runtime is slightly improved if they are part
of
a larger DLL, because the cost to load the dll is performed once for every
object in it, often very close to when the application first starts up.
However, for the vast majority of applications, load time is not the
issue.
Humans can't percieve the distinction.

The biggest costs associated with your application will be associated with
the cost of maintaining it. The less expensive it is to maintain, the
better.
That is why so many folks try to "guess" what is needed in the future and
put in bits of code to support those future needs. Some things are useful
(like using the configuration file for all of your deployment settings and
web service locations). Others are dubious at best, but it is definitely
a
driving force in software development.

With all due respect, I would personally find it difficult to maintain an
application with 100 assemblies.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Tim Marsden" <TM@UK.COM> wrote in message
news:OR****************@TK2MSFTNGP14.phx.gbl...
Thanks for the reply.

Please advise, is it better to have several dll's each with a small
amount
of function or a bigger dll with more.
Does this effect the load time of objects at runtime if they are part of
a
large dll.

Thanks
Tim

"Nick Malik [Microsoft]" <ni*******@hotmail.nospam.com> wrote in message
news:4q********************@comcast.com...
> 100 projects?
>
> Surely you aren't actually _working_ on 100 projects at a time?
>
> I would suggest you get NAnt (http://nant.sourceforge.net/) and set it up > to
> perform your recompilations for you.
> Then when you are actually working in the code, use a solution file
> that
> contains a small set of related projects, so that load time is reasonable. >
> NAnt is a build tool. Let it do your compiles for you.
>
> I'm not going to criticize your structure, because I don't know what
> you
> are
> trying to accomplish. However, I would also suggest that you want to
> create
> assemblies according to the principle of cohesion. That is, you group
> together classes that logically tie together in the same layer, so that
> you
> can (a) allocate the work, (b) seperate the concerns, and (c) make it easy > to find and change business rules. Even in very large systems, it is
> unusual to have 100 projects. That said, check out NAnt.
>
> --
> --- Nick Malik [Microsoft]
> MCSD, CFPS, Certified Scrummaster
> http://blogs.msdn.com/nickmalik
>
> Disclaimer: Opinions expressed in this forum are my own, and not
> representative of my employer.
> I do not answer questions on behalf of my employer. I'm just a
> programmer helping programmers.
> --
> "Tim Marsden" <TM@UK.COM> wrote in message
> news:%2********************@tk2msftngp13.phx.gbl.. .
>> HI,
>>
>> I am developing a application in vb.net. I split down my functionality >> into several separate DLL's. The solution is becoming very large, nearly > 100
>> projects, each project a dll's. There is one entry exe.
>>
>> It is very slow to load and compile now. All my references are project
>> references, is there a standard way to split the solution. In the
>> past I >> have had versioning problems if a compile groups of projects
>> individually.
>>
>> Tim
>>
>>
>
>



Jul 21 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: steve | last post by:
I am having huge problems migrating large db’s from one server to another. I use phpmyadmin to dump the data into a file, and then migrate it to my production server. Then I try to use this:...
6
by: Greg | last post by:
I am working on a project that will have about 500,000 records in an XML document. This document will need to be queried with XPath, and records will need to be updated. I was thinking about...
8
by: Adam Clauss | last post by:
I have a folder containing many subfolders (and subfolders and....) all containing various .cs files. Is there any "easy" way to get them all added to the solution. Preferable would be that the...
12
by: Sharon | last post by:
I’m wrote a small DLL that used the FreeImage.DLL (that can be found at http://www.codeproject.com/bitmap/graphicsuite.asp). I also wrote a small console application in C++ (unmanaged) that uses...
2
by: -DG- | last post by:
Does anyone have preferences for how to set up directory structures in larger multi-project C# 'solutions'? (Hate that ad-speak cliche). I realize that this is arbitrary, but it seems that...
5
by: Tim Marsden | last post by:
HI, I am developing a application in vb.net. I split down my functionality into several separate DLL's. The solution is becoming very large, nearly 100 projects, each project a dll's. There is...
8
by: Axter | last post by:
I normally use a program call Doxygen to document my source code.(http://www.stack.nl/~dimitri/doxygen) This method works great for small and medium size projects, and you can get good...
10
by: Peter Duniho | last post by:
This is kind of a question about C# and kind of one about the framework. Hopefully, there's an answer in there somewhere. :) I'm curious about the status of 32-bit vs 64-bit in C# and the...
1
by: =?Utf-8?B?RG91Zw==?= | last post by:
We have a very large code base and use the partitioned solution model for development and deployment. The problem is that in .NET 2005 the setup projects cause severe performance problems when...
2
by: =?Utf-8?B?c2lwcHl1Y29ubg==?= | last post by:
I was wonder if there is any protocol or suggestions on how to setup unit testing projects in large solution??? If you have a large solution of say 50 projects and add a project for every unit...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.