asp.net or WPF (not design or code question but general opinion)
-
Pete O'Hanlon wrote:
WPF and Terminal Server do not play nicely together in my opinion.
if that is the case then sticking with web app might be best. I have serious doubts about performance if this is installed on client machines as most of the machines out and about the company factory floor and whatnot are old barely minimal boxes running xp. A couple of them are in fact so bad that they connect to a terminal server just to use its browser and hit the current web app.
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
We escalated a WPF performance issue to MS (found mostly on older PCs - but all within MS recommended WPF spec) and we heard from a senior MS dev that WPF shouldn't really be used on anything less than 2 cores, as there are 2 blocking threads in operation. Its not the official line of course, but do not assume it will perform on older kit. Adam
-
ok Soon to start rebuilding the companies core application. Currently it is an ASP.net app but it was recommended to me to consider switching to a WPF application for it. no more than 100 users at most, and on a normal day maybe 30 at once using some portion of the app consistently. not required to have outside access, only usable while at work not at home. Soon to be setting up SharePoint so I am considering putting all reporting through SharePoint and completely removing it from the current application either way. Going with WPF I could create separate apps for different departments instead of one giant app as it currently is on the ASP. Either solution would be using SQL2008 R2 for the database and would be running on just updated 64 bit servers with plenty of resources.(we are upgrading EVERYTHING from hardware to server 2008 r2, everything..) The plan is to move the current projects over as is and get the new hardware running, then its a rebuild of the application one way or another, ultimately it will be up to me which way to rebuild it, as is with better streamlining and hopefully better code, or completely new direction, its at my discretion. Based on such general and nonspecific knowledge as I have shared..... is there any preference to one way or the other(web app vs WPF)? and Reasons why? Edit: I have not coded in WPF as of yet, have in asp.net but I'm not really worried about the learning curve, just being clear as to why I wanted to get opinions. Is it worth taking the time to learn WPF right now basically
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
-
Our techies tell us that SQL 2008 R2 is buggy. Stick to 2008 (v10.0) or wait a little for Denali, unless there are killer features in R2 (not in v10.0) you need. A
the money has already been spent on 2008 R2 :) I have used it at my last job and did not have any difficulties, does not mean the bugs are not there but I did not run into them at that time at least.
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
-
We escalated a WPF performance issue to MS (found mostly on older PCs - but all within MS recommended WPF spec) and we heard from a senior MS dev that WPF shouldn't really be used on anything less than 2 cores, as there are 2 blocking threads in operation. Its not the official line of course, but do not assume it will perform on older kit. Adam
Yeah I do not plan on going with a full client installation due to our typical floor machines being dinosaurs.(A number of machines in cabinets out on the factory floor.) If I was to go with WPF it would be only if it would work with terminal server. Which a couple of people have said it does not play well, so its looking grim for that route.
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
-
John Simmons / outlaw programmer wrote:
you *should* worry about the learning curve (Silverlight and WPF are like inbred relatives), because neither are much like ASP.Net.
Ah but If I was worried about the learning curve I wouldn't be where I am at now, since I had to learn ASP and C# on my own :-D Seriously though, I didn't expect it to be the same. I was just curious mainly in benefits/drawbacks of the two in a very general comparison.
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
Really no kidding, you should be worried about the learning curve. Even for a medium app like yours you cannot deliver quality while you are just learning the technologies. I don't know how much you know already but you need to know really well some of the specific patterns used with each technology. Then you should be experienced enough in both WPF and Silverlight to know the limitations of the latter in case you want to make an educated pick. You have to learn RIA Services because if you want to port the app at least do it using all the latest tools. If you need your client to be a browser, Silverlight works curently in all the latest versions of the 4 big browsers. I don't know about WFP XBAP apps. Silverlight consumes data only from service like data sources and every call is asynchronous. I could go on ... but my point is that is not an easy task. Great stuff to learn though and you may be different than me and learn faster, who knows. So, if you have the time, take the dive. You start with Silverlight, create your app and later you're better positioned to learn WPF. In the process of learning Silverlight volens-nolens you will learn a bit of WCF. Cheers
giuchici
-
I wasn't being smug I promise. jut simply stating that I have to constantly learn something either way it goes, I'm not scared of taking on a new task when needed. And when you are at my level of (in)experience, all learning curves are kinda steep....
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
I started a part-time WPF project a few months ago and the learning curve isn't so bad. The first week wasn't very productive, but I've managed to develop a C-like code diff tool (Beyond Compare + syntax coloring + better line matching algorithms) with custom scrollbars, document coloring and stuff very easily. I went through a similar learning curve in ASP.NET and it never felt as natural as WPF. But I hate Javascript so maybe I'm biased...
-
ok Soon to start rebuilding the companies core application. Currently it is an ASP.net app but it was recommended to me to consider switching to a WPF application for it. no more than 100 users at most, and on a normal day maybe 30 at once using some portion of the app consistently. not required to have outside access, only usable while at work not at home. Soon to be setting up SharePoint so I am considering putting all reporting through SharePoint and completely removing it from the current application either way. Going with WPF I could create separate apps for different departments instead of one giant app as it currently is on the ASP. Either solution would be using SQL2008 R2 for the database and would be running on just updated 64 bit servers with plenty of resources.(we are upgrading EVERYTHING from hardware to server 2008 r2, everything..) The plan is to move the current projects over as is and get the new hardware running, then its a rebuild of the application one way or another, ultimately it will be up to me which way to rebuild it, as is with better streamlining and hopefully better code, or completely new direction, its at my discretion. Based on such general and nonspecific knowledge as I have shared..... is there any preference to one way or the other(web app vs WPF)? and Reasons why? Edit: I have not coded in WPF as of yet, have in asp.net but I'm not really worried about the learning curve, just being clear as to why I wanted to get opinions. Is it worth taking the time to learn WPF right now basically
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
I am currently working on converting the online portion of a project from ASP.Net to Silverlight 4. As Pete advised the learning curve is steep and not to be taken lightly. If you are using SQL Server I am guessing the app has a large investment in stored procs. Domain Services in Silverlight does not handle stored procs very well. That is, expect to be hand coding a lot of boiler-plate. Joins require procs. So if the app is interperting codes, for instance state codes, you need to use procs. Have you considered using Windows forms with Sync Framework and SQL Compact for a local data store? This would work well for an ih-house application. It would let you keep the data base pretty much as is and convert the subsystems incrementally. Use Krypton controls for a choice of look and feel, for instance Office 200x. Have fun.
-
Yeah I do not plan on going with a full client installation due to our typical floor machines being dinosaurs.(A number of machines in cabinets out on the factory floor.) If I was to go with WPF it would be only if it would work with terminal server. Which a couple of people have said it does not play well, so its looking grim for that route.
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
We have several clients running our WPF/C# applications on Terminal Server and Citrix without any issues. I wouldn’t hesitate to use WPF because of Terminal Server. You just need to remember that everyone is sharing the same resources. Make sure you dispose of objects correctly and don’t hold on to large chunks of data being lazy. We also use DataReaders almost exclusively. If you have 30 people all loading giant data tables on the same machine at the same time it can chew up resources in a hurry.
-
gavindon wrote:
Ah but If I was worried about the learning curve I wouldn't be where I am at now, since I had to learn ASP and C# on my own :-D
It ain't a good idea to be smug. I've learned it the same way, and had to teach myself WPF. The learning curve is steep - ask anyone here that's done it.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
-----
You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
-----
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass." - Dale Earnhardt, 1997'Smug' is a bit fair here. Your transition over via the C# end of things is going to be mindblowingly awesome, but your general layout ethics and methodology is waaaaaaaaaaaaaaaaaaaay different. As a matter of fact, there is NOTHING similar to general web development except for the page your linked object sits on...which has quite a bit of JS extendability...so make sure you tack on Javascript to your list...and get to understand the RIA services, too. If you're planning on switching to Share Point soon, you really shouldn't bother. Just clean up what you've got and spend your learning curve on custom Share Point modules.
-
ok Soon to start rebuilding the companies core application. Currently it is an ASP.net app but it was recommended to me to consider switching to a WPF application for it. no more than 100 users at most, and on a normal day maybe 30 at once using some portion of the app consistently. not required to have outside access, only usable while at work not at home. Soon to be setting up SharePoint so I am considering putting all reporting through SharePoint and completely removing it from the current application either way. Going with WPF I could create separate apps for different departments instead of one giant app as it currently is on the ASP. Either solution would be using SQL2008 R2 for the database and would be running on just updated 64 bit servers with plenty of resources.(we are upgrading EVERYTHING from hardware to server 2008 r2, everything..) The plan is to move the current projects over as is and get the new hardware running, then its a rebuild of the application one way or another, ultimately it will be up to me which way to rebuild it, as is with better streamlining and hopefully better code, or completely new direction, its at my discretion. Based on such general and nonspecific knowledge as I have shared..... is there any preference to one way or the other(web app vs WPF)? and Reasons why? Edit: I have not coded in WPF as of yet, have in asp.net but I'm not really worried about the learning curve, just being clear as to why I wanted to get opinions. Is it worth taking the time to learn WPF right now basically
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
I think that you should stick with what you have the most experience with (i.e. asp.net). Although in the real world you sometimes don't have an option, it's always ill-advised to have your first ever project in a new platform actually *be* the production app. I think you should take advantage of the fact you indeed have the option. Plus, I'd assume updating your new solution would be easier in asp.net, since all you'd need is FTP and bam, you can instantly update the app for all who access it. Good luck!
-
John Simmons / outlaw programmer wrote:
you *should* worry about the learning curve (Silverlight and WPF are like inbred relatives), because neither are much like ASP.Net.
Ah but If I was worried about the learning curve I wouldn't be where I am at now, since I had to learn ASP and C# on my own :-D Seriously though, I didn't expect it to be the same. I was just curious mainly in benefits/drawbacks of the two in a very general comparison.
Programming is a race between programmers trying to build bigger and better idiot proof programs, and the universe trying to build bigger and better idiots, so far... the universe is winning.
The learning curve of WPF is much more steep than ASP.Net or C#. Take it into consideration.
-
In this particular case, I see no compelling reason to move to a desktop architecture. Everything you have described so far can be easily achieved in a web based application.
Forgive your enemies - it messes with their heads
My blog | My articles | MoXAML PowerToys | Mole 2010 - debugging made easier - my favourite utility
Forgive me for saying this, but from what I've seen ASP .Net applications can be quite speedy compared to the WPF I've seen. I don't know about over terminal services, but you can throw tens of thousands of dollars on Citrix and still not see performance approaching a normal PC :-( If this is something that's going to run across of low-spec machines, I'd stick with ASP .Net. For one, you know it, and for two, you haven't given any compelling reason to move to another technology. With that said, moving the logic into another layer (either web services or the database) would be a good idea for your refactoring project. And how about Razor / MVC 3? It seems to be where all the flash is right now.