WinForm vs WPF vs UWP vs Console - The C# Desktop UI Showdown (and the future with .NET 5)

Поділитися
Вставка
  • Опубліковано 10 лют 2025
  • Which C# desktop UI should I use? Is the latest one the best? Is WinForms dead? Aren't Console applications super-old technology? These are all questions I get on a weekly basis so I thought I would take some time and walk through the four major options for desktop applications. We will discuss the benefits and drawbacks of each UI, and then we will discuss the future.
    One of these platforms is finally dying, and it probably isn't the one you think.
    At the end, we will also discuss the future of the .NET Framework, .NET Core, and .NET 5 so that you can properly understand the direction you need to head going forward.
    Newsletter signup (with exclusive discounts, giveaways, and more): signup.iamtimc...
    0:00 - Intro
    1:04 - About contents of this video
    2:01 - Console Application
    6:30 - Windows Forms (WinForms)
    13:36 - Windows Presentation Foundation (WPF)
    21:46 - Universal Windows Platform (UWP)
    31:54 - Future of User Interfaces and .NET Frameworks
    49:35 - What should you use for new development?
    57:36 - Summary and concluding remarks
    Thanks to Ralfs HBK for the chapter breakout

КОМЕНТАРІ • 941

  • @QuadraAce
    @QuadraAce 5 років тому +58

    Tim , you really don't know how much impact you have on people lives doing this highly professional , educational videos. Thank you and please, never stop.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +2

      You are welcome. I'm glad it is helping.

  • @yanwo2359
    @yanwo2359 4 роки тому +16

    Just found your site. Great! And 10,000 thanks for no background "music" and no ego window in the corner showing nothing but you talking.

  • @johnwolnisty7511
    @johnwolnisty7511 5 років тому +12

    Excellent compare and contrast,, Tim!
    I've been a professional developer since 1978. I'd say 90% of my development is in WinForms for precisely the reasons you stated. I'm usually writing a custom app for a customer that wants it yesterday and could care less about the newest and shiniest. Now if I were developing a product for sale with a wider market, WPF all the way.
    Excellent series of videos! I'm recommending them to my team members.

  • @RalfsBalodis
    @RalfsBalodis 4 роки тому +11

    0:00 - Intro
    1:04 - About contents of this video
    2:01 - Console Application
    6:30 - Windows Forms (WinForms)
    13:36 - Windows Presentation Foundation (WPF)
    21:46 - Universal Windows Platform (UWP)
    31:54 - Future of User Interfaces and .NET Frameworks
    49:35 - What should you use for new development?
    57:36 - Summary and concluding remarks

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +3

      Thanks again and again. You truly help many of the other students

  • @ItsAStuckPixel
    @ItsAStuckPixel 3 роки тому +3

    almost 2 years after this is released and im still learning something from it. love your content!

  • @ind4mnl4t0r
    @ind4mnl4t0r 5 років тому +8

    I start using WinForm a year ago. Still using and learning it. I was thinking about learning UWP. after watching this, I changed my mind. I'm gonna stick to the WinForm and learn WPF. Btw great video.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      Thanks for watching. I'm glad you enjoyed it.

  • @fallonmassey4714
    @fallonmassey4714 4 роки тому +14

    My favorite part of this video:
    Winforms is simple, and simple gets you out the door.
    If I had to ship a windows UI, I would choose WPF, but I have a LOT of need for a GUI to either test things or internal development, and Winforms is by far easier to just get up and deliver!

  • @LuzuVlogsGamer
    @LuzuVlogsGamer Рік тому +3

    These videos are so well made and informative even if you researched about what you are going to talk its still enjoyable to hear what you have to say.

  • @davidiverson
    @davidiverson 4 роки тому +3

    Tim, as always thanks for breaking down something that gets overcomplicated and showing the realistic use cases for each of these UI tools!

  • @diyguild1327
    @diyguild1327 2 роки тому +2

    Thanks for simplifying this!!! I feel like I actually understand not only the fundementals of the technologies but also the business decisions behind them. Great video, really appreciate you taking the time to make this!

    • @IAmTimCorey
      @IAmTimCorey  2 роки тому +1

      Awesome! Glad it was helpful!

  • @zopenzop2225
    @zopenzop2225 3 роки тому +10

    I was stuck with Winforms for a long time, just because WPF takes time to learn and I kept pushing it away from me. However, an year ago, I finally got into WPF and now I don't think I'm ever going back to Winforms. Reasons? I have made a lot of code ready for customized controls, thus speed is not a compromise for me anymore. Also gotten used to using Blend for getting further into customizing everything and adding animations and stuff. It does take time to get accustomed to WPF. But if you do invest the time in learning WPF, I can say that it's surely worth it. It's great.

    • @aelarion827
      @aelarion827 3 роки тому +1

      Definitely want to echo this exact sentiment. Stuck with winforms for SO long on rapid-deployment business apps for "utilities" -- it was just easier to crank out winforms stuff because I knew it like the back of my hand; all the layout tricks, all the GDI hacks, the list goes on. Took a few months to really sit down with WPF and all the things that come with it (e.g. resource dictionaries, XAML, bindings, etc.) and I never plan to touch WinForms again unless its for a particularly specific solution that requires it.

    • @jakezepeda1267
      @jakezepeda1267 2 роки тому +1

      What is Blend? Or rather what should i look up to learn more about it?
      I've been wanting to learn WPF for better UI including animations, but the performance of animations in WPF is so bad that i don't see it as worth it.
      NVM. Was scrolling while listening and he mentioned it.

    • @zopenzop2225
      @zopenzop2225 2 роки тому +1

      @@jakezepeda1267 Blend is just like Visual Studio, but only for the UI. It's like the Visual Studio designer extracted into a different app and given a few more GUI to achieve functionality that we often have to code from scratch

    • @jakezepeda1267
      @jakezepeda1267 2 роки тому

      @@zopenzop2225 ooo. Ok. That kinda sounds like it wouldn't solve the odd performance issues I get then.
      I thought it may be a way to create sort of compressed controls.
      Its still worth taking a look at I suppose.

    • @zopenzop2225
      @zopenzop2225 2 роки тому

      @@jakezepeda1267 Most of us don't use it much though, unless you really need it. Won't solve any major issues but worth taking a look at.

  • @OzzFan1000
    @OzzFan1000 4 роки тому +4

    Thanks for this video! As a newcomer to C# I was wondering which I should focus on creating and what the pros and cons were of each. This video explains everything quite clearly. Thanks for that!

  • @DaNoob_777
    @DaNoob_777 3 роки тому +3

    Thanks!

  • @MukundanP
    @MukundanP Рік тому +1

    I have been confused about the differences between WPF and WinForms for years. This video presents all the complexities of these technologies so clearly and precisely. Thanks a million to Tim.

  • @lixin5169
    @lixin5169 5 років тому +14

    memo:
    1. UWP will be the first to fade away
    2. WinForm will still work for a long time
    3. WinForm/WPF will not be cross-platform
    4. Xamarin will be the cross-platform desktop UI in the future
    5. .NET framework will die, 4.8 is the last version, because it will not be cross-platform
    6. .NET core and Xamarin will merge into .NET 5
    7. WinForm/WPF will migrate to .NET core/5
    8. Default choice for desktop UI framework is WPF, while Console is still useful for automation, and WinForm for RAD
    9. .net framework is still worth learning, because there are small differences between it and .NET core

    • @alokbhardwaj2201
      @alokbhardwaj2201 5 років тому

      I believe that desktop UI will die soon. It will be responsive web application which provide UI interface in desktop also.

    • @lixin5169
      @lixin5169 5 років тому +2

      @@alokbhardwaj2201 well, IMO, for the public consumers, maybe desktop app will die (not very soon, for years maybe), but for millions of business/industry users, it won't, cause there're so many apps runs on PCs, which need much more access to OS resources, and many many devices are connected to PC, they mainly can only be controlled by desktop apps. while i do know that many companies are trying to migrate their desktop apps to web apps, this process won't be done for years and for every app.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +3

      I don't foresee the death of the desktop UI anytime soon. Look at it this way: when you have a desktop UI, you are running a distributed computing system. You are offloading work onto each client's machine. If you go back to the web, that mostly goes away (yes, you can do some client-side processing but that greatly increases your network bandwidth and lowers response time). It doesn't make sense to get rid of desktop applications. However, that doesn't mean that desktop UIs won't change. I just don't expect a major change in the next few years at least.

    • @llothar68
      @llothar68 5 років тому +1

      @@alokbhardwaj2201 No it will not web apps suck so terrible for fast apps. And the features are still weak as hell. Look how good macOS desktop apps are. They don't use DOM because it's terrible slow and it's so fat.

    • @gavinw77
      @gavinw77 5 років тому +2

      @Mike Doonsebury I completely agree with this, web apps are really bad, they crash, they behave in weird ways, they work differently in different browsers. And the performance is noticeably poorer. Whoever says web-apps are the future are hoping for a pretty poor future.

  • @disruptive_innovator
    @disruptive_innovator 5 років тому +2

    Bless you for this. I've slowly developed an intuition of when to use these frameworks but going over tutorials and the MS documentation especially never laid out each tool's purpose and limitations clearly like you have done. very helpful

  • @wubbsy
    @wubbsy 3 роки тому +7

    I switched from WinForm to WPF and I can't be happier. I come from web frontend development and when seeing XAML I felt right at home. Just a few different words but I could use the same logic. UWP was just too restrictive for our purpose with all the sandboxing.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      Great!

    • @pauldriscoll6319
      @pauldriscoll6319 3 роки тому +1

      I love WPF but MVVM thinking is still a struggle and find i use the power of a much more free GUI but still code old school.

  • @BillyLambert-vz4gq
    @BillyLambert-vz4gq 11 місяців тому +1

    As usual Tim C. gives the insight and answers we're really looking for

  • @RollinShultz
    @RollinShultz 5 років тому +4

    When I discovered WPF I naturally gravitated to it. I like XAML and the freedom it gives us to do amazing things. As to slow development, I can make a great looking and simple form in an hour and I am not a professional developer. I wish everyone would use it because softwares especially desktop softwares could have stunning interfaces. 3D desktops would come into existence.

    • @SimpMcSimpy
      @SimpMcSimpy 5 років тому +1

      "I wish everyone would use it because softwares especially desktop softwares could have stunning interfaces"
      Honestly, I prefer my applications are fast and have low memory footprint, which WPF application are not.

    • @RollinShultz
      @RollinShultz 5 років тому

      @@SimpMcSimpy That's OK to each their own. In a case such as yours maybe C++ is the best solution because Idk any programming medium that is faster and better at memory handling. Then there is basic embedded C for those things such as high tech vending machines. Very compact and performance focused.
      The thing for me is I like graphic interaction. With WPF and possibly in future something even better, we could have desktop interfaces that go so far as to leverage multiple cpus and gpus.
      Lets say you are a fan of puzzle boxes. Your desktop theme could use a 3D puzzle box that rotates 360° and animates with sliding and rotating parts etc. making for some cool effects. For some people that wins over compact format. Besides there is no reason such a theme should be slow as long as there are levels of adaptation to the current hardware, meaning just like in video gaming, you can pick sliders for speed vs performance.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      Every UI decision should be made based upon the project requirements and the team doing the work/supporting it. That's why we have the options we do. I really don't want a one-size-fits-all solution because they never do.

    • @RollinShultz
      @RollinShultz 5 років тому

      @@IAmTimCorey I see your points. However software development seems to be trending like politics. Every politician wants to get their name on a bill/law. Likewise so many programmers years on, want to create their own new language as if we don't have enough already and the worst thing about that is that HR people want new hires to know them all.

  • @ohmyohmyohmy2
    @ohmyohmyohmy2 5 років тому +2

    Fantastic analysis, Tim. Really wonderful stuff. Would like to see a "web showdown" for sure - to me, the number of options is even more bewildering than on the desktop side.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      I'll add that vote to the list. There are a lot of options out there. It does seem like a similar video might be helpful. It would give me an opportunity to clear up some confusion about non-C# things too, like Angular, React, Vue, etc.

  • @damiansuess
    @damiansuess 5 років тому +4

    Correct, WinForms is NOT DEAD. WPF is also, NOT DEAD! This is a huge pain-point in our office with a lot of misinformed developers and managers. Well done on the shout-out to Xamarin too

  • @ramigamal6637
    @ramigamal6637 5 років тому +2

    Thank you Tim,
    I was confused between them, and now I know what I will do.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      You are most welcome. Thanks for watching.

  • @karantica3058
    @karantica3058 5 років тому +6

    I think the next move for Microsoft should be a cross platform GUI.
    In today's world, doing native development is very expensive (time + cost).
    Microsoft needs to build a cross platform GUI that works every where (including the Browser).

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      Blazor might be a solution for some of that. Mono might be another. But I agree, it would be great to have a .NET Core-style UI that would work cross platform. That's really difficult to pull off though. Lots to work through.

  • @Old.Man.Of.The.Mountain
    @Old.Man.Of.The.Mountain 5 років тому +2

    At two different companies now, I have quickly shown Business Analysts how to use Visual Studio and WinForms to create mockups.. and fine-tune them based on user feedback. This greatly aided in their requirements gathering process. It also greatly allowed us developers to focus on ongoing dev work.

  • @Benexdrake
    @Benexdrake 3 роки тому +9

    For me as C# Noob, i like Winforms, on the way to make my first Program.

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +1

      Great to hear and welcome to programming and Tim's community. We appreciate you chose to share your coding journey with us.

  • @niksatan
    @niksatan 5 років тому +2

    dude you read my mind, exactly video what i was looking for and topics i was confused about, thanks!

  • @GeminiLearning
    @GeminiLearning 5 років тому +9

    Hi Tim. Much thanks for this in depth comparison.
    Please also do ASP. NET web frontend options eg ASP. NET Core MVC vs razor pages and also angular and react

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +4

      I will add them to the list. Thanks for the suggestions.

  • @standman007
    @standman007 3 роки тому +2

    A few of my customers have application done on Powerbuilder. This video was helpful for me to take the Decision. Thanks very much Tim

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +1

      Thanks for watching. I spent many years testing Powerbuilder apps.

    • @standman007
      @standman007 3 роки тому

      @@tomthelestaff-iamtimcorey7597 I have 2 choices. One is to maintain the Powerbuilder app or recreate in dot.net core. These are small businesses and can you believe they are still using an app done in 1998/2000

  • @sevensolutions77
    @sevensolutions77 5 років тому +5

    Very good comparison.
    But i don't think that XAML produces so much overhead or large files.
    You do not need to style each button separately, thats why you create ResourceDictionaries. It's just like css, but it works :P
    Once you've built your own small framework, you're very quick to develop new applications.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      When you build your own framework, you can quickly get larger resource dictionary files. Your forms aren't as big but you have more places to look to fix things.

  • @qwerughweiugrwiehrg
    @qwerughweiugrwiehrg 4 роки тому +1

    Thanks for this, and thanks for the channel! Longtime developer, and started C# six years ago; I use it exclusively now. Just looking through your topics has me lined up to go to school for the deeper aspects like interfaces, async/await, etc. Great stuff.

  • @graffaelv
    @graffaelv 5 років тому +7

    I am interested in seeing a video comparing the Web based Microsoft stacks. Web Forms, Razor Pages, Blazor, etc.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      I'll add your vote to the list. Thanks!

    • @graffaelv
      @graffaelv 5 років тому +1

      @@IAmTimCorey Thanks Tim! I primarily maintain Web Forms intranet apps but I am looking for the right solution to develop the next generation of apps for my company. The biggest pain point I see is that Web Forms offers rich UI controls however Microsoft does not seem to offer that in it's updated stacks. You have to rely on JavaScript. Blazor I understand may change that. Excited for the future!

  • @siddharthshinde4480
    @siddharthshinde4480 4 роки тому +1

    Wow! Finally, something that I was looking for. I was wondering for a long time if my WinForms & WPF experience is worthless, but I am relieved to know that it's not. Thanks for making this video.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      You are welcome!

    • @siddharthshinde4480
      @siddharthshinde4480 4 роки тому

      @@IAmTimCorey I explored your channel today and subscribed to it immediately. This relationship gonna be long lasting for sure.
      Your work is really amazing and more power to you.

  • @SimpMcSimpy
    @SimpMcSimpy 4 роки тому +7

    WPF sounds great in theory, but most companies are not willing to use it. I worked for 3 different telekom companies during past 12 years and nobody there is using WPF.
    QT or WinForms, that is the choice they have. Most programmers are not willing to spend countless hours learning just another framework that will be obsolete in near future (just like MFC, ATL, WTL, WCF, Silverlight, XNA ... and countless others).
    I am happy Microsoft realized the importance of WinForms and decided to support it in .NET Core. It would be great if they enhanced WinForms with new releases or created something similar around the same idea.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +3

      Well, the curtain is dropping on WinForms because of its limitations. At this point, the continued support for WinForms is a lifeline to give people time to move off the platform. WinForms will not last forever. Whether companies like it or not, XAML is the future. .NET MAUI is about making Xamarin the cross-platform desktop application of the future.

    • @DAG_42
      @DAG_42 4 роки тому +1

      I use WPF for my indie video game development... for UI - not the real game. My day job / corporate work is +90% WinForms... which I think makes sense because our internal Windows-only apps have one main requirement -> get development done ASAP

    • @SimpMcSimpy
      @SimpMcSimpy 4 роки тому +2

      @@DAG_42
      In .NET 5.0 WinForms got ton of UI and performance updates. Most controls now take take far less memory etc.
      IMO WinForms has huge potential (even it's very old techn). Had Microsoft implemented DirectX into WinForms most people would have never touched WPF.

    • @46I37
      @46I37 3 роки тому

      @@IAmTimCorey Winforms may be dropped in the future, but we can use VS Express 2017 (the last free VS for commercial use) forever. Winforms is essentially feature complete for internal business CRUD applications.

  • @lakshman85
    @lakshman85 3 роки тому +2

    Thanks

  • @septupleaccretion5834
    @septupleaccretion5834 5 років тому +5

    It is kind of ironic how WPF can animate a smooth dropdown shadow effect exactly under my custom created (from data points) curve, but figuring out how to properly draw the curve is not trivial at all (turns out you should use StreamGeometries updated outside of OnRender, and even then it is buggy, as the curve disappers if the window is reloaded). I'm sure someone has mentioned this already, but it sure is true that WPF makes hard things easy and easy things hard.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      Yeah, there's definitely some quirks.

  • @rastaarmando7058
    @rastaarmando7058 26 днів тому

    Thank you for the insightful review. I am still getting my head around this .Net and .NetCore stuff.

  • @edwwsw
    @edwwsw 5 років тому +9

    I really don't agree is Tim's assessment that a WPF application takes longer to develop than WInForm. If you do it "right" you've abstracted all of the UI styling into a themes, which BTW you can buy/find for free. So you should not be spending time fretting over your button shading, so to speak.
    You have essentially the same RAD layout tools in WPF as WinForms. The only reason to consider WinForms in my opinion is legacy development.

    • @sigma_z
      @sigma_z 5 років тому +1

      It seems like the presenter should not be making videos like these especially when they are not an expert in the field of any of these technologies and even more so, the very apparent lack of experience in developing anything Enterprise. I mean, WPF is one of the top go to enterprise technology for desktop applications. There's a reason why it's has stood the test of time. As they say, those who can't, teach. But seriously, the presenter should not even do that!

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +3

      @Underground Pianist - you genuinely made me laugh. I've got over 20 years experience in the industry, from before .NET was even a thing. I've consulted for global organization, created thousands of applications, and talked to both industry leaders and Microsoft developers. The common theme I've both seen and heard is that WinForms is still heavily used and while WPF has made good inroads in certain industries and organizations, it has not "killed" WinForms.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      @Eddie Wyatt - WinForms was developed with the concept of drag and drop. WPF "can" do that but shouldn't. Yes, there is a lot you can do to make your process more efficient but starting from scratch with no supporting material, dragging a button on the form is quicker than setting up a grid, placing a button tag at the right spot and filling in the necessary properties.

    • @sigma_z
      @sigma_z 5 років тому

      @Barry Manilowa ”Every man (or woman) is in someway my superior, from that I learn.” Emmerson

    • @sigma_z
      @sigma_z 5 років тому

      @@IAmTimCorey It's a pointless ping pong flurry of messages. I too have almost 20 years commercial experience with many global companies around the world. At the end of the day, I have my opinions and you have yours. It's a good business model you have, teach, make money 🤑. Honestly not found much of your materials useful to me, I am sure though there will be something. I'm not a coding genius or guru. maybe my experience has helped me out a lot but I've made a lot of mistakes too.

  • @vinnypassmore5657
    @vinnypassmore5657 2 роки тому +2

    Super cool talk at a level most people can understand, thanks Tim for sharing.

  • @troymitchel4790
    @troymitchel4790 5 років тому +10

    A modern WinForms with CSS driven styling for the UI would be awesome.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +4

      In theory I agree, although CSS can be a pain. The key is that I don't want something that will be different than the "true" thing. So it would have to be true CSS, not "CSS that we then tweaked to work the way we want it". That's how we got into the XAML mess. XAML in UWP, WPF, and others are all different. That's not a good plan.

  • @Layarion
    @Layarion 5 років тому +2

    58:20 "web showdown" yes, this video was fantastic and I need more like it.

  • @ElizabethGillen
    @ElizabethGillen 4 роки тому +3

    Hi! I'm a little confused about .NET Core + WPF. I've seen that .NET Core now supports WPF, but a WPF application can still never be cross-platform. So if the big advantage of .NET Core is that it's cross-platform, but WPF can never be cross-platform, what's the point in supporting it? Is there a truly cross-platform stack using .NET Core and a GUI? Any thoughts on AvaloniaUI?

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +4

      The benefits of .NET Core for WPF and WinForms is speed. .NET Core runs MUCH faster than the .NET Framework. Just upgrading code from .NET Framework to .NET Core without any other changes will mean speed improvements (how much depends on what the code is but it can be just a bit faster or it could be orders of magnitude faster or it could be somewhere in between).
      Cross-platform desktop apps are coming with .NET 6 (November 2021). There are other projects out there (Avalonia, Uno, etc.) that are doing great things and can be used in the meantime.

    • @ElizabethGillen
      @ElizabethGillen 4 роки тому +1

      @@IAmTimCorey Thanks for the explanation! Really appreciate your time and expertise with all your videos!!

    • @jakobhendrix1753
      @jakobhendrix1753 4 роки тому

      @@ElizabethGillen I'd also argue that another benefit might be for an application that has multiple UIs - so a web app, or a Windows desktop app. In this case, all of the backing logic can be reused without changing anything, and the UIs would be built as their own projects referencing your .NET standard libraries.

  • @tome6776
    @tome6776 4 роки тому +1

    Excellent work on this! This is the first vid from you I've viewed and I'll be checking out a few more. As a seasoned developer (ok - 1st programming job in '78), I currently work as a consultant on enhancements to a WPF app in production, but prior, it was all WinForms. So I'm in the position of development in WPF, support in WinForms and WPF, no to mention firmware support in C/C++. I see first hand the extra work it takes for WPF, vs WinForms, but our UI/UX improvements have been significant in WPF.
    Might have missed which platform is dying - very interested to find out - edit: ooops, as I suspected: UWP at the 32:00 mark. I skipped that section...

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Dying might be a strong word, but if I have to guess at which one goes away first, it will be UWP. It still has years to go before that happens, but it feels less and less relevant.

  • @matthewbagley6132
    @matthewbagley6132 5 років тому +9

    Great comparison!
    I use WinForms even for new client projects. I use third party controls to give the systems a clean and modern UI. I can complete a project in less than half the time that my MVC/Xamarin counterparts.
    Long live WinForms.

    • @Luca_040
      @Luca_040 5 років тому +4

      Poor customers

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +2

      When you find a good groove, you can make things look good and produce them fast. Just be careful that you stay current and don't get stuck in the "if it ain't broke, don't fix it" mode so long that the world passes you by.

    • @carboniits9719
      @carboniits9719 5 років тому +1

      @@Luca_040 Why? Thanks third part controls the UI is improved, and development time in windows form is low (=efficiency, productivity).

    • @matthewbagley6132
      @matthewbagley6132 5 років тому +2

      Carboni its bang on! We use cross platform technologies when it suits the system, but a lot of the time you’re talking about systems that will purely be used by office and production staff running windows on a desktop machine. It’s win win for the customer. Good performance, clean UI and reduced cost.

    • @Giorgi.Japiashvili
      @Giorgi.Japiashvili 5 років тому

      @@matthewbagley6132 Hey, can you specify which third party controls do you use exactly? Also, I'm interested to see how the end result looks. I'm using MaterialSkin, I think it looks a bit better than System controls but it's definitely not perfect. And how do you make your software DPI-aware? I mean, how do you make it look OK regardless of the resolution and size of the user's monitor? I'm writing the location and size of every control as a formula which is dependent only on resolution and/or other controls. It works but it's a lot of work.

  • @mafazpx
    @mafazpx 5 років тому

    Thank you for this comparison. Great insight, listened till the end. It emboldened my love for WPF further...

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      You are most welcome. Thanks for watching.

  • @felipediazcristianismo
    @felipediazcristianismo 3 роки тому +4

    Thanks you, very orienting, informing, it's like a map. Thanks!

  • @nikolayiliev8865
    @nikolayiliev8865 5 років тому +1

    This is one very useful video. It answered so many question about Desktop UIs. For me, personally, will be very interested if you make a video or videos about mobile and web and the comparison for desktop, mobile and web.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      I'll add your vote to the list. Thanks.

  • @rutendomadzenenga4751
    @rutendomadzenenga4751 4 роки тому +3

    your videos are so helpful, you are literally my teacher ever since i have started. Please can you do an example of multiple windows form app like this one but storing the values in an arrays

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      I am not sure what you mean by "storing the values in an arrays".

  • @RayJ1216
    @RayJ1216 4 роки тому +2

    This was WONDERFUL for me. I am trying to get started learning C# and bought a book (Headfirst C#, 2013) and was quite confused by the choice (and wording) about doing the first project. Your explanation was very clear. I learned that they were giving me a choice between WPF and UWP and were recommending UWP for its ability to go to the Windows store. Years later, you can give a good insight about what is and is likely to happen and I'm thus going to choose to do their project using WPF, which seems like the way to go. Since developing a cross platform and mobile-compatible 'game' is a key goal this is just an interim step. But it seems to be a better choice. Apparently you don't teach game development. Too bad. Recommendations?
    Many thanks for your clarity.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I don’t have game dev recommendations, beyond to learn C# well.

    • @ManolitoSnell
      @ManolitoSnell 4 роки тому +1

      Have a look at Unity3D

  • @lostarchangel4039
    @lostarchangel4039 5 років тому +4

    When Microsoft wrote Visual Studio Code, they used Electron+TypeScript/JavaScript.
    Personally, I'm not looking forward to any future where JavaScript might become part of my day-to-day coding life, but now that Microsoft has come along with Blazor, any thoughts on Blazor+Electron+C# and how or if it might fit into the .NET desktop development picture going forward?

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +2

      I think Blazor is a stepping stone (and a really cool one) but I don't think it is the endgame. It is still dependent on WebAssembly, which slows it down. I think true cross-platform desktop UI will be the endgame for desktop apps.

  • @paulmoss4199
    @paulmoss4199 5 років тому +1

    Thanks that was very helpful to me, I used to develop in VB6 many years ago but have been out of the loop for a while. Now I am trying to get back into development but was confused by the options available. Just the right pace for me too.

  • @PaulSebastianM
    @PaulSebastianM 3 роки тому +7

    The question nowadays is more like WinForms vs WPF vs WinUI 3 vs UWP (which is WinUI1/2, right?) vs Xamarin vs MAUI vs Uno vs Avalonia vs ... 💀

  • @djjr43
    @djjr43 5 років тому +2

    Currently I’m suffering the intuitive, useful and productive UWP distribution for LOB apps... Thanks Tim for the video!

  • @leybourne
    @leybourne 3 роки тому +6

    Now with .NET6, WinForms are again a major topic if we don't choose MAUI! Microsoft need to slow down just a tad in their innovations/updates and come up with well-thought-out innovations/updates! We need stable tools. As users, our objective is to get our tasks done swiftly and let the system work for considerably long time.
    The WinForm was a great innovation (for most of us who worked with Clipper at the time)! I've loved the idea since VB/VC++ era. XAML is ridiculous, the worst it could ever be!!
    Microsoft had better keep this simple just as Tim Corry does!!!

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +2

      I’m not sure how WinForms are an issue in .NET 6. MAUI is for cross-platform UIs, which is not WinForms (even the name is firmly embedded in Windows). WinForms are still supported. They just can’t be made cross-platform because they are embedded in Windows.

    • @leybourne
      @leybourne 3 роки тому

      @@IAmTimCorey Hi Tim! It’s rather a topic of discussion than an issue (amongst desktop app developers who are not yet into MAUI). Such discussions usually take place when we get a new version of .NET. It’s primarily on:
      Porting
      WinForms improvement (as well as missing components!)
      There’s no confusion about the platform of WinForms/WPF! Thanks anyway!!!

  • @AmandeepSingh-xk4yv
    @AmandeepSingh-xk4yv 4 роки тому +2

    Great video! A similar web dev showdown would also be really appreciated!

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +1

      I will add it to the list. Thanks for the suggestion.

  • @MadBunnyRabbit
    @MadBunnyRabbit 5 років тому +7

    I've tried both Forms and WPF. AFter few minutes of WPF I immediatly got to like it so much more than Forms and that's why I'm here. It was quite informative and I'm definetly gonna stick with WPF. I just don't understand one thing, how Forms are faster to implement? As someone who's just learning - WPF is so much faster for me to implement. I don't know, seems strange to me that Forms can be faster to implement.

    • @slor3206
      @slor3206 5 років тому

      Doing WPF right means implementing at least a ViewModel that implements INotifyPropertyChanged. At least this infrastructure step is not required for WinForms which makes the WinForms approach faster than WPF. Don't get me wrong, I'm not saying that not implementing ViewModels is the "better" approach all I'm saying while using WinForms you don't have to implement all that infrastructure stuff.

    • @MadBunnyRabbit
      @MadBunnyRabbit 5 років тому

      @@slor3206 Now I'm intrigued. The tutorial series I fallow already mentioned this concept and how it's hard which is why it's pushed back for a later video. I kinda dissmised it, since I often find supposedly difficult things pretty simple and streightforward, while the supposedly easy things make my brain hurt.
      Without much problems I finished highschool with A in maths, but I struggle with simple additions. No joke I'm sometimes not sure if 5+3 is 8 and I use my fingures to double check 😅
      Anyways, thanks for the answer.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      Jan Roth is correct. WPF has a lot more you need to do to set it up "right". You at least need to place the form items in a grid without absolute positioning (which means no dragging buttons onto a WPF form) in order to gain the benefits of WPF. Doing so slows down the process compared to WinForms, where drag and drop is the only way to go. And yes, you can not follow these best practices and get the same RAD benefits as WinForms. You just make things messier to maintain and improve.

    • @MadBunnyRabbit
      @MadBunnyRabbit 5 років тому

      @@IAmTimCorey I guess soon, I'll see what's up with this view thingy. I can see how maybe doing a less standard or more complicated layout could be a problem. For example I made a calculator where 0 was 2x as wide and enter 2x as tall so I had to make a grid in a grid in a grid, ugh. BUT, I've made a tic-tac-toe game and after I got all the logic right for a 4 by 4, I scaled it up to 10 by 10 in about a minute and I don't believe you can drag and drop 1.4 buttons a second. But that's a very specific case. So yeah, I'm starting to see how it could be problematic but for now it seems like it varies case by case. Still haven't thouched this view something tho, so yeah :] But thanks for the answer.

    • @MadBunnyRabbit
      @MadBunnyRabbit 5 років тому

      @@slor3206 Sooooo... I just did my first view model and I don't understand what do you mean by doing WPF "right." From my understanding it has nothing to do with wpf specifically. If I don't want a well compartmentalized code that I can reuse on any platform then I don't do it. Just like forms. If I want to build in forms and have the app on android I still need to use the view model principles and INotifyPropertyChanged.

  • @francisf.amunde2619
    @francisf.amunde2619 3 роки тому

    Thanks Tim, that was amazing. Happy new year to you sir.

  • @martynadams9942
    @martynadams9942 5 років тому +3

    Disagree with details of your WinForms analysis. I work with small company (started 40 people). We built client / server application using WinForms and runtime design of forms (i.e. not user designed forms but built at run time by the software). Screen size not a problem - we were using 800 x 600, now using 1920 x 1080. No design changes needed. CPU bound - yes, but CPU speed not a problem. Now have 110+ employees and software far more complex - still no problems. WinForms will be our technology for a long time to come.

    • @Rizzan8
      @Rizzan8 5 років тому +1

      Which is a mistake. My company has a few big ass applications written in WinForms. Maintaining it and adding new features is real pain in the ass. Stuff which is fairly easy to do in WPF Mvvm pattern is almost impossible to do cleanly in WinForms.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      The issue isn't whether you can do it or not or whether the limitations are a problem for you or not. It sounds like you actually agree with me on some of the major points I touched on but they don't affect you. That isn't the same as saying they don't exist.
      WinForms is fine to work with as long as you understand the limitations but you do need to realize that at some point Microsoft will stop supporting it. I would encourage you to move to .NET Core 3.0 when it is ready so that your code is more easily portable to a new platform. I'd hate for your company to be stuck on something that becomes obsolete. I've seen that happen quite a few times. Not saying to move anywhere else now. Just saying to not count on WinForms to be a forever solution.

    • @martynadams9942
      @martynadams9942 5 років тому

      I don't disagree with you there - just that WinForms has been underrated by a lot of people. The number of times people have said it's 'dead'. It may be 'functionally stable' but it'll be around for a few years yet. Yes it looks old - but frankly that's a fashion statement. I have yet to see a new wave of software that offers so much more that would make it worthwhile to invest in a rewrite. I did with the old VB, and happily moved to C#. We haven't really found any limitations with the WinForms yet, and C# / .Net is a really nice combination. I agree that starting a new project might require a rethink- but mainly from the logistics POV - e.g. support - more so than functionality. So, how long do you think it will be before 'the next generation' of software arrives and WinForms, WPF, etc. 'dies' (again)? ;-)

    • @martynadams9942
      @martynadams9942 5 років тому

      Must be the style of coding or methodology. We have a big app too and had no problems maintaining it. However, our app is written as a run time interpreter of data fetched from the database, so nearly all the screens write themselves. We don't create new screens so much as create new Tables / Views on the database and the system simply creates new screens on the fly.That usually means we can create a new Table with, say, twenty fields, including some nested views to other tables, and add some custom business rules (a macro language) and go from design to live in half a day. At the moment we're supporting four different databases with the same program.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +3

      Yep, WinForms is definitely underrated. Part of the issue is that newer developers are often attracted to the newest, shiniest tools. It is only through long experience that they come to realize that more than one UI has a place in this world. That was a big motivating factor in creating this video. To show how each UI had a place and a purpose apart from the others. WPF and WinForms do overlap quite a bit, simply because WPF was supposed to be the successor to WinForms. It just didn't do a great job doing so.

  •  5 років тому +2

    Tim Corey, thanks for this videos, your contribution to C# is huge! thanks!

  • @hqcart1
    @hqcart1 5 років тому +4

    Please make a Vid comparing Mobile Apps Development frameworks and their differences! Tanks!

    • @hichamo-sfh177
      @hichamo-sfh177 5 років тому +3

      Specialy xamarin

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      I will add it to the list. Thanks for the suggestion.

  • @niloo195
    @niloo195 4 роки тому +1

    Thanks Tim! I learnt a lot from this video.

  • @responsibleparty
    @responsibleparty 4 роки тому +3

    Thanks for also including Sandboxed in the Drawbacks column for UWP. I converted some C++ applications to UWP so they could be listed on the Microsoft Store. These apps no longer support dropping a file on the icon. And, even after working a couple of weeks with some folks from Microsoft, I could not get the help working for one of the applications. I also had an app that supported DLLs as extensions. But now there is no way to distribute new DLLs as the program installation folder is now basically a black box. Quite frustrating.

  • @ben.thornhill
    @ben.thornhill 5 років тому

    Great analysis Tim! Thanks as always for amazing content.

  • @colin-campbell
    @colin-campbell 5 років тому +3

    Would you ever appear on a Computing-esque podcast? I’d love to hear you on Programming Throwdown - their coverage of C# leaves a lot to be desired... 😬

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +4

      Yep, I'd consider it. I'm also working through the idea of a UA-cam live series to discuss these topics and questions more informally. I'll be doing a few tests for my Patreon people soon.

    • @colin-campbell
      @colin-campbell 5 років тому

      IAmTimCorey
      Looking forward to it!

  • @atmajap6339
    @atmajap6339 3 роки тому +1

    Thanks a ton! ❤️This made things very clear

  • @bezimienny5
    @bezimienny5 4 роки тому +4

    How does the win UI tire into all this? That's what confuses me the most these days

  • @jdrago1968
    @jdrago1968 3 роки тому

    This is one of the best coverages of the various technologies that I have ever come across!

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому

      I’m glad you found it so valuable.

    • @christophergeorge2264
      @christophergeorge2264 3 роки тому

      @@IAmTimCorey I'd have to agree. I'm trying to develop my first app at work and weeding through all the options of platform and language choice is quite overwhelming

  • @andywalter7426
    @andywalter7426 5 років тому +5

    I disagree about WPF being slower development. In my experience, I actually was able to develop faster in WPF. WPF can be for rapid development because of the data bindings. I've created ways to make WPF very fast for quick development. I prefer the WPF because it has better support for bindings. The truth is there are ways to make WPF development not as slow. I actually found XAML easier than the application model for windows forms. I've even did the xaml with straight c# without any designer. Doing a simple stack and grid is actually easy. I doubt windows forms had any kind of stack where you just stack controls in an area.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      WPF definitely has better layout tools. That's where it really shines. The reason why WPF is seen as slower than WinForms is because WinForms is based upon and designed for drag and drop. Using the recommended practices, you can get a form with first and last name fields and a button up and running in less than a minute. You aren't supposed to do that with WPF (you can but it creates a mess of technical debt). That's the reason why WPF is seen as slow. In the long run, WPF can be fast and definitely more powerful.

    • @andywalter7426
      @andywalter7426 5 років тому

      @@IAmTimCorey I actually created something that the first and last names are just 2 lines of code in wpf. I actually do without the designer. With MVVM, its very easy. I would find it harder in Windows Forms because you don't have as much of the bindings. For first and last name for example, just create a view model with first name, and last name. Then hook into the bindings. I am guessing the bindings in windows forms is harder if somebody is doing mvvm.

    • @nathaniel8422
      @nathaniel8422 5 років тому

      it has better binding but when you use third party tools than WinForms is faster than standard WPF. Yes, faster than wpf. So, practically you can do all you need in winforms.

  • @Fauros2
    @Fauros2 4 роки тому +1

    Yeah, it's a very good summary for beginners. Good job!

  • @ElCidPhysics90
    @ElCidPhysics90 3 роки тому +5

    New word: rapplication. I like it.

  • @paulopecegueiro1694
    @paulopecegueiro1694 5 років тому +2

    This is certainly the best information of this topic that I could find on youtube, thank you. Greetings from Brazil
    .

  • @takisbezaitis7741
    @takisbezaitis7741 3 роки тому +3

    Hello, thanks for the great video. I would like to learn C# by making games. Which choice should I use? WinForms or WPF? I don't mention UWP since I understand that it has no bright future. I don't want to mess with Unity. And also is Visual Studio the best choice? Thank you.

    • @tubetimeline
      @tubetimeline 3 роки тому +1

      Hi Takis, if you are looking for game dev using C# you should certainly check out Monogame.

    • @takisbezaitis7741
      @takisbezaitis7741 3 роки тому

      @@tubetimeline Thank you very much. I will check it!

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +3

      Visual Studio is definitely the right choice for desktop development. You can definitely create simple games in WinForms and WPF. WPF probably provides you with more power and flexibility in that area, but both will work. Just note that anything more complex will need to move to Unity.

    • @takisbezaitis7741
      @takisbezaitis7741 3 роки тому

      @@IAmTimCorey Thank you so much for your answer! My goal is to learn C# and having fun at the same time. I can program with Javascript and Python, so I would like to learn a new language. So, I will choose WPF.
      I have a lot of respect for people like you, who help others to learn. Thanks again!!

  • @ajvenable7937
    @ajvenable7937 5 років тому

    Great UI overview presentation! Thanks Tim!!

  • @matterece3164
    @matterece3164 4 роки тому +6

    How about when to use MVC, Razor, Blazor and when to create web apps vs desktop apps.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +3

      Good suggestions. I have that suggestion on the list and I'm working on getting the planning laid out for the videos. I'll increase the priority a bit based upon your comment.

    • @NoelSlevin
      @NoelSlevin 4 роки тому +1

      @@IAmTimCorey I'd like to second the suggestion. I'm just getting started with looking at .NET Core and this is something I've been wondering.

    • @pbooth88
      @pbooth88 4 роки тому +1

      @@IAmTimCorey Hi Tim, I'd like to also add my vote to see a video on this. Thanks.

    • @thomaselser8786
      @thomaselser8786 4 роки тому +1

      Cheers Tim, would be great to have a video on that subject. Need to move on from Webforms and not sure which way to go.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +3

      I just created a course on the five types of ASP.NET Core project types (Razor Pages, MVC, API, Blazor Server, and Blazor WebAssembly/Client), when to use each, and how to use each (we create 5 total start to finish projects, one for each type): www.udemy.com/course/which-aspnet-core/?referralCode=668AC17A9CEDF2067E69

  • @harag9
    @harag9 5 років тому +2

    Many thanks for taking the time to do this talk, much appreciated - I'm still a winform/.net developer and not really looked at other techs (due to job). However I'm interested in a Xamarin talk.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      Sounds good. It is coming later in the summer (July/August or so).

  • @AttitudeGames
    @AttitudeGames 5 років тому +3

    I also think UWP will fade out due to its limitations, Microsoft did the same for XNA Framework.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +2

      We will see.

    • @AttitudeGames
      @AttitudeGames 5 років тому

      @@IAmTimCorey Well Console will be here for a while so that servers can run headless apps like you said for automation, I use Console Apps for the Front End of all my Game Servers using Threads which works great.
      Not really used WPF as yet so I am new to that which looks strange due to using WinForms for years.
      I have had some issues with WinForms like with the ListView control with loads of items in it where it would stutter (even with double buffer enabled)
      I did take a look at UWP but saw its limitations and walked away due to being previously burnt with XNA.
      TBH I thought WinForm would be the one to go due to I think it was based of Win32 / MFC which is old LOL
      But yeah we will see.

  • @t.m.7801
    @t.m.7801 5 років тому

    Awesome, as someone just coming into the MS ecosystem, it's been really confusing trying to make sense of everything. Especially because everything is in the middle of some drastic changes. You really helped clear some of that up here.
    What would also be useful is a video like this that explains all the differences between things like the .NET standard, .NET core, the different compilers, are there differences between .NET and ASP.NET, Xamarin, etc. Maybe it's too soon for that until things become more clear, not sure. Thanks again, you've saved me hours already.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      Glad you enjoyed it and thanks for the suggestion.

  • @mr.RAND5584
    @mr.RAND5584 5 років тому +5

    Winform lacks layout container. Wpf has awesome layouts.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +4

      I would agree with that.

    • @roycelithgo3968
      @roycelithgo3968 5 років тому

      IMHO I prefer html table layout. Not a big fan of having to specify rows and columns for grid layout.

  • @ArveEriksson
    @ArveEriksson 5 років тому +2

    I use a DOS-based LIS at work. (Laboratory Information System - basically interacting with a remote database over VPN.) It's great, it's rock solid, it's user friendly, and one of the ugliest bits o' software I've ever used. 10/10, would use again!

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      lol, yeah, you can do a lot with a Console UI. Just don't ask them to be pretty (unless you do some funky stuff with ASCII art).

  • @philg4116
    @philg4116 2 роки тому +3

    BUT, three years on, ONLY UWP apps can use the store payment system/api. You have to BRING YOUR OWN ECOMMERCE and CDN for win32…Thank you so VERY much, Microsoft.

    • @gabrielgracenathanana1713
      @gabrielgracenathanana1713 2 роки тому

      we should also thank tim, right? -- I will unsubscribe. Prediction is King. Have Tim predicted, in any whatsoever sense? NO. after listening him, we trust MS, blindly, more,, isn't that true? He put more (blind) trust in our mind, when we really needed more doubts. He is NOT offering people productive ideas. He is basically saying, join us this old VB6 guys/girls, and waiting other people to bury us.

  • @thetruthsayer8347
    @thetruthsayer8347 5 років тому

    I jumped in into .net/ c# learning Asp.net core and I spent little time doing console application just because I wanted to build something I could see and show off😂. I suddenly began feel overwhelmed and frustrated when I started seeing a lot of Winforms and WPF tutorials that did things a differently than what I was used to. This video helps answer a lot of the questions I have about the .net framework without having me going to do a lot research. Thanks for all you do...And please the one for .net web framework

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      I'm glad this helped. I'll add your vote to the list.

  • @SigSeg-V
    @SigSeg-V 2 роки тому +4

    Whoa whoa whoa before you say there if only a "good" chance you'll be using WinForms, my workplace is rather small but our UI is built on MFC still!

    • @IAmTimCorey
      @IAmTimCorey  2 роки тому +3

      lol, sorry, maybe I was being too optimistic.

    • @ltklaus5591
      @ltklaus5591 2 роки тому +1

      I'm in a large company that sill does the main UI in MFC. I work on a plugin for the main app, and I'm doing my work in WPF. We have an ActiveX container in the main app that hosts my WPF window. It's painful. Small changes to the main UI seem to take forever to do, as compared to how fast we can change our WPF UI.

    • @SigSeg-V
      @SigSeg-V 2 роки тому

      @@ltklaus5591 yep, apparently our front end is nearly impossible to change basic things such as converting a spreadsheet control to accept double instead of int. Not sure what is stopping that happening but I'm not going harrass the guy to change it because 99.9% of the time we only need an int

  • @IanWitham
    @IanWitham 5 років тому +2

    There's also Avalon UI. It's a clone of WPF (for the most part) and is actually cross platform. If I were to make a cross platform application in .net targeting the desktop I'd look at this rather than Xamarin, which is still very mobile focused

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      That's a possibility, although not Microsoft controlled.

    • @IanWitham
      @IanWitham 5 років тому

      @@IAmTimCorey maybe one day 😂

    • @ivanbolatti
      @ivanbolatti 5 років тому +1

      You mean "Avalonia". "Avalon" was actually Microsoft's codename of WPF.

  • @sirius4k
    @sirius4k 5 років тому +4

    There's no such thing as too many options. However there is too little documentation. Or a very general, glancing documentation of basically stating that this or that function exists.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      That's the downside of too many options (or at least one of them): poor documentation. The more features you have and the more often they change, the harder it is to keep the documentation relevant. That's part of the challenge of being a developer. The good news is that the docs are getting MUCH better and we can contribute.

    • @llothar68
      @llothar68 5 років тому

      @@IAmTimCorey I don't see how they are getting better. But Apple killed it all. Their documentation just went down three magnitudes when they throw away all old docs including pdfs of their guides. But what is lacking everywhere are detailed books. Physical books. MSPress was once a thing, now they only focus on Azure shit i will never use.

    • @adaai2384
      @adaai2384 5 років тому

      Of course there is such a thing as too many options. You have three teams inside Microsoft building three frameworks with the same goals. Surely it would be better for them to pool all their resources into a library that works for every project?

    • @sirius4k
      @sirius4k 5 років тому

      @@adaai2384 This is not really what I was talking about. Many options is still better than too few, or not enough. You're talking about some crappy project management in MS.

  • @charalampost769
    @charalampost769 4 роки тому

    Thank you Tim, you are helping me so much!

  • @happywanderer5632
    @happywanderer5632 5 років тому +3

    Microsoft have really dropped the ball on RAD UI development. WinForms is very powerful and there is no reasonable alternative at the moment. My hope is that they redevelop WinForms for Cross-Application development. I do disagree with the idea that you can develop the code separately from the UI. Sure, the business logic goes into it's own object layer, but a truly interactive UI needs code-behind-forms. If you're building a web page, sure you can get away with moving the code into a separate layer because your UI is dumber than a mud sandwich, but a highly interactive UI, that changes rapidly according to the choices that the user is making, requires code embedded in the UI.

    • @martynadams9942
      @martynadams9942 5 років тому

      I agree. Our app is built around a fat client / fat server (2 tier). Two languages (C# and SQL) makes logistics easier than five or more (C#, JavaScript, HTML, CSS, SQL, etc.) and we don't bind our controls automatically (unless they're _very_ basic). This did mean some up front development work in creating custom controls that do the job (e.g. grids) but the result has paid dividends. So we have 'Comment' controls (multi-line text boxes) that the users can set foreground/background colour themselves. They can make them red simply by putting and exclamation as the first character - simple and effective and they love it. A 'Postcode' field includes a button to popup a Google map and calculates the travel route from the office. I have seen really crap WinForms apps - but that's true of any language/environment. A major factor is getting the methodology right from the start and WinForms is very flexible if done correctly.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +3

      WPF can be as RAD as WinForms. It just takes the initial investment of time and energy in creating the tooling for your specific business. Yes, it isn't drag and drop like WinForms and that may slow you down but it doesn't have to. As far as redeveloping WinForms for cross-platform, I don't see that happening. WinForms is way too embedded into the Windows ecosystem. It would take a ground-up rewrite. That would mean creating a new tool that looked like WinForms but wasn't. I doubt that will happen. Addressing the code separation, I was referring to front-end design patterns like MVVM or MVC. WPF is designed to work in a MVVM-style framework easily, which makes code separation easier (still in the UI layer). That allows for much higher levels of testability and looser coupling. The code still affects the UI. The difference is how coupled it is to the UI. In the case of WinForms, it is directly tied to the UI. In the case of WPF, it can be loosely coupled. That's what I'm referring to. All UI has code behind it in some way in order to make it work. However, you don't need to "embed it in the UI" and create high levels of coupling.

  •  5 років тому +1

    This is my thought, like Tim says, if I am creating an app for desktop, I thing I don't need it on XBOX, so having that in mind, for mature, easy and documentation I think the way to go is with WinForms :-)

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      Just make sure to keep them up to date with .NET Core 3.0 when it comes out later this year.

  • @Eldering
    @Eldering 5 років тому +5

    UWP does not use .NET Framework, as matter of fact I think it was the first .NET Core platform.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому

      I think you are right. It didn't used to be but it is now. It isn't cross-platform though because it is entirely based around Windows APIs.

  • @petrutarabuta5617
    @petrutarabuta5617 4 роки тому

    Extremely helpful analysis. Thanks!

  • @DAG_42
    @DAG_42 4 роки тому +3

    I'm mostly WinForms, and do WPF when things need to be pretty (including scaling to user's screen etc). Since most of my apps are internal business use, this makes my productivity quite high.
    I find WPF tedious... I guess maybe it's just my lack of learning it deeply. But every time I need to figure out how to do something slightly non-standard, it's a nightmare hole of discovering new horrors in the world of WPF, and I'm always amazed at how many lines of code are required for simple things.
    I wish they'd just 'patch' WinForms in the new .NET 5.0 so it uses hardware acceleration, scaling and some other WPF tricks... for me WPF seems weirdly redundant and on the edge of uselessness.
    UWP... never have / never will

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому +2

      WPF is a lot more difficult because of the options you have (relative positioning, etc.) It is the case of too many options making the product more difficult. I get that. Unfortunately, I don't see a better solution for getting the power we want but the ease of use we desire. Improving WinForms is a tough option, because it is so old and tied so directly to Windows and certain APIs.

    • @46I37
      @46I37 3 роки тому +1

      I hear your pain. I tried a WPF app once and though it was like three times the work for some minor GUI prettiness. For internal business apps displaying lots of high density grid data, I think WinForms is still the best.

  • @umarshah5113
    @umarshah5113 3 роки тому +6

    Could you do a video on WinUI 3.0

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +4

      Thanks for the recommendation. I have added it to Tim's list of viewer suggestions for videos.

    • @mching4473
      @mching4473 3 роки тому +1

      @@tomthelestaff-iamtimcorey7597 while we're at it, I'd also love to hear Tim's thoughts on Microsoft.Toolkit.MVVM

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 роки тому +2

      @@mching4473 Added to the list, Thanks.

  • @RidgecrestKillaz187
    @RidgecrestKillaz187 3 роки тому +1

    Great video! I may have missed it but I wish you did a comparison or a short demonstration/explanation of the designers: WinForms designer vs. WPF designer in VS. I thought that it's widely known and agreed upon that the designer for WinForms in Visual Studio is better and more functional than the WPF designer, even in Blender? Maybe things have changed since I last tried it out. I'm curious - thoughts?

  • @roycelithgo3968
    @roycelithgo3968 5 років тому +4

    For my company, WinForms RAD equates to faster delivery time and reduced development costs vs WPF. We still have no compelling reason to chose WPF over WinForms.

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      Yep, that's understandable.

  • @yefriencarnacion4512
    @yefriencarnacion4512 3 роки тому +1

    great video, thank you for everything

  • @hTfvmGNrIZ
    @hTfvmGNrIZ 2 роки тому +5

    anything user-interactive != automation. anything user-interactive == headache 😅

    • @IAmTimCorey
      @IAmTimCorey  2 роки тому +2

      User interaction really does cause problems.

  • @pierreplourde
    @pierreplourde 3 роки тому +2

    Your discussion of UWP reminds me of what happened to IBM’s OS/2 Warp.

  • @AlbertoMandlate
    @AlbertoMandlate 5 років тому +7

    UWP isn't .Net framework. UWP is .net core

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +2

      Correct, sorry, I misspoke. I believe the Metro apps were .NET Framework but UWP moved to .NET Core.

    • @vandeljasonstrypper6734
      @vandeljasonstrypper6734 5 років тому

      UWP have "nothing to do" with dotnet core
      UWP is WinRT base and yes "it is .NET Framework"

  • @foxabilo
    @foxabilo 3 роки тому +1

    What's needed is an upgrade to WinForms to make it pretty and add the visual / scalable bells and whistles as an option.

    • @IAmTimCorey
      @IAmTimCorey  3 роки тому +1

      They've done some of that with XAML islands, which is a way to bring UWP controls into WinForms (and WPF).

    • @foxabilo
      @foxabilo 3 роки тому

      @@IAmTimCorey Ahhh, the more you know, cheers.

    • @richardhight4430
      @richardhight4430 3 роки тому

      AFAIK WinForms is not been marked obsolete but is only receiving bug and security fixes.

  • @mfajrin6010
    @mfajrin6010 4 роки тому +3

    Microsoft has too many framework . And now like Winui , fluent ui react , maui , and uno . It makes me confused , which one I should try for future-proof framework.

    • @IAmTimCorey
      @IAmTimCorey  4 роки тому

      Not all of those are Microsoft's frameworks. As far as which one is future-proof, none of them. Not really. We don't know what the future holds. As far as which one is most likely to succeed, probably MAUI since it is directly supported by Microsoft. .NET 6 (which will be MAUI) will be supported for three years (guaranteed by Microsoft). That's about as good as it gets.

    • @Majestic1987
      @Majestic1987 4 роки тому

      Funny. Take a look at web development. Should change your mind...

    • @alyia9618
      @alyia9618 4 роки тому

      It is fun that MAUI is based on Mono WinForms. We thought Forms was a goner, instead... Oh my, MS is such a mess on GUI frameworks.

  • @digitalghost7381
    @digitalghost7381 5 років тому +2

    Nice work!
    I would also enjoy a video more general.. MFC, winapi, WPF ... Also web :)

    • @IAmTimCorey
      @IAmTimCorey  5 років тому +1

      Thanks for the suggestion.

  • @boskovaskovic
    @boskovaskovic 4 роки тому +3

    You think WPF is slow? Try build something using javafx.