Hello All.

As someone who has spent years doing procedural programming (C, asm), instead of OOP, I am struggling with how to design/implement my data. C# seems (at least to me) to want to tie the data to a form. I "think" I need something a little more global in scope.

I'm trying to modify an e-mail program written in C# I downloaded. Part of the problem is that I think it was written under an older version of Visual Studio (I am using Studio 2005 for 2.0 frameworks). This program, even when "converted" by VS2005 does not have a program.cs file, but instead main() is inside the form definition file. This program does EVERYTHING inside the same form. It displays the pop3 server name and allows you to enter the user name and password. There are connect/disconnect buttons, a retrieve button, and a large text box where messages can be listed. While the example is good about showing POP3 access, it is a poorly designed user program.

For example, I want to put the setup info (pop3 server name, password, etc) into a second form (reachable via an 'options' button or something). However, this information would need to be accessible within the main form as it accesses the server and pulls down the e-mails.

Sorry to be so long winded, but now for my question. How should I implement this from a data implementation perspective? Do I have a separate code file where I create a class with the setup info, then access that info from the options form, or the mail-retrieval-form? Is this a case for using a singleton for that information?

Anyone have any suggestions for good programming books? I have the Microsoft "Training Kit for MCTS 70-526 Windows Development", and the "Visual C# 2005: The Language". Both of those include good learning examples of features, but no large scope of application development, particularly of data implementation.

And that's the part I'm struggling with. ANY advice suggestions are greatly appreciated.

- ron