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.

Application Distribution

Hi Guys,

Im sucrious as to which is the best way to distribute my software on the users computer.

I can compile the program into 1 single exe file. and no separate dll files.

or I can have everything spread out in the applications main folder.

which is the best way to handle this?

single file exe?
mutiple files in the application folder.

do user care at all ?  which looks more profesional?  id think more files show on in the folder the better it looks.

my main application is about 2.7megs in size..    if i put all the extra dlls in it makes it like 3megs.

which is not a big difference.. but i wanted to know if its a good idea to have it all in one file?
Sunday, October 15, 2006
Do you need to share any of the code between programs?

Is any of the code in a separate distribution (external libraries, for example)?

Do you need to revision some code at a different rate than others?

Do you need to load code dynamically as you run?

Are you building COM objects?

If any of the above are true, use a DLL. Otherwise, just stick to the single EXE. Users don't care either way.
Chris Tavares Send private email
Monday, October 16, 2006
yes its using some freeware external dll files.. for example for ftp uploading..  and html editing.

Monday, October 16, 2006
Bubdle them but put them in the app directory then they won't clash with any different versions from other apps.
Also under many FOS licences you are required to dynamic link libraries so the user has the option of changing them.
Martin Send private email
Monday, October 16, 2006
I could more or less figure out what sucrious meant from the word root for sweetness, but bubdle has me stymied.

Anyway, my preference is to use as few DLLs as possible, but if they are external FOSS then you have to.
Monday, October 16, 2006
what is FOSS?

im useing    edtFTPnet.dll
which is a free version of a paid ftp client library.. works great.

and  mshtml.dll

now i have them all compiled into my main exe file.. using an obfuscation / code protection software that can also income additional files into the exe file.

is this agains law?
Monday, October 16, 2006
I was stuck on sucrious too.  bubdle must be bundle.

Monday, October 16, 2006
FOSS = Free Open Source Software
Tuesday, October 17, 2006
> is this agains law?

Yes. That library is licensed under the LGPL.  You should go read the license but to summarize the important clause: You must deliver an unlinked version of your work so if the user wants to replace the library with a newer version or customized version they can.

I believe that dynamicly linked libraries satisify this clause.


Section 6 covers distribution of works that use the library.

Tuesday, October 17, 2006
how would anyone know if the library is compiled into 1 exe?
Tuesday, October 17, 2006
It's a moral imperative, not something enforced.  But if you like to use free stuff the least you can do is abide by the terms.
Slim Simi
Tuesday, October 17, 2006
Its not that I'm trying to be a rebel..

I just dont want it to look like my commercial program is using free bits and pieces.. 

:)  just does not look profesional :)

thats all im trying to conseal.
Tuesday, October 17, 2006
> I just dont want it to look like my commercial program is using free bits and pieces..

Then pay them for the professional version. I'm sure it has fewer restrictions.

> :)  just does not look profesional :)

Violating other people's Copyright is also not professional.

Don't violate other people's copyright unless you want them to violate yours.
gpl enforcer
Wednesday, October 18, 2006
"I just dont want it to look like my commercial program is using free bits and pieces."

I'm not sure if the LGPL allows it or not, but I'm under the impression that you can read the source code, and then implement your version of it.

This is actually a common tactic when a developer only needs two or three algorithms from a sizeable library - for example, you may only need trigonometric functions from a comprehensive, general purpose mathematics library.

In this example, if you only needed code to FTP stuff from a site and never to a site, then it's reasonable to read the source code to see how it's done and then code just the download function.

Tip: don't cut and paste. Read the code line by line, figure out how it works, and then write it using your variables, comments and formatting.
Wednesday, October 18, 2006

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

Other recent topics Other recent topics
Powered by FogBugz