title: C# and Office integration
body: <p>I need advice on which path to take. </p>
  
  <p>I'm developing a C# application and I'd like to have some integration with the Office suite. </p>
  
  <p>The solution is going to be used for students / teachers in the final semesters of Law School, that serve low income families - our customers. </p>
  
  <p>Almost all the interaction between our department and our customers are done by our interns - the Law School students. </p>
  
  <h2>How it currently works</h2>
  
  <ol>
  <li>Our receptionist adds the customer's basic data to the system and schedules a visit.  </li>
  <li>Before the visit, our intern queries the internal system to see the customer data. The data may include records from previous visits.   </li>
  <li>The student meets the customer, trying to gather all the information needed to solve the customers' needs.   </li>
  <li>The intern then has to report the interaction with the customer to the supervisor - the teacher. To do that, the intern opens up Word and types some basic info (like its name and its teacher) along with info about the interaction.  </li>
  <li>The intern prints the report and takes it to be approved by his teacher.  </li>
  <li>Here, the teacher makes notes/evaluates the printed report, and three things can happen:<br>
  6.1 - the report is correct and has all the info needed:  the teacher approves it as it is;<br>
  6.2 - the report is somewhat incorrect: the teacher tells the student what to change and the next version is implicitly approved;<br>
  6.3 - the report is incorrect: the teacher tells  the students what needs to be changed, and the next version needs to be explicitly approved.  He makes the changes and goes back to step 5.   </li>
  <li>When the report is approved, the intern copies the text from the Office document and pastes/add it to our internal Access system.   </li>
  <li>The teacher physically store all the reports' versions. These reports are used to later evaluate the students.  </li>
  </ol>
  
  <h2>Problems</h2>
  
  <p>Sometimes, after having the report approved, the student does not add the approved report to our internal system. All the interaction with the client is basically lost. </p>
  
  <p>The other one is the extreme use of paper. Every reported is printed. Usually more than twice. </p>
  
  <h2>My proposed solution</h2>
  
  <p>We use Office 2010 internally. </p>
  
  <p>From our internal system, when seeing the customer's history, there'd a button that would launch Word, side by side with the internal application. </p>
  
  <p>This Word would have "Save / Save As" buttons remove. Along with lots of controls that the user wouldn't need. </p>
  
  <p>This Word instance would have a custom "Save" button that saves the report in a specific network area and sends it back to our system, closing that Word instance.</p>
  
  <p>This report would show up to the teacher in "unapproved report queue". The teacher then opens the report and analyzes it. Again, a custom Word instance should show, with Word's revision control enabled. The teacher would make the changes and save it back to our system with one of three status (approved; automatically approve next version; reevaluate next version). </p>
  
  <p>Optionally, the teacher could then evaluate the report right there. I imagine something like a custom ribbon, where he would enter the appropriate values (things like attention to detail, proper spelling, proper forwarding, etc). Both the evaluation and the version would be send back to the system and the student would see that. </p>
  
  <p>Once again, the student will see on his part of the system that the report was evaluated and could see the teacher's notes, corrections and evaluation in order to prepare his next version.  </p>
  
  <h2>Shoot me down</h2>
  
  <p>OK... Am I flying too high here? Or is it doable? Can you tell me what path would you take?</p>
  
  <p>Do you imagine it's simple? Or hard? How many hours you guys think that would take? </p>
  
  <p>I need the solutions to be free. I don't have VS Professional, nor the approval to use paid Frameworks / tools. </p>
  
  <p>I was thinking of using NetOffice (<a href="http://netoffice.codeplex.com/" rel="nofollow">http://netoffice.codeplex.com/</a>) to do that. Or do you reckon it would be easier to use VBA?</p>
  
  <p>Am I making too many questions?</p>