36. Should I Build a Desktop or Web Application?

Поделиться
HTML-код
  • Опубликовано: 27 дек 2024

Комментарии • 308

  • @MotorcycleMan1962
    @MotorcycleMan1962 3 года назад +47

    Tim has some of the best training videos on the Internet. His voice is clear, his explanations leave no stone unturned, and just does a great job. It took me 3 weeks to learn c# and I'm continually trying to up my game with educational resources. I've been in system design and development for 40 years and seen a lot of instructors. Tim is one of the best. This video covered a lot of things I already knew but brought up some things I didn't think of.

  • @46I37
    @46I37 3 года назад +32

    For internal business CRUD apps, I've decided to stick with winforms and c#. Its fast, easy and maintainable and I can do just about everything including dozens of data grids on the same page without dependencies or third party frameworks. With web you have to worry about a whole lot more stuff, like what is backend, what is front end, security (a winform app I can put in a domain authorised folder), frameworks etc.... but for anything outside of business, Web is becoming the only way to go. BTW thanks for speaking so clearly. I can usually listen to your videos at 2x.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      Thanks for sharing

    • @ak_8.8.8
      @ak_8.8.8 3 года назад +1

      Easy to maintain but no security in desktop as such in web. Even if you hard code strings and obfuscate your program it is still vulnerable.

    • @tomahawk5357
      @tomahawk5357 2 года назад +3

      @@ak_8.8.8 Yes, but having code running on a server means you have a greater carbon footprint, you don't use the capabilities of the local machine, you have latency, ect..

    • @henryeffiom7610
      @henryeffiom7610 2 года назад

      @@tomahawk5357 do you mean latency can help secure the database?

    • @tomahawk5357
      @tomahawk5357 2 года назад

      @@henryeffiom7610 These are critics of server running code. Latency is not good

  • @Ishanamin
    @Ishanamin Год назад

    A seriously great clear and concise speaker. Voice projection, No "umms" at all make it so clean to listen to. Nice job Tim!

  • @victordudnyk8470
    @victordudnyk8470 3 года назад +6

    Thank you, Tim. Your channel is a gold mine.

  • @turn1210
    @turn1210 3 года назад +4

    Great point about the strengths and weaknesses of the team!

  • @imadabab
    @imadabab 3 года назад +1

    Thanks a lot Tim. As a software developer for a lot of years with both Desktop and Web applications. I agree with you in every word you have said.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      You are most welcome. Thanks for watching.

    • @learnwithme395
      @learnwithme395 2 года назад

      Hi, can you help me, I have this python project I'd like to publish as Desktop app...can I have your contact info

  • @kgnet8831
    @kgnet8831 3 года назад +5

    Really good and helpful video👍👍👍
    There are two additional points to make:
    1. Do you also need a mobile app?
    Because It is much harder to add a mobile app to a desktop app, than to a web app (or you build a hybrid and than it gets easier...). That it is not to say that you have to have a web app to also build a mobile app, but maybe you can already use web apis for your desktop app, which are than also responsible for the mobile app.
    2. What kind of people use your application?
    I work on a scheduling software, were the main customers are people without much technological background, but often work on windows since win 95. So they have some expectations when it comes to software. Also they are often quite limited on their own rights to their machine. So I think to evaluate your customer base is another very important point, before you make a decision...

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      What?? Consider the user's needs and experience??? Yes! Excellent points! Thank you for sharing those 👍👍

  • @yogevgershon3424
    @yogevgershon3424 3 года назад +9

    Can you please do a video that explains System.Threading.Tasks.Dataflow with streaming data?
    I think its a great library, and really underated

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +6

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

  • @refactorear
    @refactorear 3 года назад +1

    I quite agree with what you mentioned but I'd like to add another point of view as you measured only advantages and disadvantages: know the market you are targeting at. In my case I work for the healthcare industry (small clinics with up to 10 providers) and here 95% of the market is desktop. When you consider the whole US healthcare system there are just 3 or 4 web players here, even the biggest player (Epic--not the games company, the healthcare company which holds over 50% of the market--) and their main competition (NextGen) are desktop-oriented.

  • @patsnoma
    @patsnoma 3 года назад +1

    Great points to help with decision making. Thanks Tim.

  • @AlfredoMartinezA
    @AlfredoMartinezA 3 года назад +1

    Great video Tim, thanks a lot! Sometimes I still doubt about changing my desktop apps to web, you gave me more information to take note.

  • @jackgarrett7349
    @jackgarrett7349 3 года назад +3

    I like web apps when you have users from multiple areas working on the same project. Like when two companies that are merging and a lot of cross referencing needs to be done and / or queried. If you need speed and processing large chunks of data or long running processes you want an app. Web apps are easier to deploy than desktop apps and I like that. The problem is that many times the developer doesn't have the choice of one over the other. You are told what to develop and then go from there. I would say this -
    1.) If need is for processing large amounts of data and / or long processing runs I would say use a desktop application. Just know that if the amount of data is large enough and processing takes a long enough period of time, you will want to incorporate batch processing in the background via a windows service of some kind. The user won't leave an app up long enough if processing takes too long.
    2.) If the processing is mostly just short transactional processing with small amounts of data going back and forth a web app works great, EXCEPT that later on in the life cycle of that web app the amounts of data may get larger and eventually make that web app untenable to use.
    I would say that if you think this might be a problem later that you build as a web site with a web service doing the work for you in the back ground. Not exactly a web app anymore but I'm speaking from experience here. I can't count the times I was tasked with building a web app / app for a "small" process only to have it become a monster 6 months later that bogs down when it doesn't have enough memory. Most managers can't understand why a web app doesn't work like a desktop app.
    Cool topic.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      Thanks for sharing your perspective

    • @Knirin
      @Knirin 3 года назад +1

      Most Web apps turn into applications that should have a dedicated desktop app.

  • @ramioopgotoguy9642
    @ramioopgotoguy9642 3 года назад +4

    I would mix them, to give the admins desktop or mobile app client and the normal users web application client, but as you said it depends, at the end a good developer is the one who knows both and adapt to them

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +3

      Exactly, know where/when to use each. There is no one answer.

  • @paulecampbell
    @paulecampbell 3 года назад +10

    Tim, nice presentation but one great benefit of a web application is that they run across devices/platform, once the device has a browser

    • @philsburydoboy
      @philsburydoboy 3 года назад +4

      He mentions that at 4:55. Web is great for CRUD or things that browsers already support, like streaming video. Not so great when you need to do things that the browser doesn't support well or you need to do a lot of computing locally.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +3

      Yup, that is a basic part of the concept. Thanks for sharing.

  • @Aphradity
    @Aphradity 3 года назад

    Your timing is awesome, I am thinking of a combination; developing a Desktop Controller that can launch a URL for applications that are not algorithm intensive, or it can initiate another desktop app that does have a need.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      We design to meet requirements of the application. If that is what best fits the needs, go for it!

  • @muttBunch
    @muttBunch 3 года назад +1

    I’ve learned so much from Tim. I can’t thank him enough. ❤️

  • @francisf.amunde2619
    @francisf.amunde2619 3 года назад +1

    Thank you so much Tim, you really are the best. Thanks again.

  • @husseinkizz
    @husseinkizz 3 года назад

    This is super insightful, very experienced!

  • @MaximT
    @MaximT 3 года назад

    You can use a small service application installed locally which can be accessed from browser using CORS. This service can do all local tasks with files and etc...

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      A service is a desktop application, it just doesn't have a UI.

    • @MaximT
      @MaximT 3 года назад

      @@IAmTimCorey Yep, your right, but the whole application can be split in two parts. The frontend can communicate with the serverside service and with the local service. The local service can do all the tasks that normal desktop apps do, and the frontend could ask the local service to do all the tasks. The main data and backend is of course on the server. For example, the local service could use barcode scanner, the frontend could trigger it to work with a web api request, then the requested data could be transfered to the serverside backend.

    • @MaximT
      @MaximT 3 года назад

      @@IAmTimCorey and this app is very small, it just contains the part which uses local resources, and usually never changes. Install and forget. It does not need scalability and etc..

  • @jeffybanjo
    @jeffybanjo 3 года назад +7

    Nice one, I mix both depending on task at hand, integrations with my biometric scanners, reporting, rf equipment go on desktop(win for). my web app is for data collection,retrieval,querying and display, even my reporting is on win form connected to my web host database. To me web is still restricted in some aspects, thats why i love blazor, because its looking more like desktop development and has alot of features that has been missing from web development way back. Thanks for sharing.

  • @pixelmasque
    @pixelmasque 2 года назад

    great experienced practical advice as usual💯

  • @oh2txb18
    @oh2txb18 Год назад

    Spent some time deciding on this topic, and decided to stick with desktop for a manufacturing production management app. That said, down the line, I want to extend with web and mobile app for the sake of mobility.

  • @SilverLake.
    @SilverLake. Год назад

    I am a SDET. I have been asked from my work to create windows application automation testing. I am not able to see elements through inspect tools and update and installed are required. If I ask my software team to provide me a local web environment or API environment, it would be a lot of work for them. How would you test a desktop application?

    • @IAmTimCorey
      @IAmTimCorey  Год назад

      This post should help: stackoverflow.com/q/25343/733798

  • @StudentCompanion
    @StudentCompanion 3 года назад +3

    Great topic , thanks a lot.
    Would you consider a topic on Desktop caching? Users save to database which is offline or mobile users not connected to database. Synchronize data when connected.
    Thanks

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +2

      Thanks for the suggestion. I have added it to the list of possible future topics.

  • @zulhishamtan4308
    @zulhishamtan4308 3 года назад

    You were definitely right...Tim.
    Thank you.
    Between the desktop app and web app....I usually look at also the system requirement expected by the user. To update a desktop app I would usually use ClickOnce technology which is awesome.

  •  3 года назад

    I'm just telling my colleagues how much such an argumentative answer can serve and help in the discussion in our project.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      Disagreement can be a great opportunity for growth. Always agreeing with each other leads to stale ideas that aren't as good as they can be. You just need to be sure that the disagreement is done well and is focused on the best solutions, not on tearing each other's ideas down.

  • @ReSpawNnL
    @ReSpawNnL 2 года назад +9

    Good article Tim. I gotta say the one thing that almost always makes me move away from choosing a Desktop app is the install-hurdle. Installing isn't hard - for us: Developers/IT personnel/Power-users. For other people it is more of a challenge or something scary. On top of that, most companies we deal with have some sort of Norton Ghost/Citrix environment that prohibits installing applications let alone running unsanctioned .exe's.

    • @IAmTimCorey
      @IAmTimCorey  2 года назад +1

      Agreed. Click Once helps but it isn’t perfect.

    • @rinzler9775
      @rinzler9775 Год назад

      Have used click once, works great. Have also had issues with browsers being locked down, or using tech that suddenly looses support (got burnt on sliverlight with that one). Keep the web pages clean and simple is what I have learnt.

  • @gunjansinha1962
    @gunjansinha1962 Год назад

    Hi, I wanted to ask. Would you go for desktop if an app requires multiple windows at same time and they are all data intensive?

    • @IAmTimCorey
      @IAmTimCorey  Год назад

      That sounds like a good use case for a desktop application.

  • @mark7166
    @mark7166 3 года назад +1

    I'm definitely a desktop guy. The only significant web work I ever did was in Silverlight, but for the most part that felt enough like desktop that I didn't find it too uncomfortable.

  • @glowiever
    @glowiever 3 года назад +14

    been wanting to build desktop app like the good ol times :'(

  • @kevincordell9539
    @kevincordell9539 3 года назад

    I know this isn’t exactly desktop vs web, but here goes anyway. Blazer Server - with or without API? I am building a new web portal and wanted to use Blazor this time around. I have one already with Angular 7 and WebAPI that runs really good internally. Now this will be external for clients. The question is do I just have a Library project using dapper to access SQL Server or have a webAPI with Blazor accessing the API? Speed will be of importance. Thanks.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      It depends on if the Blazor Server app be the only user interface you have for that system. If so, go with the class library. If not, go with the API. If you aren't sure, push as much of the app's logic and data access to the class library so that it will be a simple matter to add an API in front of it as well down the road.

    • @kevincordell9539
      @kevincordell9539 3 года назад

      @@IAmTimCorey Thank you! that is a great idea.

  • @MrFKD
    @MrFKD 3 года назад

    thanks a lot!! do you have a playlist here in youtube about learning all about Wpf

    • @tomthelestaff-iamtimcorey7597
      @tomthelestaff-iamtimcorey7597 3 года назад

      Go to Tim's RUclips page and use the Search option under the Subscribe button. you can find all his videos and playlists. Here is the WPF one - ruclips.net/video/gSfMNjWNoX0/видео.html

  • @Jose-cf8ps
    @Jose-cf8ps 2 года назад

    What to call a "app" that the user opens a html that works locally? I like JavaScript and the GUI by html and CSS... Just my inside my job, distribute as a folder... Opens text files, do something, and show a result or save a file...

    • @IAmTimCorey
      @IAmTimCorey  2 года назад

      That would still be a web app.

  • @cissemy
    @cissemy 3 года назад

    Hi Tim,
    What should I choose between blazor wasm and blazor server in therm of job market and future ?
    Thanks

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      Learning either Blazor will help you with the other since there are so many similarities. First learn C# really well, though. Knowing a UI without knowing the language well will be useless. Then pick either Blazor and learn it well. Then learn the other one as well. Then learn ASP.NET Core API, Razor Pages, and MVC as well.

    • @cissemy
      @cissemy 3 года назад

      @@IAmTimCorey
      Thanks
      I know .net core api and mvc .
      I do not know what to choose between blazor server and wasm .

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      Just pick one and learn it, then learn the differences with the other (which won't be a lot).

    • @cissemy
      @cissemy 3 года назад

      @@IAmTimCorey
      Thanks

  • @mastercode7851
    @mastercode7851 3 года назад

    very fair speech , thanks Tim

  • @MrStevg8
    @MrStevg8 3 года назад +1

    How is an application suite like Office365 written, and which languages does it use? I imagine its multiple.

    • @LukeAvedon
      @LukeAvedon 3 года назад +1

      I believe I read that all Microsoft Office stuff is written in C++

  • @henryeffiom7610
    @henryeffiom7610 2 года назад

    Tim please i need that college Desktop application for a data entry job, but it will run on network as other computers will be connected to the database and pictures save on the server system

    • @IAmTimCorey
      @IAmTimCorey  2 года назад

      I don't build custom software for people. I train you how to build software. You can then take those skills and build what you need.

  •  3 года назад +1

    Thanks man once again!

  • @habenkiros503
    @habenkiros503 3 года назад

    Hi Tim. I want to ask you if I can use desktop and web in one project. I am developing a school gate management system. And for the card printing part, I need a desktop app. whereas for the barcode read and check the detail of the students I need to be web-based. How can I handle this?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      You would use multiple projects, but if you put your business logic and data access in a class library, both can share that library. I do that with the TimCo Retail Manager course. I build an API that has all of the business logic and data access, and then I consume it from a WPF desktop application and a Blazor WebAssembly web application.

  • @vinayaka1284
    @vinayaka1284 3 года назад +6

    to summarize, desktop application will be limited to a specific user whereas web application will be accessible to a large number of users. However, restrictions will be common in both. The WebApp will be not easier to maintain unlike desktop application. Agree?

    • @andywalter7426
      @andywalter7426 3 года назад +1

      Actually a web app is now much easier to maintain than a desktop app with blazor. A web app makes it much easier to create display that looks good at all different screen sizes. On desktop, if a person has a 4k monitor for example, then the text can be too tiny and if a person has too small of a screen, then controls get cut off.

    • @digitalman2112
      @digitalman2112 3 года назад

      Maintain? Web is updated in one place and all users automatically use latest version. Desktop app potentially requires new downloads and installs.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      I hate to 'summarize' such a complex issue so briefly. Correction: a web app can be, in most cases, easier to maintain.

    • @andywalter7426
      @andywalter7426 3 года назад

      @@IAmTimCorey With blazor, its easier than ever to maintain.

  • @DJosh-cs5vx
    @DJosh-cs5vx 3 года назад +1

    Hi Tim, great video as always. Could you do a series on Microservices as well?
    Thanks for your help.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      That's something we will be covering more this year, yes.

  • @jeevanjoseph4289
    @jeevanjoseph4289 3 года назад

    Hi Tim, I am working on a project right now, I am trying making my project easier to access and available, which one should I build , a desktop application, or a web application ?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      Probably web, but there is a LOT more to that discussion.

  • @andreaghezzi9233
    @andreaghezzi9233 2 года назад

    Hi Tim! Do you have write something about this differences?

  • @lakshmanprabhu7707
    @lakshmanprabhu7707 2 года назад

    What a video!!! Mind -blown !!!!

    • @IAmTimCorey
      @IAmTimCorey  2 года назад

      I am glad it was so helpful.

  • @youseff1015
    @youseff1015 3 года назад

    Is it fine to make a web application but self host it on client machine? Like just open browser and go local host. And maybe you could use SQL lite

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      You could, but why?

    • @youseff1015
      @youseff1015 3 года назад

      @@IAmTimCorey mainly cause I haven't learned desktop applications and the app doesn't need the power of desktop.
      So self host cause the application doesn't really require the centralised factor and I don't have to worry about managing a sever for a client nor I have to worry about security and authentication.
      That's how I look at it, so it should be fine?

    • @andywalter7426
      @andywalter7426 3 года назад

      @@youseff1015 Another good purpose of doing localhost is it can be an option with blazor server side to do localhost so you have full access to your computer and use blazor for ui. For now, until at least .net 6 comes out, that would be your only option for using blazor and still accessing the resources on your computer. Just the client side javascript is still limited to the browser though.

  • @TheImhotep2012
    @TheImhotep2012 3 года назад +3

    Hi Tim. Great content as usual. Thanks, really enjoy hearing your tech tips and opinions. On this one, isn't one of the biggest driving factors cross platform - web apps inherently should work on all devices (pretty much). Whereas, if I create a desktop app I would have to create different apps for each OS?

    • @kgnet8831
      @kgnet8831 3 года назад +2

      you would think that... But they do not even work always in all browser... and I have some really bad experiences when we build the app on a windows machine, but our web server ran linux. So do not expect something works crossplatform if you have not tested it yet!

    • @LukeAvedon
      @LukeAvedon 3 года назад

      @@kgnet8831 .NET 5 or .NET Core and soon in .NET 6 -- it is super easy to publish your desktop app (usually) to another operating system.

    • @kgnet8831
      @kgnet8831 3 года назад

      @@LukeAvedon It was a .Net 5 Application, so its not automatically guaranteed...

    • @LukeAvedon
      @LukeAvedon 3 года назад

      @@kgnet8831 true

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +3

      The point is, you have to know the requirements of the app. Is cross platform a requirement? I love the discussion! Know the application requirements, know your team, your environment and your target users, then choose how to build the app. Too many folks do it the other way around.

  • @runtimeterror4027
    @runtimeterror4027 3 года назад +1

    Awesome and thanks for such an important question to whoever asked..! Hey Tim I was wondering if you have any video on Caliburn Keyboard binding

  • @learnwithme395
    @learnwithme395 2 года назад

    Hi Tim, thanks for the video, Can you please share what steps to take when I want to publish my python project on Microsoft store, at the moment it just a python file with 1384 lines of code....thank you in advance

    • @IAmTimCorey
      @IAmTimCorey  2 года назад +1

      That's a bit outside the realm of what I cover. I don't have any videos to show you. Sorry.

    • @learnwithme395
      @learnwithme395 2 года назад

      @@IAmTimCorey it doesn't have to be a video, just steps I should follow to get my project published, that's all I'm asking

  • @alcidesneto6415
    @alcidesneto6415 3 года назад

    Hi Tim! To build a desktop application that uses DirectX or OpenGL, do I have to know C++, or is there some library for c# worth learning?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      Depends on what you mean. WPF can utilize your graphics card by default. You can also use Unity.

    • @alcidesneto6415
      @alcidesneto6415 3 года назад

      @@IAmTimCorey ​ I mean like a simple desktop application that shows me a 3D space with the LiDAR points a topography team sends me.

  • @abou3542
    @abou3542 3 года назад

    Thanks for sharing your knowledge ☺️.

  • @marcs8325
    @marcs8325 2 года назад

    The biggest reason to choose web apps is that users are getting used to the fact that they can always use a system from everywhere (office, home, on the go) and from anything (pc, mac, mobile, even chromebooks).
    You can't do that with desktop apps. Combining them with a web api does help of course.
    I'm not saying that web apps are better btw*, it's just that user expectations have changed.
    * They always used to say that ORM's are the Vietnam of computer science. Well, I feel like JS frameworks are exactly that lol. They come and go faster than some of my projects take to develop. It worries me.
    If I have to create a new order management system and it will take my team about 5 years to develop it (while maintaining existing systems) choosing something like Angular or Blazor scares me.
    Good old Windows Forms was always there. We have apps that are in production for 20 years now and are still being maintained. It would be a complete waste of resources to rewrite everything again and again.
    Our projects have to last a long time.
    But user expectations have changed, so I want to develop web apps. But choosing the right framework (that will last) is a nightmare.

  • @oliveroshea5765
    @oliveroshea5765 3 года назад

    Thanks Tim!

  • @abo1428
    @abo1428 3 года назад

    Great video Tim! But what about 3D visualization? I‘m standig in front of the question. I need great portability (Windows, Linux, macOS, iPadOS) but what to programm completly in C#. What would you suggest? Thanks in advice!

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      That's a tough one. You have to go through the available options and see which ones are best for your situation. Start with Uno and see if it can do what you want. If not, start Googling for that specific scenario. I don't know of a great option for you.

    • @DumbGameDev
      @DumbGameDev 3 года назад

      You may want to investigate Unity game engine. It can handle complex 3d visualization and can launch both desktop and mobile. It uses C#. It can be used to make more than just games.

    • @abo1428
      @abo1428 3 года назад

      I have also thought about Unity. The problem is that the development of the UI is relatively complex. In addition, not all 3rd party libraries can be integrated.

  • @BabuTechie2025
    @BabuTechie2025 3 года назад

    How about custom web based software for single owner use? Many SAAS users are now turning on to custom made web based software....

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      That would be a web app, which is what I covered in the video.

  • @LukasNachtigall
    @LukasNachtigall Год назад

    That totally makes sense. Greate opinion! Clearly, web apps are easier to deliver to users.

  • @manoj03h
    @manoj03h 3 года назад

    thanks Tim your advise helped me

  • @crazyfox55
    @crazyfox55 3 года назад

    What about creating an app with Smart Contracts on Ethereum or Polkdot? Are these technologies too young still to build enterprise applications on? Smart Contracts generally require a small fee to run. Will this fee deter users from using these applications? The fee has the essence of a "microtransaction".

  • @florianmaier5829
    @florianmaier5829 3 года назад

    @IAmTimCorey You're mentioning winforms. But is it not more a legacy technology? I assumed that the most desktop apps are developed with wpf nowadays. And wpf is everything but not rapid as beginner. Correct me if I’m wrong.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      You are right, but there is a large legacy base out there, so I mentioned it.

  • @jeevanjoseph4289
    @jeevanjoseph4289 3 года назад

    Hi Tim, If you were to recommend any Javascript framework for web app , which one would you Reccomend for me ?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      The one that you best resonate with. Each has their pluses and minuses.

  • @andywalter7426
    @andywalter7426 3 года назад +5

    There is one huge benefit for the web that was not mentioned. That was its actually easier to get adaptive ui that works great on different form factors. For example, I previously had a game package that was desktop and mobile. I had interfaces with proportions where it can support 3 form factors (desktop, phone, and tablet). However, when I had 2 users on the desktop try it, they had many problems. On one computer much of the ui was cut off because the screen size was too small. Somebody else had a 4k monitor and it was too tiny. When I had the web version, I did not have those problems since you can use view height for sizes and even min size as well. Discovered after a while that with blazor, its easy to make it detect not only screen type but whether they have landscape or portrait. Before I got into blazor, i only knew desktop development. However, after getting into blazor, I found after a while, I can create apps much faster with blazor and they are much easier to maintain since I did not have to do all the data binding stuff and since blazor uses components, its very easy to break up into smaller pieces to make it much easier to maintain. Just too bad that blazor does not do desktop if a person is using .net 5 until at least .net 6 though.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      Thanks for sharing your experiences.

    • @Dave-nv5rv
      @Dave-nv5rv 3 года назад

      All you had to do was put a viewbox tag around your ui markup on the desktop app views to make it fit any screen resolution. It's fully responsive and even the user can control the zoom. Provided it was WPF.
      If winforms you can still make it responsive. Using fixed widths and heights was the problem, you can't do that on a desktop UI.

  • @martins2246
    @martins2246 3 года назад +1

    about to watch...expecting web. I feel like my desktop efforts in 14-15-16 really set me back.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +3

      It shouldn't have, as long as you concentrated on the C# part of it and not just the UI part - it is always a good investment to deepen your skills in the language itself. User interfaces will come and go. The code and how to design it remain largely untouched.

  • @yoanashih761
    @yoanashih761 3 года назад

    Which one is easier for security management? Are there different security issues that need to be concerned on Desktop/Web App?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +2

      Very different. I have multiple videos on security. I think these will help you - ruclips.net/user/IAmTimCoreysearch?query=security

  • @joeprincipato5211
    @joeprincipato5211 3 года назад

    Tim , are the plus/minus points for a web application the same when dealing with an intranet environment ?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      Yep, pretty much. In an intranet, everything is a bit easier (desktop and web) because of the additional layer of trust.

    • @joeprincipato5211
      @joeprincipato5211 3 года назад

      @@IAmTimCorey thanks... I haven't had much web experience -- all of my experience has been on the desktop

  • @semikolon4229
    @semikolon4229 Год назад

    Very Informative video.

  • @TheGururajSA
    @TheGururajSA 3 года назад

    Excellent explanation sir ☺️ thanks a lot. 👍

  • @kuntoajibukanpenyanyi
    @kuntoajibukanpenyanyi 2 года назад

    Definitely agree with your suggestion. and after hearing it, a new question arises, what about the mobile application, how does it compare?

    • @IAmTimCorey
      @IAmTimCorey  2 года назад

      Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/

  • @PatrickIvan
    @PatrickIvan 3 года назад

    I’m a .NET Developer (mostly ASP.NET Core based web apps), and I really like .NET and C# but if I have to build a desktop application I probably choice Electron.JS framework to do it, because it gives you the feeling when your are building a web app and it can run on any platform without any chnage (Windows, Mac, Linux).

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      Why not chose Blazor WebAssembly? You can do the same thing with it using a PWA and if you really want an electron app, you can wrap it in Electron as well. Plus, you never step outside of C# and you get that cross-platform ability.

    • @PatrickIvan
      @PatrickIvan 3 года назад

      @@IAmTimCorey To be honest, I don't have experience with Blazor yet, but I used PWA many times with ASP .NET Core. Thanks for the tip, I'll give it a try in any case!

  • @techwizpc4484
    @techwizpc4484 3 года назад

    I think a really good use for Desktop Apps in relation to Web Apps is to develop CMS for in-house maintenance of a website.

  • @jameszack7158
    @jameszack7158 5 месяцев назад

    Go for the desktop applications because with the desktop applications you can use your PC full processing and graphical power. In web applications, you're limited to the browser's capabilities. In desktop application development you can use modern languages with many sophisticated libraries and frameworks like C#, Java, Python, C++, Qt, Wxwidgets etc. In web application development, you're limited to JavaScript API.
    It means you're more powerful when building desktop applications than building web applications.

    • @IAmTimCorey
      @IAmTimCorey  5 месяцев назад

      This opinion is about ten years out of date. Web applications now use your desktop's power well, they can work fully offline, and they can use other languages such as C#. For instance, a Blazor WebAssembly project runs fully on the client, is fully offline capable, can access storage locally, and you build it with C# code. That C# code runs on the client. It is not translated to JavaScript.
      By the way, VS Code? It is a web app. The new Microsoft Office? Web app. LOTS of modern applications are web apps because they can be easily distributed, they work everywhere, and they are easy to maintain. I'm not saying web is the only way, but your arguments for desktop apps aren't accurate anymore.

    • @jameszack7158
      @jameszack7158 5 месяцев назад

      @@IAmTimCorey okay, but when you write an app and translate it with web assembly into a web app, you have written a desktop app in the first place. So, my opinion is still valid.
      And Office 365 runs horribly. I prefer the desktop version, which again proves me right.

    • @IAmTimCorey
      @IAmTimCorey  5 месяцев назад

      "you have written a desktop app in the first place" - I'm not sure what this means. You wrote an app with HTML, CSS, and C# that runs on the web, but can also run like a desktop application. Meaning you can go to www.yourdomain.com and your site will be there. But you can also download the site to have a desktop app, offline access, and more. How exactly is that a desktop app like you were talking about?
      The desktop version of Office (the new desktop version) is a web app. And yes, I don't love it but you can't say it isn't a valid desktop app. If you are looking for great performance, VS Code is a great example. Poor performance is not primarily a function of the technology you build your app on. It is a function of how you build your application.

    • @jameszack7158
      @jameszack7158 5 месяцев назад

      @@IAmTimCorey I'm saying you write a desktop application with Rust, then you use web assembly to make it run on a browser

  • @markj3118
    @markj3118 3 года назад +2

    Desktop apps are better for the user. Web apps are more convenient for the IS dept. Therefore, most apps that should be desktop are being made for the web.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      There is a bit more nuance than that. Desktop apps get to use the full power of the machine, but they are slower to deploy and maintain.

  •  Год назад

    With Rust and Dioxus/Tauri, it's the same (with low resource usage).
    Even mobile.
    Or Flutter.

  • @mundodolewis5412
    @mundodolewis5412 Год назад

    great video!

  • @akshitdas2012
    @akshitdas2012 3 года назад

    Thank you so much for addressing this question. But, I have one more question. Why are most of the Project Management Softwares web-based?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +2

      In most cases, if a project is big enough to warrant using PM software, than it is very likely the project team is big enough to not be co-located (especially since the pandemic). Web based makes the most sense in that case. Note, by 'project team' I include Dev, testing, business analysts, PMs, and product owners. Even small teams benefit from cloud based as it helps them work from anywhere.

    • @akshitdas2012
      @akshitdas2012 3 года назад

      @@IAmTimCorey Thank you so much for your reply...

  • @BrianHinkley
    @BrianHinkley 3 года назад

    Nice. I have a WinForms app which I'm looking at adding a web component to. It probably wouldn't have all of the same features. Have also looked at whether converting to WPF might enhance the user interface. I also have a Reporting Server running under an MSSQL database. So much potential and my everyday job isn't even a programmer. I do however have an application referred to as an, air quotes, enterprise application. With my SQL Server and stored procedures I can create a user interface practically anywhere. Maybe even a mobile app. My only roadblock is implementing permissions set by IT and certificates available on the devices accessing the data. WinForms is rock solid though.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      Wow, if you ever get serious about being a developer, you are going to be pretty good!

  • @chintu2691994
    @chintu2691994 3 года назад +1

    Ive been developing desktop apps for 2 years and still think that installation and running it is not a pain... But still web apps are not that much developed to build an ERP application... Web apps don't have that feeling of speed and scalability like the WinForms apps

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      You can absolutely make web apps performant, and there are a lot of ERP systems designed with them. It all depends on the skill of the developers who build them.

    • @chintu2691994
      @chintu2691994 3 года назад

      Agreed but the organisation that i work for only me as front end developer, and API developer for ERP that we are building now, have a lot of issues and tech like Angular is don't have IDE makes it even harder... Memorizing SDK and syntax... What a pain... But it's fun😅

  • @scudiebatl
    @scudiebatl 3 года назад

    Would you think Citrix Server gives you the best of both worlds for desktop apps?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      It has been a while since I configured one, but I believe you need to have a Citrix client to run one, plus you still have to install the app on the Citrix machine. So there are still a lot of considerations but it is another option.

  • @rinzler9775
    @rinzler9775 Год назад

    Its useful if you think of browsers like an emulated multi platform operating system, following the common rules of HTML, Java and CSS.

  • @jon_mark
    @jon_mark 2 года назад

    Is Java good for desktop app development with JavaFX?

    • @IAmTimCorey
      @IAmTimCorey  2 года назад +1

      Not sure. I haven’t developed in Java in years.

  • @SakiKnin
    @SakiKnin 3 года назад

    Great channel!

  • @satyabratamohapatra3397
    @satyabratamohapatra3397 3 года назад

    Agreed. Horses for courses. It is important to learn both the web & desktop development.

  • @zarokoshin4090
    @zarokoshin4090 3 года назад

    Hello Tim ! I was looking in your videos and didn't find any about Desktop Apps ( WPF) Desktop for touch screen support ( like in tablets ) selecting, scrolling... etc. Best of wishes !

  • @tongyinwang215
    @tongyinwang215 3 года назад

    Nowadays smart phone users also another consideration especially some bosses and managers prefer to use phone to check something in cafe rather than sitting in front of a desktop. This can be added advantage to web app.
    I may be biased, I feel native mobile app is the hardest one to develop, followed by hybrid mobile, web and desktop. I will be very happy if someone hire me as full time desktop app developer.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      There are a lot of companies out there that are using and developing desktop applications.

    • @tongyinwang215
      @tongyinwang215 3 года назад

      @@IAmTimCorey I see. I am a senior .Net developer in SEA country, Malaysia. Most companies looking for mobile app or responsive web app. Windows app is the second choice, it is famous during Foxpro and VB time. I am not clear about market in America and Europe.

  • @blackisblack22
    @blackisblack22 3 года назад +1

    In general, web is made for mobility and consumption while desktop is for production.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      ... it depends, but you are right that those factors weigh heavily on the decision.

    • @Knirin
      @Knirin 3 года назад

      @@IAmTimCorey Until someone ports GTK, QT, or WPF to canvas and webassembler, UI building in the browser sucks. Especially for data entry requiring paragraphs of plain text or any form of WYSIWYG Rich Text.

  • @roldanmacabare9577
    @roldanmacabare9577 3 года назад

    What is the prons and cons of this video? Pls answer me

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      Watch the video. That’s what it is for.

  • @rolandjayvalerio2514
    @rolandjayvalerio2514 2 года назад

    Worked, thx

  • @nicolass8941
    @nicolass8941 3 года назад +3

    Hi Tim, please don't forget to turn subtitles on ;)

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      If you are talking about the topics breakdown, those are not a switch I turn on/off. When you see those on my videos, that means a user contributed them by carefully watching the video and noting the timestamp each time the topic starts. When you see it in a video, please take the time to scroll down the comments and post a Thanks to the contributor. That person is a hero in my book.

    • @nicolass8941
      @nicolass8941 3 года назад

      @@IAmTimCorey Nope Tim, all of your videos are translated. But not this. PLease check on your video configuration, because i beleave it's an option ;)

    • @nicolass8941
      @nicolass8941 3 года назад

      @@IAmTimCorey it's not topic problem.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      Ah, the RUclips subtitles. Those are auto-generated and not something I control. They usually come in late. It isn’t something I enable/disable.

    • @nicolass8941
      @nicolass8941 3 года назад

      @@IAmTimCorey on youtube studio, click on the detail of desired video. On the left panel, at the end of the item list, "Subtitles" (under "comments"). And then, add "language". Main choice is "English autogenerated". Sorry for the translation, RUclips studio run in french for me ;)

  • @danmaroff324
    @danmaroff324 3 года назад

    I find desktop applications are better for in-house software, especially if the users will all be using one OS. It’s easier not having to deal with HTML/CSS for views which I find more work to style, align controls, etc compared to WinForms and XAML. I also find desktop applications more performant than web applications. On the other hand, if the application is for the general public than a web interface makes more sense, especially if it is to be used for a relatively short period of time and doesn’t warrant an installation by the user.

  • @SupersnakeGames
    @SupersnakeGames 3 года назад

    What are your thoughts on ElectronJS?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      It is an intermediate step between desktop and web apps. It has the benefits of both but also some fairly significant drawbacks. Electron apps are slower and less memory-efficient. I would say that they absolutely have their place. They just aren't the "killer" type some people like to tout. They are a good option, they just don't negate other options.

  • @codingwithgyver1637
    @codingwithgyver1637 3 года назад

    In security reason,
    web app wll take advantage of it. The connection settings are only loaded on server-side. Imagine if they trying to crack desktop app just to extract connection strings inside the build app. You must not expose any credentials like this.
    Updating the features or fixing bugs in app
    I also agree from comments here in regards with updates even on remote area, web app can do updates without visiting user PCs
    Cross-platform
    Still an advantage for WebApp. I heard that microsoft will make a MAUI which is a desktop app and webapp in one codebase
    Depedencies
    - Im still go for webapp as you dont need additional installation to use by desktop PC(ex: runtimes,service, crystal reports). Only in server-side can install any dependencies you need

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      Many good points, thanks for sharing

  • @GrayIsBlackAndWhite
    @GrayIsBlackAndWhite 2 года назад

    WebUSB WebHID etc. may change the picture (at least for Chrome-based browsers)...

  • @elkhayyat85
    @elkhayyat85 3 года назад

    Thanks so much for your sharing your experiences. I'm one of your big fins... I have I question.
    As you know now all talking about Web Web, and a lot of web frameworks that start enoying...and many new programs jump to web and that's killing Desktop applications.. Do you think really that in future Desktop applications will lose against web and will come a day where no more Desktop apps.???

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +2

      Not really. Look at the huge embedded base of desktop apps. Look at the constant battle to secure the web. Trends come and go. Desktops are here for quite a while longer.

    • @elkhayyat85
      @elkhayyat85 3 года назад

      @@IAmTimCorey So if we want to answer the question: which more secure Web Applications or Desktop applications? Then it will be Desktop Applications..

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      No, each has their security issues. They are just different.

    • @user-hz1yc6cw6k
      @user-hz1yc6cw6k 3 года назад

      Desktop and mobile applications are definitely more secure. There are vulnerability classes like XSS or CSRF that are hard or impossible to exploit in apps but are very common and dangerous in the web.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      That's a super-dangerous way to think. Desktop and mobile apps have major security concerns to be worried about. Connecting to a database using a connection string means that the connection string information is fully visible to the client (even if encrypted the user can see the clear text). There are other similar issues. Don't think in terms of "this type is more secure". Think in terms of "what do I need to secure on this type" because everything has a vulnerability and none are really "more secure".

  • @LukeAvedon
    @LukeAvedon 3 года назад

    Ah! this was a good one!

  • @shahanktk1034
    @shahanktk1034 3 года назад

    Respected Sir should i go into the field of desktop application and how can i earn money from it by freelancing.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      Whether you should or not is up to you. If that's what you want to pursue then go for it. As for how to make money at it, this video will help: ruclips.net/video/JSSfcXSiq1I/видео.html

    • @shahanktk1034
      @shahanktk1034 3 года назад

      @@IAmTimCorey Thanks sir may Allah bless u with success and happiness

  • @maxi-g
    @maxi-g 2 года назад

    in what world are web applications more complex than desktop applications ?

    • @IAmTimCorey
      @IAmTimCorey  2 года назад

      For a desktop application, you need to learn C#. For a web application, you need to learn C#, HTML, CSS, and JavaScript. That's just the first reason.

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer847 3 года назад

    I am an inventor of interesting type of application: desktop web applications. What is that? Your web server is running on you desktop computer and has access to all features of the desktop computer, however UI of your app is a web based. Cool, isn't it. But it is also powerful with many benefits as accessing your desktop app from any phone on your local network.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      I'm not sure I see the value over running IIS locally.

    • @kamertonaudiophileplayer847
      @kamertonaudiophileplayer847 3 года назад

      @@IAmTimCorey Absolutely agree, but who said IIS?

    • @IAmTimCorey
      @IAmTimCorey  3 года назад +1

      I did. I’m just trying to understand your value proposition. IIS comes with Windows. Are you just providing another option or is there some additional value?

  • @scara1701
    @scara1701 3 года назад

    Uno Platform has gotten my interest. Targetting multiple platforms in one go. Web (wasm), UWP & Mobile. Splitting up the 'logic' in a seperate library is also a good idea to migrate/grow between different desktop and web applications. Disclaimer: I'm not a pro dev. I'm just a sysadmin who develops from time to time :D

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      Yep, that is a great option.

  • @lenardbartha6722
    @lenardbartha6722 3 года назад

    I think one minus for Desktop is that they are locked into a platform. Like Windows application is PC only. Web apps can run on any browser on any device.

    • @IAmTimCorey
      @IAmTimCorey  3 года назад

      True, although that is changing soon with .NET 6.

  • @salim1155
    @salim1155 3 года назад +1

    Hi Tim,
    Thanks for that nice breakdown and comparison.
    For my case, I am looking to build a Ground control station for drones and robots to be controlled real time with direct telemetry from the drone platforms as well as have maps (2D and 3D) and file storage access offline.
    My conclusion is definitely desktop app, but I have seen some applications run through web hosted in a cloud.
    Will appreciate feedback if you can clarify my choice for desktop.
    Also it will be built on dotnet core (server side) and dotnet 5 overall to also cover client side with WPF UI.

  • @hirisraharjo
    @hirisraharjo 3 года назад

    I think it would be better if you start explaining with a powerpoint, so the audience can have a better understanding. But still, great content!

  • @slipoch6635
    @slipoch6635 3 года назад

    good video man