Inspired by Scott Hanselman
's recent post called Measuring Satisfaction
(about the cool 'Send a smile' feature that shipped alongside Office 2007 Beta) I've decided I want one
. Yup, I've been working on a windows application (WPF and ClickOnce, naturally) for a while now and it would seem a missed opportunity not to include this.
I also love the idea of optionally
sending a screen shot to help understand the feedback. Very neat. I want that too
So, how is this going to shape out:
1. Rather than running as a seperate process in the tray we're going to be part of the main application by adding an extra 'Feedback' menu with an 'I like...' and an 'I dislike...' options. (Disadvantage:
since we're in process the menu might be inaccessible if the UI is blocked by a dialog - but we have limited time and this is the quickest route to market. Also, this isn't Office and I think the notify icon route would be just too invasive).
2. We'll use WCF to send the feedback data (and screenshot image) back to a central server. We'll use MTOM encoding since we're going to be sending a reasonable amount of binary data.
3. The WCF host on the server will write the values to a SQL Server 2005 database and store the screen grab in a varbinary column.
4. We'll need a web application to access the feedback data (rudimentary, to start with). We'll use the ReportViewer control to allow us to quickly create a Report that can be viewed in ASP.NET. Note that we'll use a .rdlc report (the c stands for client) so NO Reporting Services server will be required
. It will all happen thanks to the report viewer control and it will all happen on the server, no browser plugins required.
5. We'll also need to provide access to the screen grabs in the database and we'll create a handler to support this.
Stay tuned over the next few days as we look at the interesting pieces of the implementation.