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.
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.
@@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..
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...
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.
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.
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
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.
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.
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 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.
@@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..
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.
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.
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?
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
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.
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.
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.
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.
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.
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.
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.
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
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...
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.
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
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?
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.
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?
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.
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 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?
@@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.
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?
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!
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.
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
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.
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!
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.
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.
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.
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".
@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.
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.
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.
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.
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).
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.
@@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!
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.
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.
@@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.
"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.
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.
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.
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.
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
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.
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😅
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.
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 !
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 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.
@@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.
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.
@@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 ;)
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.
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.
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
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.???
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.
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.
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".
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
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.
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?
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
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.
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.
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.
You are so kind. Thank you for sharing such a positive impression of Tim and his work.
66445
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.
Thanks for sharing
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.
@@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..
@@tomahawk5357 do you mean latency can help secure the database?
@@henryeffiom7610 These are critics of server running code. Latency is not good
A seriously great clear and concise speaker. Voice projection, No "umms" at all make it so clean to listen to. Nice job Tim!
Thank you!
Thank you, Tim. Your channel is a gold mine.
Very welcome
Great point about the strengths and weaknesses of the team!
Thanks
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.
You are most welcome. Thanks for watching.
Hi, can you help me, I have this python project I'd like to publish as Desktop app...can I have your contact info
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...
What?? Consider the user's needs and experience??? Yes! Excellent points! Thank you for sharing those 👍👍
Can you please do a video that explains System.Threading.Tasks.Dataflow with streaming data?
I think its a great library, and really underated
I will add it to the list. Thanks for the suggestion.
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.
Yep, good point.
Great points to help with decision making. Thanks Tim.
You are welcome.
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.
Glad it was helpful!
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.
Thanks for sharing your perspective
Most Web apps turn into applications that should have a dedicated desktop app.
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
Exactly, know where/when to use each. There is no one answer.
Tim, nice presentation but one great benefit of a web application is that they run across devices/platform, once the device has a browser
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.
Yup, that is a basic part of the concept. Thanks for sharing.
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.
We design to meet requirements of the application. If that is what best fits the needs, go for it!
I’ve learned so much from Tim. I can’t thank him enough. ❤️
We would just appreciate you spreading the word.
Thank you so much Tim, you really are the best. Thanks again.
You are welcome.
This is super insightful, very experienced!
Thanks.
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...
A service is a desktop application, it just doesn't have a UI.
@@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.
@@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..
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.
Thanks for sharing!
great experienced practical advice as usual💯
Thank you.
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.
Thanks for sharing.
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?
This post should help: stackoverflow.com/q/25343/733798
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
Thanks for the suggestion. I have added it to the list of possible future topics.
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.
Thanks for sharing.
I'm just telling my colleagues how much such an argumentative answer can serve and help in the discussion in our project.
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.
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.
Agreed. Click Once helps but it isn’t perfect.
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.
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?
That sounds like a good use case for a desktop application.
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.
Good to know.
been wanting to build desktop app like the good ol times :'(
Go for it!
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.
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.
@@IAmTimCorey Thank you! that is a great idea.
thanks a lot!! do you have a playlist here in youtube about learning all about Wpf
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
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...
That would still be a web app.
Hi Tim,
What should I choose between blazor wasm and blazor server in therm of job market and future ?
Thanks
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.
@@IAmTimCorey
Thanks
I know .net core api and mvc .
I do not know what to choose between blazor server and wasm .
Just pick one and learn it, then learn the differences with the other (which won't be a lot).
@@IAmTimCorey
Thanks
very fair speech , thanks Tim
You are welcome.
How is an application suite like Office365 written, and which languages does it use? I imagine its multiple.
I believe I read that all Microsoft Office stuff is written in C++
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
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.
Thanks man once again!
You are welcome.
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?
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.
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?
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.
Maintain? Web is updated in one place and all users automatically use latest version. Desktop app potentially requires new downloads and installs.
I hate to 'summarize' such a complex issue so briefly. Correction: a web app can be, in most cases, easier to maintain.
@@IAmTimCorey With blazor, its easier than ever to maintain.
Hi Tim, great video as always. Could you do a series on Microservices as well?
Thanks for your help.
That's something we will be covering more this year, yes.
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 ?
Probably web, but there is a LOT more to that discussion.
Hi Tim! Do you have write something about this differences?
What a video!!! Mind -blown !!!!
I am glad it was so helpful.
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
You could, but why?
@@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?
@@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.
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?
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!
@@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.
@@LukeAvedon It was a .Net 5 Application, so its not automatically guaranteed...
@@kgnet8831 true
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.
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
Not specifically.
@@IAmTimCorey thanks for the reply
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
That's a bit outside the realm of what I cover. I don't have any videos to show you. Sorry.
@@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
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?
Depends on what you mean. WPF can utilize your graphics card by default. You can also use Unity.
@@IAmTimCorey I mean like a simple desktop application that shows me a 3D space with the LiDAR points a topography team sends me.
Thanks for sharing your knowledge ☺️.
My pleasure 😊
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.
Thanks Tim!
You are welcome.
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!
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.
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.
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.
How about custom web based software for single owner use? Many SAAS users are now turning on to custom made web based software....
That would be a web app, which is what I covered in the video.
That totally makes sense. Greate opinion! Clearly, web apps are easier to deliver to users.
I am glad it was helpful.
thanks Tim your advise helped me
Thanks for trusting Tim
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".
@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.
You are right, but there is a large legacy base out there, so I mentioned it.
Hi Tim, If you were to recommend any Javascript framework for web app , which one would you Reccomend for me ?
The one that you best resonate with. Each has their pluses and minuses.
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.
Thanks for sharing your experiences.
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.
about to watch...expecting web. I feel like my desktop efforts in 14-15-16 really set me back.
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.
Which one is easier for security management? Are there different security issues that need to be concerned on Desktop/Web App?
Very different. I have multiple videos on security. I think these will help you - ruclips.net/user/IAmTimCoreysearch?query=security
Tim , are the plus/minus points for a web application the same when dealing with an intranet environment ?
Yep, pretty much. In an intranet, everything is a bit easier (desktop and web) because of the additional layer of trust.
@@IAmTimCorey thanks... I haven't had much web experience -- all of my experience has been on the desktop
Very Informative video.
Thanks!
Excellent explanation sir ☺️ thanks a lot. 👍
Most welcome
Definitely agree with your suggestion. and after hearing it, a new question arises, what about the mobile application, how does it compare?
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/
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).
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.
@@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!
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.
Thanks for sharing
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.
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.
@@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.
"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.
@@IAmTimCorey I'm saying you write a desktop application with Rust, then you use web assembly to make it run on a browser
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.
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.
👍
great video!
Thanks!
Thank you so much for addressing this question. But, I have one more question. Why are most of the Project Management Softwares web-based?
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.
@@IAmTimCorey Thank you so much for your reply...
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.
Wow, if you ever get serious about being a developer, you are going to be pretty good!
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
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.
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😅
Would you think Citrix Server gives you the best of both worlds for desktop apps?
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.
Its useful if you think of browsers like an emulated multi platform operating system, following the common rules of HTML, Java and CSS.
I am glad it was helpful.
Is Java good for desktop app development with JavaFX?
Not sure. I haven’t developed in Java in years.
Great channel!
Thank you!
Agreed. Horses for courses. It is important to learn both the web & desktop development.
Yep.
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 !
Nope, not yet.
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.
There are a lot of companies out there that are using and developing desktop applications.
@@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.
In general, web is made for mobility and consumption while desktop is for production.
... it depends, but you are right that those factors weigh heavily on the decision.
@@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.
What is the prons and cons of this video? Pls answer me
Watch the video. That’s what it is for.
Worked, thx
You are welcome.
Hi Tim, please don't forget to turn subtitles on ;)
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.
@@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 ;)
@@IAmTimCorey it's not topic problem.
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.
@@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 ;)
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.
Thanks for watching and sharing your thoughts!
What are your thoughts on ElectronJS?
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.
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
Many good points, thanks for sharing
WebUSB WebHID etc. may change the picture (at least for Chrome-based browsers)...
They are getting closer.
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.???
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.
@@IAmTimCorey So if we want to answer the question: which more secure Web Applications or Desktop applications? Then it will be Desktop Applications..
No, each has their security issues. They are just different.
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.
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".
Ah! this was a good one!
Glad to hear it
Respected Sir should i go into the field of desktop application and how can i earn money from it by freelancing.
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
@@IAmTimCorey Thanks sir may Allah bless u with success and happiness
in what world are web applications more complex than desktop applications ?
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.
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.
I'm not sure I see the value over running IIS locally.
@@IAmTimCorey Absolutely agree, but who said IIS?
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?
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
Yep, that is a great option.
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.
True, although that is changing soon with .NET 6.
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.
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!
I appreciate your thoughts.
good video man
Thanks!