Hi there. I have a design question that i'd like someone to respond to, please. I'm concerned about maintenance and speed issues. I have a WINDOWS FORMS / ORACLE app that has the following requirements:
1. the application is a questionnaire. i'm using a tab control where each tab represents a different section in the questionnaire.
2. Each section has anywhere from 10-20 questions. Each "question" is made up of the following controls:
-label with the question
-combo box or list box with a list of possible answers (usually anywhere from 4 to 8 options)
- text box showing the user the value of the selected answer (that will be saved to the database.)
3. The questionnaire has over 15 sections.
I'm concerned about the amount of time it will take for the application to load. On the load event of the form, i need to:
- query the database and return all existing questionnaire records to allow the user to navigate through the recordset via VCR controls.
- load all combo boxes for each question in the questionnaire.
I also need to ensure that it's easy for the user to change the list of possible answers for any given question.
So, so far, i've designed the app as follows:
- Instead of saving each list of possible answers in the database, i'm saving it in separate XML files. These files will be copied to the local user desktops to (hopefully) speed up the process of loading everything.
I'm also thinking that this will make it easier for my end users to maintain the app as sometimes, they want to change the list of possible answers for any given question.
Should i modify the app so that all the xml lists are loaded by section? eg) when the user clicks on section a, section a's lists load?
should i just move all the xml into the oracle database as reference tables?
If anyone has suggestions on how to better design this app, I'd be interested in hearing what you have to say. I don't know that it's going to be slow... i've just started building...
But I want to catch any major design issues sooner than later!
Load two Q/A forms into memory, but don't show them yet.
Load a questioon/page of questions data asynchronously, then load into one of the forms & show it.
While the user is reviewing the question and answering it, load the next question/page_of_questions data asynchronously and load the data into the second form in the background, while it's still hidden.
When the user answers the question(s) on the first page, show the second page and hide the first page. Then, which the user is reading/answering the second page, flush the old data from the first page, load the data from the next question(s) and load into the first page.
Repeat loading the data for the page asynchronously and loading into the hidden page until you are done.
"Lisa, in this house, we obey the laws of thermodynamics!" - Homer Simpson
"I have my standards. They may be low, but I have them!" - Bette Middler
"It's a book about a Spanish guy named Manual. You should read it." - Dilbert