none
To develop a modern application, which technology I should go for? RRS feed

  • Question

  • Our main usage platform is Windows Desktop.

    Should I go for WPF? 

    I saw something called "UWP".  Is this a replacement for WPF?  or UWP is just for mobile app? 

    I need something can run for 5 years from now 2017.

    Hope somebody can explain this.  Thx.

    Saturday, September 16, 2017 8:48 AM

All replies

  • Yes, UWP is the proposed replacement for WPF. The idea is that the UWP application, if properly written, can run not only on desktop PCs, but also in tablets, mobile devices, XBox and Hololens platforms. However, the set of APIs you can use will be different and more restrictive than the ones you are used to calling in your conventional .Net applications. So, depending on what you are intending to achieve, UWP might not be the right way to go for you.

    I expect that in 5 years time, WPF shall still be running just as it does now. Hey, we are still creating new Winforms applications (let alone using and maintaining the old ones), and Winforms is supposed to have been obsoleted more than 5 years ago.

    Saturday, September 16, 2017 10:38 AM
    Moderator
  • "UWP is the proposed replacement for WPF."
    Q1: As far as I know, WPF was released on 2006 and UWP was released 2016, I think
    it's logical to go for UWP for upcoming development (especially for large projects), right?

    "APIs you can use will be different"
    Q2: It's logical to have new sets of tools and some different new skills to learn.  But
    it looks like Windows guys (C#, .Net background) should be able to pickup the new tools
    "easily".  Or do you really mean something is huge different?

    "UWP might not be the right way to go for you."
    Q3: Sorry~~~ but I have to say this, how do you know UWP might not fit my need?

    "we are still creating new Winforms applications"
    Q4: You mean "we" is Microsoft or your development team?  Any behind meaning?

    "Winforms is supposed to have been obsoleted more than 5 years ago."
    Q5: I am still developing some WinForms Apps, anything wrong for this?

    I just want to understand more :-)     thanks

    Saturday, September 16, 2017 11:52 AM
  • WPF and Windows Forms are both technologies that are directed at creating 'desktop' applications for Windows.

    Neither have been improved or developed further for years (Windows Forms as of about 2005, WPF as of about 2010). If you want to use the term "obsolete", then WPF is a little bit less obsolete than Windows Forms, but both are widely used.  Windows Forms is simpler to learn, while WPF offers more possibilities for artistic expression - if you fancy yourself an artist and think in markup language, then you might produce something more spectacular with WPF.  If you're not an artist, then your WPF application will look just like your Windows Forms application (I'm not an artist and that's what I found).

    UWP is a specialized technology for developing apps that will run on any Windows device.  However, you can't just port any application since it's quite restrictive.  We've looked at this, but even our relatively simple tools go beyond what UWP allows in it's limited 'sandbox' environment.  (You'll find that UWP's name changes about every two years - it was previously called "Metro", "WinRT", and "Windows Store Apps" - I think they've settled on "UWP" now).


    Convert between VB, C#, C++, & Java (http://www.tangiblesoftwaresolutions.com)
    Instant C# - VB to C# Converter
    Instant VB - C# to VB Converter


    • Edited by Dave Doknjas Saturday, September 16, 2017 2:14 PM
    Saturday, September 16, 2017 2:09 PM
  • I am interested in knowing where Microsoft says "UWP is the proposed replacement for WPF" and I think you should too. I doubt they say it that clearly. Dave Doknjas says "our relatively simple tools go beyond what UWP allows". UWP is definitely the preferred solution for anything intended for the Microsoft Store, obviously.

    So let's back up. They all use the classic Windows underneath. All WPF windows have a window handle. UWP also uses the classic Windows underneath. When you learn UWP programming you will struggle with async/await. I am still learning about async/await but my understanding is that it is partially the result of using the classic Windows underneath.

    UWP seems to be designed more for shock and awe value than for traditional business uses. The DataGrid and DataGridview controls are not supported for UWP and there is not (yet) anything like them for UWP. Microsoft emphasizes impressive graphics and UI elements in their UWP samples but most of that does not help productivity for traditional business uses other than dealing with the limited space of smartphones and tablets. UWP appears to be great for graphics applications.

    I think that WPF is a good idea that has been extended beyond its value, like the Peter principle for people. WPF can be very useful but it is probably best to be smart about how it is used. More specifically, I think it is best to avoid doing too much in XAML that is more appropriate for code (code-behind).



    Sam Hobbs
    SimpleSamples.Info


    • Edited by Simple Samples Saturday, September 16, 2017 9:23 PM merge othe reply
    Saturday, September 16, 2017 9:20 PM
  • I am interested in knowing where Microsoft says "UWP is the proposed replacement for WPF" and I think you should too.

    The can not and will not say "UWP repalces WPF". If they ever gave a clear "X is the future" answer and they later changed their minds, other Firms could and would literally sue them over this.

    They invest the bulk of resources into UWP and UWP is a clear further development of WPF. That means there is where microsoft bet it's money. But then Micrsoft is just leaving the mobile market and that was a good argument for UWP as future technology. We have to see if the Store without Mobile devices will still work out.

    WPF or UWP are good bets, as they are rather similar on the GUI side and either one (or anotehr followup) will likely be the Future. But Xamarian might also be a likely goal.


    Remember to mark helpfull answers as helpfull and close threads by marking answers.


    Sunday, September 17, 2017 12:40 AM
  • The can not and will not say "UWP repalces WPF".

    They cannot because they serve different purposes. Unless they totally rewrite Windows, UWP cannot replace WPF or any desktop technology like WPF. They tried to limit desktop users to the capabilities of smaller devices; it was called Windows 8. So that is why I asked where Microsoft says UWP replaces WPF since it is likely that Microsoft was being miss-quoted.

    If they ever gave a clear "X is the future" answer and they later changed their minds, other Firms could and would literally sue them over this.

    Were they sued about Silverlight? There was very much investment in Silverlight by Microsoft and many Microsoft customers, right?



    Sam Hobbs
    SimpleSamples.Info

    Sunday, September 17, 2017 1:20 AM
  • So right now, which solution fits for Desktop development?

    WPF or UWP or something else?

    Monday, September 18, 2017 1:33 AM
  • Btw, FYI Metro/WinRT is different from UWP. They're served with 2 completely different set of libraries, have different restriction rules, and more importantly, Metro/WinRT runs on Window ARM based OSs only but UWP can run on other CPU and/or platforms.
    Monday, September 18, 2017 1:45 AM
    Answerer
  • If your application targets Windows desktop, WinForm is still the safe bet because I don't think it'll go away anywhere like 20+ years (Considering Microsoft still need to support running VB6 applications on UWP via Centennial Project ). If your application does not bind tightly to hardware, at the worst case you can just wrap your application inside Centennial Project's wrapper and call it a day.

    I'll also add that the conversion is not always effortless as you'd imagine. Say if you need touch functionality in your application, you'll still need to write some UWP code to bridge the event to your application.

    Monday, September 18, 2017 1:52 AM
    Answerer
  • Oh yeah, it reminds me a major bank still uses VB6 for some of their machines.  I think one of the key points for business application is stability.

    Over the past 10 years, I feel like Microsoft lost its direction, most people (including some developers) don't even know what their products target for and how long does it last for.  People in development must know this clearly because the investment time could last for years.

    I hope they have a clear and stable planform for business application development.  It's wise to consider to leave the mobile market temporarily.

    Monday, September 18, 2017 2:33 AM
  • Btw, FYI Metro/WinRT is different from UWP. They're served with 2 completely different set of libraries, have different restriction rules, and more importantly, Metro/WinRT runs on Window ARM based OSs only but UWP can run on other CPU and/or platforms.

    See C++ - Introducing C++/WinRT. The first sentence says "The Windows Runtime (WinRT) is" ... "the core of the Universal Windows Platform (UWP)".


    Sam Hobbs
    SimpleSamples.Info

    Monday, September 18, 2017 3:52 AM
  • Btw, FYI Metro/WinRT is different from UWP. They're served with 2 completely different set of libraries, have different restriction rules, and more importantly, Metro/WinRT runs on Window ARM based OSs only but UWP can run on other CPU and/or platforms.

    Metro/WinRT/Store Apps morphed into UWP.

    Yes, they are different - but only in the sense that Metro/WinRT were just earlier 'versions' of UWP.

    You don't see both Metro and UWP supported currently, do you?


    Convert between VB, C#, C++, & Java (http://www.tangiblesoftwaresolutions.com)
    Instant C# - VB to C# Converter
    Instant VB - C# to VB Converter

    Monday, September 18, 2017 4:37 AM
  • The only thing Microsoft still dominates is the desktop market, so it makes sense that they will eventually realize this and bring their desktop application development up to date again.

    Whether that is a revived WPF or something else, I don't know, but it sure won't be UWP.


    Convert between VB, C#, C++, & Java (http://www.tangiblesoftwaresolutions.com)
    Instant C# - VB to C# Converter
    Instant VB - C# to VB Converter

    Monday, September 18, 2017 4:42 AM
  • You don't see both Metro and UWP supported currently, do you?

    Be careful with that. See Microsoft advises developers to stop using 'Metro' name in apps following possible trademark dispute. Metro (the name) does not exist for legal reasons, not technical reasons.


    Sam Hobbs
    SimpleSamples.Info

    Monday, September 18, 2017 5:43 AM
  • The only thing Microsoft still dominates is the desktop market, so it makes sense that they will eventually realize this and bring their desktop application development up to date again.

    Whether that is a revived WPF or something else, I don't know, but it sure won't be UWP.

    Yes, this could happen. 

    Personally, I just "worry" two issues.  #1 The fruit brand dominates the mobile market and upcoming years they will work with IBM (or already working on) as they realize they are weak at server-side.  #2  They started to educate child and teens to use Swift language and gave up to educate those "experienced" developers.

    By doing this, Microsoft will get trouble.

    Monday, September 18, 2017 7:01 AM
  • Personally, I just "worry" two issues.  #1 The fruit brand dominates the mobile market and upcoming years they will work with IBM (or already working on) as they realize they are weak at server-side.  #2  They started to educate child and teens to use Swift language and gave up to educate those "experienced" developers.

    By doing this, Microsoft will get trouble.

    Yes, they are like IBM in that they both have an appetite for proprietary products and they both prefer to bundle hardware and software but it is the need for proprietary products that prevents them from partnering with IBM. They can enter the server market on their own if they want to but they would want to be different (better in their opinion) but therefore proprietary and anti-competitive.

    No one has been able to clearly specify why an Apple is better but I have heard people explain clearly why they don't want an Apple.



    Sam Hobbs
    SimpleSamples.Info

    Monday, September 18, 2017 8:12 AM
  • Talking about this...

    In the old times Apple literally require you to re-buy every single piece of software you own if you need to upgrade to newer OS. And this hold true even for modern MacOS applications, but maybe for a lesser extent because it's BSD fundamentally. (My company have to do downgrade of Macs because some software in Adobe CS5 is unusable on newer OSX versions, and these packages are expensive)

    I wonder if Swift compiled Apps still suffer from this limitation? If yes,  I don't think most business will want to change to Mac OSX.


    Monday, September 18, 2017 9:55 AM
    Answerer
  • Among the famous superstars (could be more), those can build software

    Sybase Powerbuilder
    Apple Swift
    Borland C++ Builder
    Sun Java
    HTML5

    But the only win-win solution is from "Microsoft Visual Studio (WinForms / WPF)" because it is the true and real RAD environment.  Most importantly, the products (the software we build) runs excellent.

    Let's give couple examples here

    1. Apple Swift - this is just for fun, not for business use, you can't find servers from HP, Dell, IBM, Sun, or even Apple...etc
    2. HTML5 - Browser based application is not dependable.  If the browser got updated, your software might get errors.  CSS might not load for sometimes, for some reasons, you have to refresh it again.  I often accidentally closed the Brower but I don't want to, if the app is a desktop based app, I never have such problem.
    3. PowerBuilder - the initially investment cost is huge and the final product is not as good as the product from VS.

    In this world, two solutions to solve these issues.

    1. WinForm is a true RAD solution - but Microsoft stopped to invest for it.
    2. WPF is a true RAD solution - but Microsoft might stop to invest for it.

    Developers leave Microsoft to other areas.

    Competitors are happy to see this.

    *** This is solely my personal point of view and I understand that some people might not agree ***

       

    Monday, September 18, 2017 10:54 AM
  • You don't see both Metro and UWP supported currently, do you?

    Be careful with that. See Microsoft advises developers to stop using 'Metro' name in apps following possible trademark dispute. Metro (the name) does not exist for legal reasons, not technical reasons.


    Sam Hobbs
    SimpleSamples.Info

    Using the term 'Metro' in a discussion is perfectly fine!

    Convert between VB, C#, C++, & Java (http://www.tangiblesoftwaresolutions.com)
    Instant C# - VB to C# Converter
    Instant VB - C# to VB Converter

    Monday, September 18, 2017 1:48 PM

  • Personally, I just "worry" two issues.  #1 The fruit brand dominates the mobile market ...

    Android dominates now, not Apple.  Google is dominating because they are using the same model that Microsoft used in the desktop market - provide the OS that runs on devices that others build.  Amazing that Microsoft couldn't do that themselves, but they missed it.

    Anyway, Microsoft still has the desktop market and they need to hang on to it by getting back into desktop development support, not wishful thinking with UWP (who cares if UWP apps run on all devices when the only devices anyone wants Windows on are desktops/laptops).


    Convert between VB, C#, C++, & Java (http://www.tangiblesoftwaresolutions.com)
    Instant C# - VB to C# Converter
    Instant VB - C# to VB Converter

    Monday, September 18, 2017 1:53 PM
  • Using the term 'Metro' in a discussion is perfectly fine!

    Microsoft cannot legally call any of its products "Metro" so the point is that it is misleading to say that Metro is not supported by Microsoft. The announcement that Microsoft is dropping the name says that the temporary alternative is Windows 8 Style UI or something like that but I can't find anything stating clearly what its name became. I assume that the technology that began as "Metro" is now "UWP" but the comment about supporting both Metro and UWP is irrelevant since Microsoft cannot support anything called "Metro" for legal reasons.


    Sam Hobbs
    SimpleSamples.Info

    Monday, September 18, 2017 6:36 PM

  • Microsoft cannot legally call any of its products "Metro" so the point is that it is misleading to say that Metro is not supported by Microsoft.


    Sam Hobbs
    SimpleSamples.Info

    Yes, but my main point was that "Metro" was really just an early incarnation of what eventually became UWP - these were not totally independent ventures by Microsoft.  In other words, there is currently no renamed "Metro" + UWP - there is just the "make everything a phone app" UWP.


    Convert between VB, C#, C++, & Java (http://www.tangiblesoftwaresolutions.com)
    Instant C# - VB to C# Converter
    Instant VB - C# to VB Converter

    Monday, September 18, 2017 6:48 PM
  • Among the famous superstars (could be more), those can build software

    Sybase Powerbuilder
    Apple Swift
    Borland C++ Builder
    Sun Java
    HTML5

    Who has written the most operating systems? Who has written the most compilers? Not any of those nor Microsoft. Who has written the most software? None of those even if Microsoft's is combined with all those (however HTML5 is not a software producer). Who has the most cloud datacenters? Who has the infamous Watson AI system? Who invented relational database technology? Who is a long-time leader of distributed databases? Who created the technology that inspired SGML that HTML originally used (see my HTML's Surprising History)? Who (among them) is more active than IBM in open-source technology such as Linux?


    Sam Hobbs
    SimpleSamples.Info


    Monday, September 18, 2017 7:07 PM
  • the same model that Microsoft used in the desktop market - provide the OS that runs on devices that others build.


    The IBM PC standard and Microsoft are successful only because the IBM PC was explicitly designed to use third-party software. The IBM PC is the result of mavericks within IBM that was mature enough to understand the value of competition. The model for the IBM PC "provide the OS that runs on devices that others build" was provided by IBM for Microsoft to follow. Originally Microsoft was the little guy and IBM was the big bully. Things have changed; Microsoft is not so little.


    Sam Hobbs
    SimpleSamples.Info

    Monday, September 18, 2017 7:27 PM

  • 2. HTML5 - Browser based application is not dependable.  If the browser got updated, your software might get errors.  CSS might not load for sometimes, for some reasons, you have to refresh it again.  I often accidentally closed the Brower but I don't want to, if the app is a desktop based app, I never have such problem.

    Well, that's why many in-house web applications for internal use specifically targets IE, because Microsoft officially said there won't be any active development now.

    Accidentally closing browser is never a problem for me because IE has a beforeunload event that allow you to prevent accidentally close the pages. If you're a user that experienced this problem, you can blame your developers for laziness.


    Tuesday, September 19, 2017 1:17 AM
    Answerer
  • IBM definitely is the king of this industry.  (However, I haven't used their products for a long time and almost forget they are the background workers)

    It looks like Apple will soon dominate this market and the critical point is server-side technology.  Traditional server technology is not their cup of coffee. 

    AI is the answer.

    Tuesday, September 19, 2017 1:24 AM
  • IBM definitely is the king of this industry.  (However, I haven't used their products for a long time and almost forget they are the background workers)

    They don't get much attention in the Microsoft world. Even if they don't deserve attention in the Microsoft world they deserve a mention. Microsoft developers (developers using Microsoft technology) often think it is preposterous to think that C++ is still strong and that is one reason why it is important to mention the other worlds.

    AI is the answer.

    I remember people in the 1970s saying that software will soon eliminate the need for most programmers.



    Sam Hobbs
    SimpleSamples.Info

    Tuesday, September 19, 2017 1:40 AM
  • Well, that's why many in-house web applications for internal use specifically targets IE, because Microsoft officially said there won't be any active development now.

    It also tells us

    1. They need to use IE (not Edge, not Chrome...etc)
    2. They might miss some features.
    3. Using "old" browsers also means security threat. (even in In-house environment)
    4. Once IE got true retried, they need to enhance the coding and seek other browser(s) to fit their need.  This move creates a doubtful environment especially for in-house.

    Accidentally closing browser is never a problem for me because IE has a beforeunload event that allow you to prevent accidentally close the pages. If you're a user that experienced this problem, you can blame your developers for laziness.

    Well, this is a problem.  Some users might not notice that.  Desktop applications are a standalone application located at Task Bar while web applications are all grouped together. 
    Tuesday, September 19, 2017 3:24 AM
  • It also tells us

    1. They need to use IE (not Edge, not Chrome...etc)
    2. They might miss some features.
    3. Using "old" browsers also means security threat. (even in In-house environment)
    4. Once IE got true retried, they need to enhance the coding and seek other browser(s) to fit their need.  This move creates a doubtful environment especially for in-house.

    1 is intentional.

    For 2, there's no missing feature we need that I aware of for internal website.

    For 3, that's why IE is not made the default browser for the system. The users need to click icons on desktop to launch the webpage with IE.

    For 4, I don't know there is plan to retire IE for Win7. Win7 itself has gone out-of-support already. Heck, about half of our workstations are still under WinXP as of now. I do sometimes got frustrated with that too, but can do nothing about it because it's progress is constrained by budget. Even if Microsoft is willing to give out free upgrades to Win10, old machines won't run new OS is a problem.

    OS (or rather, machine) upgrade takes much longer than you'd probably expected for companies with over 50000 servers/workstations over 7 countries. My desktop machine at home have spec that doubles the spec of over 2/3 of all servers we have here, so go figure.

    Accidentally closing browser is never a problem for me because IE has a beforeunload event that allow you to prevent accidentally close the pages. If you're a user that experienced this problem, you can blame your developers for laziness.

    Well, this is a problem.  Some users might not notice that.  Desktop applications are a standalone application located at Task Bar while web applications are all grouped together. 
    You do realize that you can set in your taskbar properties to not group icons, right?
    Tuesday, September 19, 2017 3:59 AM
    Answerer
  • Maybe it's a good time to change the type of this thread to discussion, because the asker seems to be able to make up his mind now, and we're all just talking. XD
    Tuesday, September 19, 2017 4:02 AM
    Answerer
  • Maybe it's a good time to change the type of this thread to discussion, because the asker seems to be able to make up his mind now, and we're all just talking. XD

    Well, not really, every couple of months I got the same question again, if this world comes with a RAD DESKTOP solution for the following parties

    1. Medical fields
    2. Banking / Financial
    3. Academic
    4. Trading / Retail
    5. Transportation

    What I got is still an uncertain answer from Microsoft.  (maybe they are working on this :-) ) 

    Tuesday, September 19, 2017 6:10 AM
  • Even if Microsoft is willing to give out free upgrades to Win10, old machines won't run new OS is a problem.

    At the very beginning, I doubted if Win10 fitted for my need, I got a free upgrade from Win7 to Win10 and it works like a charm.  My old machine (was born on 2011) runs as normal as a new machine.  The only secret is I replaced the traditional hard drive to SSD.  120GB, about 30 USD.  Maybe you can give it a try. 

    For 2, there's no missing feature we need that I aware of for internal website.

    It depends what the application is and the requirements from users (or management team, boss...etc)  If they see a feature they want, then, you might need to spend time to fit their need.

    Check out this chart,

    https://www.w3schools.com/cssref/css3_browsersupport.asp

    This is a nightmare chart to my understanding.  Different browsers support different features.  It reminds me the first time I used Netscape's 1.0 browser 199X.  I can tell all tech giants (Netscape first and later on IE was released) will have their own standards / features.

    Tuesday, September 19, 2017 6:30 AM
  • At the very beginning, I doubted if Win10 fitted for my need, I got a free upgrade from Win7 to Win10 and it works like a charm.  My old machine (was born on 2011) runs as normal as a new machine.  The only secret is I replaced the traditional hard drive to SSD.  120GB, about 30 USD.  Maybe you can give it a try. 

    Unfortunately, as small potato in company, I'm not in position to suggest things like this. If I can have a say on anything, I wish they could upgrade the servers first... the non-customer-facing servers are painfully slow. "Old workstations the other staffs are using" is not even on my list of pain. (As development staffs, we do get relatively new machines) :P

    Tuesday, September 19, 2017 7:13 AM
    Answerer
  • Haha...Most small potatoes take a relatively important role in a company and they also "underrate" themselves because they've seen so many smart people around the globe.  Management team are happy to work with those guys because they know the taste from Management team.  What they likes or dislike :-)

    It also looks like you work in a large corp in Asia.  Anyway, your comment is meaningful and worth to think.

    Tuesday, September 19, 2017 9:41 AM
  • UWP hasn't gained any great popularity. 

    It looks more likely that PWA (Progressive Web Apps) will be successful, and I guess Microsoft will move UWP to these.

    PWA's are hybrid Web apps, that is Web apps upgraded to let them run on native operating systems (desktop, mobile, tablet) and capable of running outside a browser (but using browser technology), and of running offline, and looking like native apps not web apps.

    https://developers.google.com/web/progressive-web-apps/



    Microsoft support VB6 programming (VB6 Support StatementVB6 Programming IDE Installer)

    Tuesday, September 19, 2017 1:19 PM
  • I wonder if it'll do greater success than HTA in the days of IE6, though.
    Wednesday, September 20, 2017 12:50 AM
    Answerer
  • It looks more likely that PWA (Progressive Web Apps) will be successful, and I guess Microsoft will move UWP to these.

    Great to hear that !

    For PWA, it looks like Web Server is required and it also means it needs to deal with HTTPS (SSL). Fast Response is definitely an advantage, but the "fast" really mean as fast as a Desktop application? End-users at our side need a fast application (Desktop speed is what they are looking for).

    Wednesday, September 20, 2017 1:28 AM
  • PWA sounds to me like just ordinary HTML5 App with Service Worker so it can load much of the payload from local cache instead of from webserver every time.

    The downside? It'll only run with Chrome and Firefox only with that way (IE and Safari does not support Service Worker as of now, and support in Edge is only under development). Better modify the tutorial a bit and back it with AppCache manifest file and you can get the best of both world (Chrome and Firefox will ignore AppCache manifest if it's a version supports Service Worker, that makes this strategy nice fallback on other browser that don't support it).


    Wednesday, September 20, 2017 1:40 AM
    Answerer
  • PWA sounds to me like just ordinary HTML5 App with Service Worker so it can load much of the payload from local cache instead of from webserver every time.

    The downside? It'll only run with Chrome and Firefox only with that way (IE and Safari does not support Service Worker as of now, and support in Edge is only under development). 


    Apple now list Service Workers as being 'under development' for Safari.


    Microsoft support VB6 programming (VB6 Support StatementVB6 Programming IDE Installer)

    Friday, September 22, 2017 10:09 AM