title: WPF or ASP.NET MVC for UI for an expert business application?
body: <p>I know this question was asked before, but almost 2 years have passed and the business requirements are a little different.</p>
  
  <p>We are in the beginning of developing a mid-sized application and are divided which technology to use for the front end, <strong>WPF or ASP.Net MVC 3</strong>?
   We are not an IT-company, but a business company with an IT-department who can outsource programming tasks, while the business core shall remain within the company. I did spend a lot time searching the internet for the answer, and I partially did succeed, but since the question is so important, I thought I ask here as well.
  Of course, before someone can answer the question I need to specify the requirements and environment for the application at stake:</p>
  
  <p><strong>Infrastructure:</strong>
  We have a pure Windows environment. Each user will have either Windows XP SP3 (currently) or a future version of Windows (if we skip from XP to Windows 8 remains to be seen, but let us assume that the user will use Windows 7 next) installed.
  We are aiming for a service oriented architecture, meaning we only want to run/show on the client machine what is really needed. This is especially important since the databases are far away from the clients (USA/Europe). We plan on using WCF for cross machine communication between user system (brower or WPF), application and database server.</p>
  
  <p>We expect the main user group to be around 30+, but since we are a growing company there should be no issue scaling up to 100 users. The users are spread over three main locations over the world, while we want the option to support smaller locations as well. All those locations are connected to the same intranet.</p>
  
  <p><strong>UI Experience</strong>
  The new system is supposed to replace existing systems which are desktop applications (Winform). The number of screens are likely to be around 100+ with many labels, comboboxes, graphs. I like to call it an expert system b/c we expect the user to spend multiple hours a day with it, the user is expected to do interact fast with it (many clicks, multiple dialogs pop-up and close etc.) and the application will contain a lot of business logic (mostly mathematically).
  Some limited interaction with Excel is required. At this stage only importing formatted data out of .xlsx file into the application in order to work with the data. This we expect to happen often. 
  Copy&amp;Paste from Excel or other applications into our new application is a requirement (no pictures, just text).
  We will use a vendor control library for a richer UI experience.
  The users are used to desktop applications for their daily work (current systems/Excel etc.).
  Tablet or smartphone support is not a requirement.</p>
  
  <p><strong>Deployment</strong>
  If we were to use a WPF application we would likely either deploy it in CITRIX or use Click-Once.</p>
  
  <p>Here are arguments of the two opposing factions:</p>
  
  <p><strong>Pro Web</strong>:
  Deployment is much easier. All the requirements can be done in a web application directly, and if not we use ActiveX or make a separate desktop application for the missing parts. Also, the IT world is going to stop doing pure desktop applications and everything is moving to HTML 5 (Windows 8).</p>
  
  <p><strong>Pro WPF:</strong>
  Web applications use many different technologies which makes it more difficult and costly to develop and maintain (HTML, ASP.NET, CSS, JavaScript, JQuery, AJAX). There are major deficiencies in a web-applications, mainly </p>
  
  <ol>
  <li>Considering the various browsers and versions. </li>
  <li>Screen resolutions </li>
  <li>No hardware support for graphics (business graphs, point graphs with 200+ points)</li>
  <li>Restricted access to local hardware (importing files, creating files, printing)</li>
  <li>Keyboard shortcuts</li>
  </ol>
  
  <p>Point #1 is also worrying since the browser is more out of control since other web-applications in the company (not expert systems) are used, and we fear conflicting interests with the new application (e.g., we must use a browser version where ALL applications run/render fine).</p>
  
  <p>I know there is no black and white on this, but I would be interesting in the following:</p>
  
  <p><strong>Who was in a similar situation and how did they solve it?</strong>
  (there is a nice article at <a href="http://karlshifflett.wordpress.com/2007/12/20/reasons-for-choosing-wpf-over-aspnet-for-very-large-project/" rel="nofollow">http://karlshifflett.wordpress.com/2007/12/20/reasons-for-choosing-wpf-over-aspnet-for-very-large-project/</a>, but the problem is that the article is 5 years old :(</p>
  
  <p><strong>How much more expensive is a web solution?</strong>
  For development assume that the programmers are equally skilled in both (we can outsource this). For maintainance assume that we will internally support this where we have limited knowledge in ASP.NET and WPF. We know WinForm/WCF using C#. We would have to train/learn either technology.</p>
  
  <p><strong>How easy can a web application do Excel interaction, printing etc.?</strong>
  I read a lot about "ActiveX hell" and I am wondering where we stand today?</p>
  
  <p><strong>Deployment</strong>
  I have used Click-Once quite successfully in the past, although some team members mention that Click-once can be an issue. Any experiences?</p>
  
  <p><strong>Future?</strong>
  The system is supposed to last 5+ years. We can not target HTML5 at this time (WinXP only up to IE 8). Where does Windows 8 stand on this? </p>
  
  <p><strong>Other thoughts?</strong>
  What important things am I missing?</p>
  
  <p><strong>Thank you!</strong>
  I know this entry is long and not an easy question. So I think you for reading and thank you even more for constructive feedback. Thank you!!!!</p>