[ACCEPTED]-ASP.Net or WPF (C#)?-wpf

Accepted answer
Score: 40

Reasons to choose WPF:

  • Much faster and easier development than ASP.NET and jQuery
  • Much easier to implement quick incremental background loading of data
  • Much easier to implement client-side caching of commonly used data (important for remote offices)
  • More efficient data transfer from server (can use advanced WCF features unavailable to web browser)
  • Keyboard navigation better, since you can easily define shortcuts, etc, and not be limited by browser
  • Maintenance overhead much better using MVVM pattern
  • Softphone integration easy

Reasons to choose 2 ASP.NET and jQuery:

  • None that I can see

In your scenario I would 1 definitely choose WPF.

Score: 9

First of all, I would sit down and write 27 the business requirements and specifications. It 26 really doesn't matter what tech you use 25 - proper planning will affect your project 24 timeline more than technology choice. This 23 is especially true for an in-house custom 22 built app.

As far as development, I would 21 take the requirements and lay out the backend 20 functionality. I would actually implement 19 the backend in WCF, regardless of the client 18 technology - that way you could use best 17 of both worlds if needed (for example for 16 phone integration you could write a stand-alone 15 WPF app). ASP.NET with jQuery can easily 14 use WCF services (JSON or XML version) together 13 with desktop client.

As far as development 12 of the client forms, this highly depends 11 on developers experience and your future 10 plans. I am not going to go into advantages/disadvantages 9 of developing web software here - there 8 are a ton of articles in the last 10 years 7 about cloud/web based software (for example 6 salesforce). I would rather concentrate 5 on deliverables - what is your team most 4 comfortable with today and in the future. There's 3 a huge difference between WPF and web development, from 2 development standpoint, and it requires 1 completely different experience.

Score: 9

Why not consider a hybrid solution - Silverlight

With 8 Silverlight you get most of the goodness 7 and statefullness of WPF (with almost exactly 6 the same XAML and code), plus you get the 5 deployment characteristics of ASP.NET

Many 4 people consider Silverlight the next step 3 after ASP.NET/AJAX, and it would definitely 2 deliver all of the benefits of WPF relevant 1 to your scenario.

Score: 5

WPF is the way to go, without a doubt. I 34 agree with all that @Ray Burns has said.


  • You will get a richer, slicker, faster application.
  • It will be easier to build1.
  • Softphone/Scanner (i.e. hardware) integration is going to require browser plugins etc. and this can be a nightmare with a browser based application.
  • Keyboard navigation is still better with native applications.
  • IME Maintenance is easier with WPF applications.

Definitely 33 use WCF to provide the backend via The Entity 32 Framework, see The Entity Framework In Layered Architectures. You can do have a better 31 integration with the backend in a native 30 application because it can be called inline 29 - no need for callbacks or ajax. I've built 28 components for WPF that are linked via EF 27 to the business logic to provide aware controls 26 for simple stuff like validation. It's stunningly 25 good to drop a customer name field onto 24 a form and it just works.

To add additional 23 components you need to build it with a proper 22 well thought out plugin architecture. This 21 is the same in both environments. I've got 20 some thoughts on this I jotted down in my 19 journal entitled Designing a plugin architecture for an application

When building a WPF application 18 you will be writing in one language (e.g. C#) + markup 17 (XAML). When building asp.net you endup 16 with two languages + markup, as you always 15 have to code some Javascript.

So, based on 14 your requirements it has be to WPF / WCF 13 (EF). A web based application will be a 12 lot more work, more complexity, and not 11 be as nice.

About 12 months ago I was fortunate 10 enough to be given a free hand to choose 9 the technology for a new application. I 8 spent almost a month evaluating all of the 7 options and came to the conclusion that it had to 6 be C#, WPF, Entity Framework. After writing 5 the application I can confirm that it was 4 the right choice...

1. It will still be easier 3 even if your programmers have to learn WPF 2 first. WPF is much better thought out, great 1 and lovely. very lovely. It just works right.

Score: 4

I think The question at issue is Windows-application or Web application(WPF for win-app VS asp for web-app), Which one is better for you and your project?. In 32 this case your platform is network and your 31 program must work on the net. so for this 30 usage Web-app is better but there are a 29 lot points existing which can make decisions 28 hard. Network platform has great challenge.(according 27 to my personal experience)

Working with 26 web-app by asp.net is nearly hard. you must 25 try to handle many thing's for web-app(request 24 time, session management, even poor UI in 23 comparison to WPF, j-query, etc ). Remember 22 this is not as easy as simple web site.

But 21 win-app is good for network with this condition: "local 20 network"(mpls is almost the same). Absolutely 19 developing win-app is easier than web-app 18 ("At least number of users expert in 17 net-program developing"). for this 16 case WPF has many good things(UI , command, etc) also 15 has many challenging point(like multi-threading 14 and lack of expert developer in this field 13 ) . I'm rather with wpf than asp but decisions is yours

And chalk point to good thing Silverlight 12 but if you want to use this you must look 11 at prism framework : http://compositewpf.codeplex.com/
I have recently developed 10 a project separately with asp and silverlight(prism 9 framework). developing silver-light version 8 is too hard and takes more time than asp.net 7 version but at the end SL-ver have great look nothing else!

Burns pointed to good issues about 6 wpf. also consider Artemiy's post. your environment 5 conditions is same for both of them. WPF/ASP 4 can work with scanner and soft-phone cuz the base of both is on C# and .net library
Finally 3 what ever your decisions is you must hire 2 advance developer at least develop one business-app 1 for the network platform.

Score: 3

Is your app a desktop app or web app.

If 7 Desktop wpf is best. If web based asp.net 6 is best.

Don't front load your development 5 with your get it up quick scenario. That 4 never works well and results in a sloppy 3 deployment. Take your time, cover all the 2 steps (Business Requirements, System Design, Program 1 Design, Code, TEST and TEST some more, Deployment)

Score: 2

Some points to be made for ASP.NET:

The pool 15 of ASP.NET developers is much larger then 14 the pool of WPF developers. Which means 13 you can probably find qualified ASP.NET 12 developers easier.

ASP.NET is probably more 11 future proof, chances of WPF getting large 10 changes and being hard to port to later 9 versions is probably larger. Also keep 8 in mind that the focus of MS seems to be 7 on Silverlight so there might be a consolidation 6 down the road which makes WPF obsolete.

More 5 mature eco system of ASP.NET makes for more 4 out of the box solutions to use to solve 3 problems.

With multiple locations you might 2 be able to skip a few layers and go directly 1 to a website?

More Related questions