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

  Рет қаралды 263,776

IAmTimCorey

IAmTimCorey

Күн бұрын

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.iamtimcorey.com/
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

Пікірлер: 948
@QuadraAce
@QuadraAce 5 жыл бұрын
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 жыл бұрын
You are welcome. I'm glad it is helping.
@yanwo2359
@yanwo2359 4 жыл бұрын
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.
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
You are welcome.
@diyguild1327
@diyguild1327 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 жыл бұрын
Awesome! Glad it was helpful!
@johnwolnisty7511
@johnwolnisty7511 4 жыл бұрын
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.
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
Thank you!
@ItsAStuckPixel
@ItsAStuckPixel 3 жыл бұрын
almost 2 years after this is released and im still learning something from it. love your content!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Excellent!
@davidiverson
@davidiverson 3 жыл бұрын
Tim, as always thanks for breaking down something that gets overcomplicated and showing the realistic use cases for each of these UI tools!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
My pleasure!
@disruptive_innovator
@disruptive_innovator 5 жыл бұрын
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
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
I'm glad it was helpful.
@fallonmassey4714
@fallonmassey4714 3 жыл бұрын
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!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Agreed
@ind4mnl4t0r
@ind4mnl4t0r 5 жыл бұрын
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.
@lixin5169
@lixin5169 5 жыл бұрын
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 жыл бұрын
@@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 жыл бұрын
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 жыл бұрын
@@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 жыл бұрын
@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.
@niksatan
@niksatan 5 жыл бұрын
dude you read my mind, exactly video what i was looking for and topics i was confused about, thanks!
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
Excellent!
@RalfsBalodis
@RalfsBalodis 3 жыл бұрын
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 3 жыл бұрын
Thanks again and again. You truly help many of the other students
@OzzFan1000
@OzzFan1000 3 жыл бұрын
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!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Great!
@colonial345
@colonial345 3 жыл бұрын
One of the best videos on this subject! Thanks a lot.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad it was helpful!
@LuzuVlogsGamer
@LuzuVlogsGamer 11 ай бұрын
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.
@IAmTimCorey
@IAmTimCorey 11 ай бұрын
Thank you!
@qwerughweiugrwiehrg
@qwerughweiugrwiehrg 4 жыл бұрын
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.
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
Great to hear!
@felipediazvlog
@felipediazvlog 2 жыл бұрын
Thanks you, very orienting, informing, it's like a map. Thanks!
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
You are welcome.
@zopenzop2225
@zopenzop2225 2 жыл бұрын
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 2 жыл бұрын
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 Жыл бұрын
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 Жыл бұрын
@@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 Жыл бұрын
@@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 Жыл бұрын
@@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.
@ramigamal6637
@ramigamal6637 5 жыл бұрын
Thank you Tim, I was confused between them, and now I know what I will do.
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
You are most welcome. Thanks for watching.
@francisf.amunde2619
@francisf.amunde2619 2 жыл бұрын
Thanks Tim, that was amazing. Happy new year to you sir.
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Happy new year!
@rutendomadzenenga4751
@rutendomadzenenga4751 4 жыл бұрын
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".
@wubbsy
@wubbsy 3 жыл бұрын
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 жыл бұрын
Great!
@pauldriscoll6319
@pauldriscoll6319 3 жыл бұрын
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.
@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.
@vinnypassmore5657
@vinnypassmore5657 2 жыл бұрын
Super cool talk at a level most people can understand, thanks Tim for sharing.
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
You are welcome.
@GeminiLearning
@GeminiLearning 5 жыл бұрын
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 жыл бұрын
I will add them to the list. Thanks for the suggestions.
@PaulSebastianM
@PaulSebastianM 2 жыл бұрын
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 ... 💀
@standman007
@standman007 3 жыл бұрын
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 жыл бұрын
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
@ohmyohmyohmy2
@ohmyohmyohmy2 5 жыл бұрын
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 жыл бұрын
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.
@Benexdrake
@Benexdrake 2 жыл бұрын
For me as C# Noob, i like Winforms, on the way to make my first Program.
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 2 жыл бұрын
Great to hear and welcome to programming and Tim's community. We appreciate you chose to share your coding journey with us.
@responsibleparty
@responsibleparty 4 жыл бұрын
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.
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
That is frustrating.
@ben.thornhill
@ben.thornhill 5 жыл бұрын
Great analysis Tim! Thanks as always for amazing content.
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
Thanks!
@atmajap6339
@atmajap6339 2 жыл бұрын
Thanks a ton! ❤️This made things very clear
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
You are welcome.
@graffaelv
@graffaelv 5 жыл бұрын
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 жыл бұрын
@@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!
@karantica3058
@karantica3058 5 жыл бұрын
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 жыл бұрын
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.
@ajvenable7937
@ajvenable7937 5 жыл бұрын
Great UI overview presentation! Thanks Tim!!
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
You are welcome.
@siddharthshinde4480
@siddharthshinde4480 4 жыл бұрын
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.
@septupleaccretion5834
@septupleaccretion5834 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 жыл бұрын
Yeah, there's definitely some quirks.
@edwwsw
@edwwsw 5 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@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 жыл бұрын
@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.
@niloo195
@niloo195 3 жыл бұрын
Thanks Tim! I learnt a lot from this video.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad to hear it!
@paulmoss4199
@paulmoss4199 4 жыл бұрын
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.
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
I'm glad it was helpful.
@Mr_Spock512
@Mr_Spock512 4 жыл бұрын
Same here, this video answered a lot of questions about the advantages/drawbacks of WPF applications. As I'm just an old school retired hobbyist, I think I'll remain with WinForms (and Console) UI's.
@damiansuess
@damiansuess 5 жыл бұрын
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
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
Thanks!
@RollinShultz
@RollinShultz 5 жыл бұрын
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 жыл бұрын
"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.
@BillyLambert-vz4gq
@BillyLambert-vz4gq 5 ай бұрын
As usual Tim C. gives the insight and answers we're really looking for
@IAmTimCorey
@IAmTimCorey 5 ай бұрын
Thanks!
@MukundanP
@MukundanP 9 ай бұрын
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.
@IAmTimCorey
@IAmTimCorey 9 ай бұрын
I am glad it was helpful.
@sevensolutions77
@sevensolutions77 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.
@DaNoob_777
@DaNoob_777 2 жыл бұрын
Thanks!
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 2 жыл бұрын
Thank you!
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thank you!
@nikolayiliev8865
@nikolayiliev8865 5 жыл бұрын
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.
@Fauros2
@Fauros2 4 жыл бұрын
Yeah, it's a very good summary for beginners. Good job!
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
Thanks!
@lostarchangel4039
@lostarchangel4039 5 жыл бұрын
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 жыл бұрын
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.
@takisbezaitis7741
@takisbezaitis7741 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 жыл бұрын
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 жыл бұрын
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!!
@charalampost769
@charalampost769 3 жыл бұрын
Thank you Tim, you are helping me so much!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
You are welcome.
@guillermoochoadeaspuru625
@guillermoochoadeaspuru625 4 жыл бұрын
Excellent presentation. Thanks!!
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
You are welcome.
@SimpMcSimpy
@SimpMcSimpy 3 жыл бұрын
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 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 3 жыл бұрын
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 3 жыл бұрын
@@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.
@bezimienny5
@bezimienny5 3 жыл бұрын
How does the win UI tire into all this? That's what confuses me the most these days
@AmandeepSingh-xk4yv
@AmandeepSingh-xk4yv 3 жыл бұрын
Great video! A similar web dev showdown would also be really appreciated!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@petrutarabuta5617
@petrutarabuta5617 3 жыл бұрын
Extremely helpful analysis. Thanks!
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad it was helpful!
@troymitchel4790
@troymitchel4790 5 жыл бұрын
A modern WinForms with CSS driven styling for the UI would be awesome.
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
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.
@ElizabethGillen
@ElizabethGillen 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 3 жыл бұрын
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 3 жыл бұрын
@@IAmTimCorey Thanks for the explanation! Really appreciate your time and expertise with all your videos!!
@jakobhendrix1753
@jakobhendrix1753 3 жыл бұрын
@@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.
@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 2 жыл бұрын
@@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
@AmitSharma-bl1ur
@AmitSharma-bl1ur 5 жыл бұрын
Very Informative presentation I will also like this in terms of web ui
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
Thanks!
@matthewbagley6132
@matthewbagley6132 5 жыл бұрын
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 жыл бұрын
Poor customers
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
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 жыл бұрын
@@Luca_040 Why? Thanks third part controls the UI is improved, and development time in windows form is low (=efficiency, productivity).
@matthewbagley6132
@matthewbagley6132 5 жыл бұрын
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.
@hqcart1
@hqcart1 5 жыл бұрын
Please make a Vid comparing Mobile Apps Development frameworks and their differences! Tanks!
@hichamo-sfh177
@hichamo-sfh177 5 жыл бұрын
Specialy xamarin
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
I will add it to the list. Thanks for the suggestion.
@tome6776
@tome6776 3 жыл бұрын
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 3 жыл бұрын
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.
@paulopecegueiro1694
@paulopecegueiro1694 4 жыл бұрын
This is certainly the best information of this topic that I could find on youtube, thank you. Greetings from Brazil .
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
You are welcome.
@matterece3164
@matterece3164 4 жыл бұрын
How about when to use MVC, Razor, Blazor and when to create web apps vs desktop apps.
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
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 жыл бұрын
@@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 жыл бұрын
@@IAmTimCorey Hi Tim, I'd like to also add my vote to see a video on this. Thanks.
@thomaselser8786
@thomaselser8786 4 жыл бұрын
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 жыл бұрын
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
@leybourne
@leybourne 2 жыл бұрын
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 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 2 жыл бұрын
@@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!!!
@StudentCompanion
@StudentCompanion 5 жыл бұрын
Great stuff! Thanks
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
You are welcome.
@maf6085
@maf6085 2 жыл бұрын
Superb explanation 👍👍
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
Thank you!
@andywalter7426
@andywalter7426 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.
@colin-campbell
@colin-campbell 5 жыл бұрын
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 жыл бұрын
Yep, I'd consider it. I'm also working through the idea of a KZfaq 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!
@yefriencarnacion4512
@yefriencarnacion4512 3 жыл бұрын
great video, thank you for everything
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Glad you enjoyed it!
@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.
@Personal-rc7cy
@Personal-rc7cy 2 жыл бұрын
WinForms is my favorite
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
I think you will like Monday's video.
@mysoongamestudio8371
@mysoongamestudio8371 2 жыл бұрын
I m trying to change from winforms to winui ... just desing is so anoying... I m not a designer.. i just want a button here or a messagebox there... as far as i had try wiun you have to define so many things that... i can´t waste my time on that neither i´m going to get paid for... :( What about some "winforms" easy quick controls on to winui to help all the "full stack developers" over the world ? ;) ;)
@MadBunnyRabbit
@MadBunnyRabbit 5 жыл бұрын
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.
@cdunsford
@cdunsford 2 жыл бұрын
Thank you for this video!
@IAmTimCorey
@IAmTimCorey 2 жыл бұрын
You are welcome.
@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.
@ElCidPhysics90
@ElCidPhysics90 3 жыл бұрын
New word: rapplication. I like it.
@IAmTimCorey
@IAmTimCorey 3 жыл бұрын
Great!
@mr.RAND5584
@mr.RAND5584 5 жыл бұрын
Winform lacks layout container. Wpf has awesome layouts.
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
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.
@digitalghost7381
@digitalghost7381 5 жыл бұрын
Nice work! I would also enjoy a video more general.. MFC, winapi, WPF ... Also web :)
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
Thanks for the suggestion.
@jcddcjjcdnz
@jcddcjjcdnz 5 жыл бұрын
Excellent presentation. Thanks.
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
You are most welcome. Thanks for watching.
@umarshah5113
@umarshah5113 3 жыл бұрын
Could you do a video on WinUI 3.0
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 жыл бұрын
Thanks for the recommendation. I have added it to Tim's list of viewer suggestions for videos.
@mching4473
@mching4473 3 жыл бұрын
@@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 жыл бұрын
@@mching4473 Added to the list, Thanks.
@SigSeg-V
@SigSeg-V 2 жыл бұрын
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 жыл бұрын
lol, sorry, maybe I was being too optimistic.
@ltklaus5591
@ltklaus5591 2 жыл бұрын
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
@RidgecrestKillaz187
@RidgecrestKillaz187 3 жыл бұрын
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?
@Old.Man.Of.The.Mountain
@Old.Man.Of.The.Mountain 5 жыл бұрын
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.
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
That's a good use for it.
@Eldering
@Eldering 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.
@sirius4k
@sirius4k 5 жыл бұрын
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.
@dawidbiell
@dawidbiell 3 жыл бұрын
Great video!! Thanks :)
@tomthelestaff-iamtimcorey7597
@tomthelestaff-iamtimcorey7597 3 жыл бұрын
Thanks for growing your skills with Tim
@enciphered7650
@enciphered7650 3 жыл бұрын
What will allow me to do rapid prototyping in WPF ? I don't want to spend time writing a program in winform and then later translate it to WPF just because wpf is slow at getting started
@BobAg_
@BobAg_ 4 жыл бұрын
Line of Business software is notorious for being years behind what's in vogue. Developers tend to forget that businesses don't give a crap about what's new and shiny, or what the latest fad is, or the Next Big Thing. If they have software that works, they're going to do whatever it takes to keep that going with minimum investment. In some ways they actively resist transition, which is why in 2020 I regularly see VB6-era software still ticking away doing its thing. Old doesn't automatically mean redundant, either. Some of the software - dated as it looks - does exactly what is required and has been reliably doing so for 25+ years. I mean much of the global banking system still runs on software put in place when JFK was in office!
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
That is true. The biggest issue with replacing those things is expense. Rewriting 2 million lines of code because something newer is out is not a compelling reason for any business owner.
@AttitudeGames
@AttitudeGames 4 жыл бұрын
I also think UWP will fade out due to its limitations, Microsoft did the same for XNA Framework.
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
We will see.
@AttitudeGames
@AttitudeGames 4 жыл бұрын
@@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.
@RayJ1216
@RayJ1216 4 жыл бұрын
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 жыл бұрын
I don’t have game dev recommendations, beyond to learn C# well.
@ManolitoSnell
@ManolitoSnell 4 жыл бұрын
Have a look at Unity3D
@davidhouser9280
@davidhouser9280 11 ай бұрын
How can i use a listView in a c# winapp form that when an item is clicked it opens a sublist and when an item in that list is clicked opens a new form window?
@martynadams9942
@martynadams9942 5 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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.
@ZAKINGOFDESPAIR
@ZAKINGOFDESPAIR 4 жыл бұрын
Wait.. that's a bad new for me, I mean.. I am just starting out with desktop application development with c# for the reason it being a more modern language for desktop development. But most of the tutorials here are in .net framework, so.. should from this point only learn everything with .net core, or go with .net framework and then move to .net core ecosystem Microsoft is preparing?
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
Actually, it isn't as bad as you think. In fact, it isn't bad at all. The .NET Framework tutorials will practically all still be fine. The only issue will be if they reference the app.config. In .NET Core, you will reference the appsettings.json instead. Otherwise, you shouldn't notice a difference in your code. The C# code is the same C# code. The difference is the engine that compiles it. I upgraded the Tournament Tracker application to .NET Core from the .NET Framework and it was mostly just changing the csproj file (I did have some legacy packages to change over but that's to be expected). So, going forward, create in .NET Core but don't be afraid of the .NET Framework or of learning techniques in it.
@melbayguy
@melbayguy 4 жыл бұрын
C# doesn't work alone.. It was designed for . NET framework.... Most libraries ie de UI u libraries u wil need for development is inside de .net framework works
5 жыл бұрын
Tim Corey, thanks for this videos, your contribution to C# is huge! thanks!
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
You are welcome.
@sejungsong
@sejungsong 3 жыл бұрын
Hey Corey, Thank you for all the great tutorials! I think you put the best C# contents online. I learned a tone from your videos and sample codes. I have a question regarding Xamarain. From this video and some others when you talked about frameworks, I got the impression that you believe eventually .Net Maui Xamarin would be the future of C# development. It's for the mobile dev and this video is about the desktop dev, but I still got that from you. If it's true, I want to know your thought on Xamarin, where do you think Xamarin would stand in the near future against other competitors? It's a very subjective question, but what's the sentiment of Xamarin you see in the real mobile app dev market? Is it gaining popularity pretty rapidly over others? Also, do you have any plans to make Xamarin tutorials? Please let me know. Thanks!
@AlbertoMandlate
@AlbertoMandlate 5 жыл бұрын
UWP isn't .Net framework. UWP is .net core
@IAmTimCorey
@IAmTimCorey 5 жыл бұрын
Correct, sorry, I misspoke. I believe the Metro apps were .NET Framework but UWP moved to .NET Core.
@vandeljasonstrypper6734
@vandeljasonstrypper6734 4 жыл бұрын
UWP have "nothing to do" with dotnet core UWP is WinRT base and yes "it is .NET Framework"
@hTfvmGNrIZ
@hTfvmGNrIZ Жыл бұрын
anything user-interactive != automation. anything user-interactive == headache 😅
@IAmTimCorey
@IAmTimCorey Жыл бұрын
User interaction really does cause problems.
@harag9
@harag9 5 жыл бұрын
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).
@Layarion
@Layarion 4 жыл бұрын
58:20 "web showdown" yes, this video was fantastic and I need more like it.
@IAmTimCorey
@IAmTimCorey 4 жыл бұрын
Sounds good.
Intro to WPF: Learn the basics and best practices of WPF for C#
1:10:34
Box jumping challenge, who stepped on the trap? #FunnyFamily #PartyGames
00:31
Family Games Media
Рет қаралды 20 МЛН
Can A Seed Grow In Your Nose? 🤔
00:33
Zack D. Films
Рет қаралды 30 МЛН
Secret Experiment Toothpaste Pt.4 😱 #shorts
00:35
Mr DegrEE
Рет қаралды 38 МЛН
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 2,3 МЛН
Stop, Intel’s Already Dead!
13:47
Linus Tech Tips
Рет қаралды 400 М.
WPF in C# with MVVM using Caliburn Micro
1:23:30
IAmTimCorey
Рет қаралды 362 М.
What's new with WinForms | .NET Conf 2023
24:48
dotnet
Рет қаралды 31 М.
10 C# Libraries To Save You Time And Energy
33:59
IAmTimCorey
Рет қаралды 205 М.
Box jumping challenge, who stepped on the trap? #FunnyFamily #PartyGames
00:31
Family Games Media
Рет қаралды 20 МЛН