Quote:
writing all the logic & data access codes in a class,
I hope you don't think of
one class, rather use different classes for each concept in business logic and data access. As for data access, you may look at the
repository pattern.
When you create your business logic, just think of later replacing your Windows Forms GUI by e.g. a web interface - can you still use those classes, or do you need to re-write them? That idea will help you do it correctly.
Keep your classes small, and keep all the functions small. One class for one concept, and one function does only one thing within that class. Such small items can be tested. Keep dependencies low - you may need to "mock" some objects.