One large project VS Many small projects
-
Do you prefer one large project containing all the classes, or instead, split them into smaller projects?
depends... if the classes have to end in their own dll projects for instance, but still but a strong relation to the main GUI project, a prefer having a big solution with many projects inside. otherwise, i split logically.
TOXCCT >>> GEII power
[VisualCalc 3.0 updated ][Flags Beginner's Guide new! ]
-
Do you prefer one large project containing all the classes, or instead, split them into smaller projects?
I like to have a "solution" that contains multiple small static libraries that are linked into the application. each library contains related classes and functions.
Maximilien Lincourt Your Head A Splode - Strong Bad
-
Do you prefer one large project containing all the classes, or instead, split them into smaller projects?
I appreciate projects that are self-contained, re-useable, and small. But i hate, Hate, HATE the practice of splitting each loosely-dependent subsystem into its own project (and with .NET DLL). Put classes into different namespaces, put the files into different folders, whatever, but don't torment me with scores of projects just because you think your shitty custom-drawn listbox might someday be useful outside of your one app that needs tiny translucent unicorns in the margins.
---- Scripts i’ve known... CPhog 1.0.0.0 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.2 - printer-friendly forums Expand all 1.0 - Expand all messages In-place Delete 1.0 - AJAX-style post delete Syntax 0.1 - Syntax highlighting for code blocks in the forums
-
I appreciate projects that are self-contained, re-useable, and small. But i hate, Hate, HATE the practice of splitting each loosely-dependent subsystem into its own project (and with .NET DLL). Put classes into different namespaces, put the files into different folders, whatever, but don't torment me with scores of projects just because you think your shitty custom-drawn listbox might someday be useful outside of your one app that needs tiny translucent unicorns in the margins.
---- Scripts i’ve known... CPhog 1.0.0.0 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.2 - printer-friendly forums Expand all 1.0 - Expand all messages In-place Delete 1.0 - AJAX-style post delete Syntax 0.1 - Syntax highlighting for code blocks in the forums
I agree with you. I am currently working on a project, I constantly refactor the application code into re-useable classes, however, I soon found myself being too concentrate on supporting those re-usables rather than keep working on the main project. For instance, when I wrote a custom control for an application, that control takes an app object at the constructor and then initialize the control according to the settings provided from the app object, then, after a while I thought it would be useful to refactor the control as a standalone, reusable control, for the unknown future. But here comes the problem, the refactored control now have to either manage its own settings, or requires such settings to be given at the constructor, without the existence of any App object. Not to mention hundreds of other issues. Anyway, my point is, writing a class for a particular application is very different than writing a re-usable, self-contained class. The code size alone could be doubled, if not trippled.
-
I appreciate projects that are self-contained, re-useable, and small. But i hate, Hate, HATE the practice of splitting each loosely-dependent subsystem into its own project (and with .NET DLL). Put classes into different namespaces, put the files into different folders, whatever, but don't torment me with scores of projects just because you think your shitty custom-drawn listbox might someday be useful outside of your one app that needs tiny translucent unicorns in the margins.
---- Scripts i’ve known... CPhog 1.0.0.0 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.2 - printer-friendly forums Expand all 1.0 - Expand all messages In-place Delete 1.0 - AJAX-style post delete Syntax 0.1 - Syntax highlighting for code blocks in the forums
-
Do you prefer one large project containing all the classes, or instead, split them into smaller projects?
Many small ones, because all projects in one workspace slows VS down to a major crawl, and class view, file view and resource view are overcrowded.
Some of us walk the memory lane, others plummet into a rabbit hole
Tree in C# || Fold With Us! || sighist -
I agree with you. I am currently working on a project, I constantly refactor the application code into re-useable classes, however, I soon found myself being too concentrate on supporting those re-usables rather than keep working on the main project. For instance, when I wrote a custom control for an application, that control takes an app object at the constructor and then initialize the control according to the settings provided from the app object, then, after a while I thought it would be useful to refactor the control as a standalone, reusable control, for the unknown future. But here comes the problem, the refactored control now have to either manage its own settings, or requires such settings to be given at the constructor, without the existence of any App object. Not to mention hundreds of other issues. Anyway, my point is, writing a class for a particular application is very different than writing a re-usable, self-contained class. The code size alone could be doubled, if not trippled.
VAIO Blue wrote:
Anyway, my point is, writing a class for a particular application is very different than writing a re-usable, self-contained class. The code size alone could be doubled, if not trippled.
:omg: Not in my experience. Making things re-usable also makes the application a lot more resilient to requirement changes during development, and to enhancements during its lifetime. As to your original question, I put code into physical assemblies based on their logical connectivity, and use interfaces to abstract the implementation details. Marc Pensieve Some people believe what the bible says. Literally. At least [with Wikipedia] you have the chance to correct the wiki -- Jörgen Sigvardsson
-
I appreciate projects that are self-contained, re-useable, and small. But i hate, Hate, HATE the practice of splitting each loosely-dependent subsystem into its own project (and with .NET DLL). Put classes into different namespaces, put the files into different folders, whatever, but don't torment me with scores of projects just because you think your shitty custom-drawn listbox might someday be useful outside of your one app that needs tiny translucent unicorns in the margins.
---- Scripts i’ve known... CPhog 1.0.0.0 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.2 - printer-friendly forums Expand all 1.0 - Expand all messages In-place Delete 1.0 - AJAX-style post delete Syntax 0.1 - Syntax highlighting for code blocks in the forums
Shog9 wrote:
but don't torment me with scores of projects just because you think your sh**ty custom-drawn listbox might someday be useful
You'd hate the way I code. ;P That article on XTree that I just posted pulls from several different projects, essentially for only one or two things. Yeah, I actually did think about extracting just what I need for the article, and in one case I did toss out an entire project, but pretty much, if I'm going to maintain the article (yeah, right), I don't want to be maintaining a custom code base. For example, in my "public" folder (stuff in the public domain) there's about 16 projects. Marc Pensieve Some people believe what the bible says. Literally. At least [with Wikipedia] you have the chance to correct the wiki -- Jörgen Sigvardsson
-
Shog9 wrote:
but don't torment me with scores of projects just because you think your sh**ty custom-drawn listbox might someday be useful
You'd hate the way I code. ;P That article on XTree that I just posted pulls from several different projects, essentially for only one or two things. Yeah, I actually did think about extracting just what I need for the article, and in one case I did toss out an entire project, but pretty much, if I'm going to maintain the article (yeah, right), I don't want to be maintaining a custom code base. For example, in my "public" folder (stuff in the public domain) there's about 16 projects. Marc Pensieve Some people believe what the bible says. Literally. At least [with Wikipedia] you have the chance to correct the wiki -- Jörgen Sigvardsson
Marc Clifton wrote:
You'd hate the way I code.
Probably. And probably the reverse as well. :) I dislike clutter; generally, i'll strip out a lot of code prior to releasing something new - artifacts of the development process (unused accessors, internal sanity checks, timing code), testing UIs, unused utility methods. And if i'm using part of another project, i'll likely just pull that code out rather than add another dependency - in my experience, requirements change, and having some little one-off project depending on part of a larger one means either the changes will be slower to implement or something will break unexpectedly.
---- Scripts i’ve known... CPhog 1.0.0.0 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.2 - printer-friendly forums Expand all 1.0 - Expand all messages In-place Delete 1.0 - AJAX-style post delete Syntax 0.1 - Syntax highlighting for code blocks in the forums
-
I appreciate projects that are self-contained, re-useable, and small. But i hate, Hate, HATE the practice of splitting each loosely-dependent subsystem into its own project (and with .NET DLL). Put classes into different namespaces, put the files into different folders, whatever, but don't torment me with scores of projects just because you think your shitty custom-drawn listbox might someday be useful outside of your one app that needs tiny translucent unicorns in the margins.
---- Scripts i’ve known... CPhog 1.0.0.0 - make CP better. Forum Bookmark 0.2.5 - bookmark forum posts on Pensieve Print forum 0.1.2 - printer-friendly forums Expand all 1.0 - Expand all messages In-place Delete 1.0 - AJAX-style post delete Syntax 0.1 - Syntax highlighting for code blocks in the forums
Shog9 wrote:
don't torment me with scores of projects just because you think your sh**ty custom-drawn listbox might someday be useful outside of your one app that needs tiny translucent unicorns in the margins.
Hey, I have been looking for one of those contols for ages!;P