By settings I mean like my projects will have settings for user and application and I'd sonner not write these over and over for each project as I enter into it.

What I'm looking for here, so suggestions, like do I make a dll file I can use in future work or just copy and paste source files each time, if I use a dll do I have both classes in the same library, and things like that.

I took a class once where we wrote our own personal heading class for our assignments, it included information such as the developer name, the date the program was run, etc. Information included the following;

First name,
last name,
assignment, //could probably just use a creative naming convention and reflection for this part
Current date,
etc.

Apparenty it has to print everything in a useful format. I am not going to include the java code associated with it, it has my real name associated with it in multiple places, and the instructor made a lot of arbitrary and rediculous coding conventions that quite frankly made the code ugly. We had to code around these rediculous conventions lest we loose points. We even had to cite our textbook in our computer programs, and put the teachers name in the program, and only after we cite the teacher as the "main" useless coder could we put "modified by" and our name. So even though the teacher did absolutely nothing, and was more a hinderance to our getting our coding exercises done, we had to "pretend" that he was the main coder of our assignment. I didn't realize how much I despised him until my rant just now. sorry.

Anyway your name, the program name, and the current date seem the most logical fields for something like this, and if it is a console application you may need a seperate program for a GUI application, or you could just make a ToString for a special class, and print it to a text box or something. Your categorization idea seems like a good one, I may have some time later to port something to C#, with clearer coding conventions.

This is kinda what we did, not exactly what we did, but it should give you some ideas. As far as logging, and having all projects inherit, I am unsure of that. You could have them all inherit from heading I suppose, or make something completely different.

Probably one of the simplest ways is to design the class the way you want it, then put it into a new project. Now export that project as a template(File-Export Template). Any time you want to make a project that uses that class, that template should show up in the list when you start a new project.

Hi Suzie, It's nice that you decided to focus on a language, and it really saves time when you already got a lot done. But "base classes" are just the tip of the iceberg if you really want structured and reusable code.

Just a quick example of why, in my opnion, base classes are not enough: Imagine that you create an base class that adds DataBase and Log functions to all your WebPages. What happens when you need to create a Windows Form, WPF or Console app? Or even a WebService?

So, before the base class, you need to create your libraries or choose open source ones, and I'd even say: you need both.
Then, you can create base classes that implement those libs in a easy to use fashion way, so you need to write even less code into your custom projects.
And you can go even further by creating templates that already use your base class and alrady display the code that you usually customize in your projects.

I don't know the opnion of anybody else on this, but when using Open Source or 3rd party libs I usually create an class to make a "proxy interface" for it, so it's easier to update it if there's a certain revision that needs code ajustment or even if I decide to change the lib for another one later.

Given my opnion, this is basically the current set that I've been building and using for the last couple of years (and also a little things that I need to yet do):

Greetings Suzie999!
I think what you meant for the title of this thread was "Class Library (.dll) " :D

Yep, using a .dll is a good way to go, (although I'm not certain how to set your environment to automatically load it for all your projects; but I bet there IS a way ;) ). Now my curiosity is piqued and I will go home and investigate that after my shift. ;)

By the way DaveAmour, I'd also be interested in learning how to use NuGet in this manner. You think you might write and article and post it here (presuming you don't already have one posted on one of the other developer sites)?