title: Any tools, libraries or suggestions to simplify dynamic question functionality?
body: <p>I am working on an ASP.NET project that is relatively simple except for one requirement which requires custom questionnaires be attached to specific types of tasks.  These questionnaires need to be customized regularly and no development, within the app itself, should be needed add questionnaires. The questionnaires currently do not require an editing tool and can be done by uploading a template, changing something in a DB, whatever.  They can be stored in any format and the resulting output needs to be captured to be edited or viewed later.</p>
  
  <p>The types of questions in the questionnaire could be:</p>
  
  <ol>
  <li>Selections (select one from a list)</li>
  <li>Input (text, integers, dates, etc)</li>
  <li>Yes/No</li>
  </ol>
  
  <p>The ability to display questions based on answers from other questions. For example if they answer yes to question X, display question Y else display question Z.  Need to be able to apply data validation such as required fields, ranges, etc on questions (could all be probably capture by basic regex).</p>
  
  <p>The simplest break down would be:</p>
  
  <ol>
  <li>Create a new event.</li>
  <li>Based on the type of event display a specific questionnaire.</li>
  <li>Questionnaires can change over time but they can be considered as new version each time and data will always be related to a specific version and not need to be migrated to updated versions.</li>
  <li>The questionnaire output (data elements and a final calculated value) must be captured.</li>
  <li>XML output (or any other format) of data elements entered.</li>
  </ol>
  
  <p>The optimal (unicorn) scenario would be to have a basic template in XML or something that a user can learn to create easily and it would be stored and versioned in a DB.  When a user makes a new event, the app would fetch the appropriate template which would display the questionnaire to the user.  The user would fill it out and the output would be posted as some type of output (again XML would be nice but not required).  That output would be attached to the event.  Done.</p>
  
  <p>Are there any .NET compatible tools/libraries that I could leverage to accomplish this?  InfoPath seems like a tool that might be of use but I have almost zero experience with it so I am not sure about its constraints / implementation and if it is just overkill.  The solution needs to be contained within the ASP.NET application.  An external editor tool for creating templates would be ok but the templates must be viewable and editable on the web with no constraints to the user.</p>
  
  <p>Can anyone provide examples of this being done or hints on how you might have tackled this?
  Since the application is relatively easy to create other than this one feature, I would rather not spend 80% of my time trying to implement the custom questionnaire functionality and spend more time on the problem the application is trying to solve.</p>
  
  <p>Tech available: ASP.NET, Silverlight, SQL Server</p>