0

I need to add "Application Feedback" functionality to all of our existing web applications (ASP.NET). The purpose of this is for the user to be able to click "Give Feedback" to give feedback regarding the app they're using. Say they want to submit a suggestion for an enhancement, report a "bug", etc. They'll click this "link".

So, with these requirements in mind, I think the easiest, most simplest solution, considering that this functionality will have to be added to all existing web apps, will be to create a separate application, called something like "AppFeedback". This will be a single page, ASP.NET app. The hyperlink that will be tied to "Give Feedback" will be the URL for this new AppFeedback app. The hyperlink will open in a new window (a small, resized popup). The URL will contain query string parameters for appName and userId. So, something like http://server/AppFeedback?appName=myAppName&userId=mike. When the user is on this popup window, they will provide feedback in the feedback text box and click Submit. Clicking Submit will save the feedback data to a common Feedback database - it will insert the Feedback comment, the app's name (from the query string), and the current user Id.

QUESTION: Do you recommend a different approach? I'm not entirely confident in this approach as I've never done something like this before. Is there anything about this approach that concerns you? This is not an opinion based question, I'm soliciting feedback as to whether this approach is decent, given common best practices.

Mike Marks
  • 10,017
  • 17
  • 69
  • 128
  • Why are there so many apps? Are they all very different, or do they have a lot in common, i.e., some shared `.dll` package they all use, or a common master page, etc? – mellamokb Nov 26 '13 at 15:37
  • I work for a huge oil and gas company and their portfolio consists of MANY, MANY apps. Yes, it's safe to say that they're pretty different. – Mike Marks Nov 26 '13 at 15:41

1 Answers1

1

This seems like a reasonable approach, given the information you've provided.

Something you may want to consider: if you are applying this to 300+ apps, you probably don't want to copy/paste a feedback url to header/master pages for 300+ apps. One simple way to handle that is to build a custom UserControl or server Control to render the feedback link in your AppFeedback project, so you have a single place to apply the update.

mellamokb
  • 56,094
  • 12
  • 110
  • 136
  • For a user control, is the idea that I "drag/drop" the user control to the solution? I would still need to register the control at the top of the page, right? So a user control doesn't eliminate the need to have to go to the page and have to type something. Or, am I understanding incorrectly? – Mike Marks Nov 26 '13 at 16:21
  • Every app's master template page will need to be modified to include the feedback control. If you use a full-blown server control rather than UserControl, I think you can register it via web.config instead. Since every app is different, you obviously have to specify where the feedback link goes uniquely to each app, so yes you will have to touch every master page. – mellamokb Nov 26 '13 at 16:30
  • If your apps don't have a master template page... that could be really, really challenging. You could try something like dynamically adding the control to the top/bottom of the page in `global.asax`, where you can specify code to run with every single page request. You really don't want to go down the path of dropping a UserControl on every single page individually on every single app, as that will be an incredible maintenance nightmare. – mellamokb Nov 26 '13 at 16:31