These tutorials assume you already have some experience programming, perhaps in
school. What we are going to concentrate on here are some of the things
you need to know in order to create real software for the real world.
Also, The tutorials are designed to be used with Microsoft Visual Studio .NET
2005/2008/2010. This code can be used in other development environments but all
the instructions will be for Microsoft Visual Studio .NET so you will be
on your own to make it work in other IDEs.
Where possible we will be working with GUIs. The only exception to this will be
NT services which by their nature normally have no user interface. Will will
piggy back an interface on them during their testing but we will learn more
about that technique later in that section.
Some of the tutorials will be designed for the beginner. Others will cover
specific techniques that I found useful. Typically, in school, while they teach
you a great deal they never really wrap the whole thing together like you would
do in a real commercial project.
Something to remember; the project is not actually done until the program is
deployed and installed on the end users computers. Deployment is something that
a lot of beginners don't even think about until the end of a project. This can
bite you when you find out that while all those third party DLLs that you used
to save time during development are now making deployment a nightmare. Some of
the problems are older DLL versions overwriting newer ones, newer DLLS that are
not backward compatible, and missing DLLs on end users computers that are on
your development computers that you didn't even know your were using.
Think about deployment first, not last. Before using a third party DLL ask your
self if you really need it. Maybe you only need one or two things from large
DLL. In this case, instead of linking to a DLL create a static library of your
own that has just the functions you actually need. The original purpose of DLLs
were to save memory by having DLLs that had common features used by multiple
programs. Times have changed. Computers don't have only 4 meg or ram anymore. It
really is not going to matter if your program is 2 meg instead of 300k.
Statically compile whereever you can and make your life easier when it comes to
deployment time.