The future of WinForms...
-
Personally, I love WinForms! No HTML/CSS or XAML mess! Just grab a control, drop it on the screen and IT JUST WORKS! You may want to add a third party control library such as DevExpress or Telerik to make it better looking, get more features and make it even easier to develop. Sure, it doesn't scale as well and it's not really multi-platform, but if your customers use Windows desktops that isn't really an issue. I'm not really sure about Microsoft alternatives, but I know they used Electron[^] for Visual Studio Code. Yeah, it features all of that awful HTML and CSS and it even adds JavaScript to make it worse, but at least it's "modern" multi-platform desktop development. It's what all the cool desktop developers use ;-)
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
Sander Rossel wrote:
Personally, I love WinForms! No HTML/CSS or XAML mess! Just grab a control, drop it on the screen and IT JUST WORKS! You may want to add a third party control library such as DevExpress or Telerik to make it better looking, get more features and make it even easier to develop. Sure, it doesn't scale as well and it's not really multi-platform, but if your customers use Windows desktops that isn't really an issue.
Agreed. Tell you what? Let all the young kids go drive themselves to distraction chasing whatever technology is the fad of the day and let us old guys cry all the way to the bank as we continue to write professional applications that get the job done, even if "behind-the-scenes", eh? ;-) -CM
If you think hiring a professional is expensive, wait until you hire an amateur! - Red Adair
-
Ok, try not to laugh at the title. Right now, I assume there is no real future in WinForms. It's gonna be the next VB6 if not already, as in it'll hang around but people are gonna look at it funny. That being said, I just had a job interview with a guy who I really like. He's got an entrepreneurial spirit which I jive with. Right now, for the job, the main app in question that I'd be working on is an 8 year old product based on WinForms. Should I get the job, and to plan for the future... I know WinForms isn't going anywhere. But for the big picture, think 10 years from now... we all know .NET Core is being shown the love. So, my question is, if I wanted to write a Microsoft-backed thick client application in C# that's possibly cross platform... what options do I have? I know Xamarin is one. Is that the only one? And of course, there's things like wxWidgets, Qt, and even GTK+ with C# bindings, but is Microsoft cooking up some Windowing/GUI juju meant to be cross platform that I just don't know about yet? Like most LOB apps, this is a MS-centric shop, so I'm just curious to know what the latest buzz is on the geek street.
Jeremy Falcon
Well, at the speed Microsoft has abandoned technology, I recommend you wait 5 years, and see what they did. But I would put a decision like this OFF until real demand for other platforms shows up in a serious way. And then I would look to go to the cloud. Maybe mobile if it makes a difference. We maintain systems that are LOB winForms that were first implemented in Windows 95. While we converted many things to NT Services because they no longer require a GUI, the remaining stuff is solid, and there is no requirement to support any other platform. But even the screen sizes and font combinations are starting to cause old programs some issues. a 16x16 icon is like a spec nowadays... (BTW, what I would have given to have created the idea of a FONT as the icon package, totally scalable, portable).
-
Ravi - I'd love to hear how truly "cross platform" your Xamarin application is. Are you able to run on Windows / Mac / Android / iPhone / Linux ? My understanding is the C# business logic translates, but not the UI or XAML. Can you confirm from your experiences?
"Qulatiy is Job #1"
The C# business logic and persistence layer is almost 100% cross-platform compliant, thanks to Xamarin, which means I don't have to do much more than smoke testing on the Android port, since the codebase is mature and has an existing suite of tests. The Android UI is a brand new effort and isn't cross-platform, because I decided I want to learn Android from the ground up before I consider using Xamarin Forms as an abstraction layer. If I decide to port my app to iOS (likely), I will first write a native iOS client for the same reason. I'm only considering Windows, Android and iOS as target platforms. /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Yeah I thought about WPF. Being a web guy, I like declarative UIs too. But, in the interest of cross platform I'd doubt that's ever gonna be ported since it'll be a cold day in hell before MS uses OGL for a rendering pipeline. Then again we have SQL Server on Linux now, so who knows.
Jeremy Falcon
Do I sense some ego here? If the app was successful in WinForm for 8 years, it may be in the right platform. I don't look at any applications and question they should all be in the web platform or cross platforms. The app's platform depends on its purpose. I'm having to rewrite web-based applications into desktop, and yes it is rewritten in Winform, and some from desktop to web. Unless the application has broad customer base where it may specifically call for cross platform, stay where it is safe.
-
Ok, try not to laugh at the title. Right now, I assume there is no real future in WinForms. It's gonna be the next VB6 if not already, as in it'll hang around but people are gonna look at it funny. That being said, I just had a job interview with a guy who I really like. He's got an entrepreneurial spirit which I jive with. Right now, for the job, the main app in question that I'd be working on is an 8 year old product based on WinForms. Should I get the job, and to plan for the future... I know WinForms isn't going anywhere. But for the big picture, think 10 years from now... we all know .NET Core is being shown the love. So, my question is, if I wanted to write a Microsoft-backed thick client application in C# that's possibly cross platform... what options do I have? I know Xamarin is one. Is that the only one? And of course, there's things like wxWidgets, Qt, and even GTK+ with C# bindings, but is Microsoft cooking up some Windowing/GUI juju meant to be cross platform that I just don't know about yet? Like most LOB apps, this is a MS-centric shop, so I'm just curious to know what the latest buzz is on the geek street.
Jeremy Falcon
The last thing I want to do is write a web app for just a handful of users where a Winforms desktop app will do. If an app isn't specifically calls for declarative UI or must be ran on other OS, write it in Winforms can be done much more quickly. I've seen simple application that use the more elaborate frameworks like Prism, Unity and MVVM pattern. Really for bragging rights and over engineering.
-
The C# business logic and persistence layer is almost 100% cross-platform compliant, thanks to Xamarin, which means I don't have to do much more than smoke testing on the Android port, since the codebase is mature and has an existing suite of tests. The Android UI is a brand new effort and isn't cross-platform, because I decided I want to learn Android from the ground up before I consider using Xamarin Forms as an abstraction layer. If I decide to port my app to iOS (likely), I will first write a native iOS client for the same reason. I'm only considering Windows, Android and iOS as target platforms. /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
If you don't mind my asking, how do you connect the compiled Xamarin C# code to the UI layer in Android? Do you connect the layers like you might with a DLL resource in windows?
"Qulatiy is Job #1"
-
If you don't mind my asking, how do you connect the compiled Xamarin C# code to the UI layer in Android? Do you connect the layers like you might with a DLL resource in windows?
"Qulatiy is Job #1"
Since both the Android UI layer and the legacy business logic and persistence layers are all written in C#, there's nothing special I need to do. I chose to put all the code in a single assembly (the Android executable) for now. When I (eventually) get around to building the iOS app, I'll move the non-UI code to a separate assembly that will be consumed by both flavors of the app. /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Ok, try not to laugh at the title. Right now, I assume there is no real future in WinForms. It's gonna be the next VB6 if not already, as in it'll hang around but people are gonna look at it funny. That being said, I just had a job interview with a guy who I really like. He's got an entrepreneurial spirit which I jive with. Right now, for the job, the main app in question that I'd be working on is an 8 year old product based on WinForms. Should I get the job, and to plan for the future... I know WinForms isn't going anywhere. But for the big picture, think 10 years from now... we all know .NET Core is being shown the love. So, my question is, if I wanted to write a Microsoft-backed thick client application in C# that's possibly cross platform... what options do I have? I know Xamarin is one. Is that the only one? And of course, there's things like wxWidgets, Qt, and even GTK+ with C# bindings, but is Microsoft cooking up some Windowing/GUI juju meant to be cross platform that I just don't know about yet? Like most LOB apps, this is a MS-centric shop, so I'm just curious to know what the latest buzz is on the geek street.
Jeremy Falcon
Quote:
I assume there is no real future in WinForms
Heh... dude, if you think like that, programming is not for you - just coding. WinForms is alive and will be alive for as long as Win7 exists. As you guess, cr@p like Win10 just shakes imaging "future OS", but reality is nobody wanna be sheep of MS. So Win7 is the last OS I installed and I feel it will stay for 10+ years AT LEAST. And of course, overengineered rubbish like WPF will never outperform WinForms. Conclusions are too obvious that you look a bit fool sacrificing WinForms.
-
Sander Rossel wrote:
Personally, I love WinForms! No HTML/CSS or XAML mess! Just grab a control, drop it on the screen and IT JUST WORKS! You may want to add a third party control library such as DevExpress or Telerik to make it better looking, get more features and make it even easier to develop. Sure, it doesn't scale as well and it's not really multi-platform, but if your customers use Windows desktops that isn't really an issue.
Agreed. Tell you what? Let all the young kids go drive themselves to distraction chasing whatever technology is the fad of the day and let us old guys cry all the way to the bank as we continue to write professional applications that get the job done, even if "behind-the-scenes", eh? ;-) -CM
If you think hiring a professional is expensive, wait until you hire an amateur! - Red Adair
ClockMeister wrote:
Let all the young kids...
I'm only 29 myself (almost 30) :laugh:
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
-
I like Winforms. It seems a good match with the Windows UI. It seems odd that MS have left it fallow - what else would they like us to use? We could use WPF but that isn't updated before. Given that Windows' success is on the top of desktop apps - why wouldn't Microsoft want to give us a first class, up-to-date framework for it? What would be the downside?
If I'm not mistaken WinForms makes use of GDI which is an older Windows specific method for drawing stuff on screen. That makes it hard to scale, which is very important with all these different devices nowadays. It also just doesn't work on anything that isn't a Windows computer. As such, making "modern" applications that speak to a majority of the public is difficult, if not impossible, using WinForms. It's great for a lot of businesses, but they're moving to the cloud and the web. So all in all I think WinForms had its best days :sigh: That's not to say it isn't or can't be used anymore, COBOL is still around too :laugh: Try to see WinForms as a finished product, it's just great the way it is and doesn't need any more updates :D
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
-
ClockMeister wrote:
Let all the young kids...
I'm only 29 myself (almost 30) :laugh:
Best, Sander arrgh.js - Bringing LINQ to JavaScript SQL Server for C# Developers Succinctly Object-Oriented Programming in C# Succinctly
Wow ... a smart young developer! :-D
If you think hiring a professional is expensive, wait until you hire an amateur! - Red Adair
-
Jeremy Falcon wrote:
I assume there is no real future in WinForms.
If you're referring to WinForms vs WPF, then yes, I agree. if you're referring to Windows Development as a practice, then I disagree. There are and always will be many different types of enterprise level apps that are and always will be Windows based.
If it's not broken, fix it until it is. Everything makes sense in someone's mind. Ya can't fix stupid.
Kevin Marois wrote:
If you're referring to WinForms vs WPF, then yes, I agree. if you're referring to Windows Development as a practice, then I disagree. There are and always will be many different types of enterprise level apps that are and always will be Windows based.
[Soapbox Mode] Even though it might be "fashionable" to move from WinForms technology to WPF (or whatever), I don't think that either of them are going to disappear; they both have their place. As "old" as one might consider WinForms to be, it is a time-tested and true technology for developing the front-end of a Windows application. I tried application development with the XAML style UI in WPF for awhile. I found that, while there are some things you can pull off with it that can't be done with WinForms that few if any of said features mattered to me. If your front-end isn't trying to be "pretty" in some way with odd-shaped forms and special graphical presentations, why bother with it? I haven't yet (myself) run into a situation where doing a web-style (XAML) type user-interface would have added any value to the application I was working on. If I were developing a program that presented the front-end to look exactly like a DVD player or something, then I would probably need to use WPF. Naturally, Microsoft, and the market-at-large are going to "push" the newer technologies so that they can sell solutions that, to many, solve problems that don't exist for them. It isn't, by and large, "fashionable" to stick with a technology that "just works" ... you've got to constantly change your tool set so that someone can sell you said tools. As you stated, Windows desktop development ain't going anywhere for a very, very long time. WinForms is still an extremely powerful tool with which to develop presentation-layer to an application. Developers who have only been around for the last dozen or so years or less have no appreciation for how much work it used to take to make an intelligent presentation of data on a screen or a printer. There's room for all of these technologies, however there are some (like WinForms) that are just so well defined and stable that they'll probably never stop being the mainstay of really excellent front-end presentations that don't require constant tweaking just to make them work. With a mature technology like WinForms I find that I spend a higher percentage of time solving the problem-at-hand rather than spending my time tryi
-
Since both the Android UI layer and the legacy business logic and persistence layers are all written in C#, there's nothing special I need to do. I chose to put all the code in a single assembly (the Android executable) for now. When I (eventually) get around to building the iOS app, I'll move the non-UI code to a separate assembly that will be consumed by both flavors of the app. /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Much thanks!
"Qulatiy is Job #1"
-
Much thanks!
"Qulatiy is Job #1"
No problem. Happy to chat offline if you have more questions. You can find me on LinkedIn. /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
Jeremy Falcon wrote:
he main app in question that I'd be working on is an 8 year old product based on WinForms.
If you're tasked with writing new UI components, you could build them in WPF and host them in the existing WinForms app. FWIW, I'm in the process of porting this[^] WinForms app (30K lines of code) to Android, and later iOS. I'm using Xamarin to build a native UI and 99% of the business and persistence layer has been portable without any changes. One of the huge wins using Xamarin is that a user can take their desktop database file and plop it onto their Android device (and vice-versa) with no problems. (In reality, they don't have oto do this manually. I've written a cloud backend that lets them sync their data between the desktop and mobile versions of the app.) I'm a big fan of WinForms and Xamarin and not ashamed to say it. The productivity gains are awesome. /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
Ravi Bhavnani wrote:
FWIW, I'm in the process of porting this[^] WinForms app (30K lines of code) to Android, and later iOS. I'm using Xamarin to build a native UI and 99% of the business and persistence layer has been portable without any changes.
I would consider it a great goodness if you were to publish CP articles, or blog, about the process, the hurdles, the "gotchas," etc. So far, I've read mainly negative articles and posts about using Xamarin Forms. thanks. Bill
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it. A few hundred years later another traveler despairing as myself, may mourn the disappearance of what I may have seen, but failed to see.» Claude Levi-Strauss (Tristes Tropiques, 1955)
-
Jeremy Falcon wrote:
I know WinForms isn't going anywhere.
Like SQL92, present, reliable and widely unknown. I'm using WinForms on Ubuntu and OpenSUSE; regardless of what Microsoft does or doesn't, the library will be there. Support for it is something I do not need, it just needs to be there; a proven UI, a wrapper around the legendary common controls. Stuff that people recognize and know how to interact with, without having to follow a "proper" course to interact with your application or reading a book! So, I'd say you're right. Unlike hypes like WPF, we know for sure that WinForms isn't going anywhere; it is a standard UI recognized regardless of the platform, available for free, with a mountain of documentation, examples and tutorials. A rich-UI, free, documented, and the defacto-standard since the Amiga left the market that's not going anywhere. Much like SQL92 and me - always present, always boring. With the promise not to go anywhere :)
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)
Eddy Vluggen wrote:
a wrapper around the legendary common controls.
Hi Eddy, please correct me if I am mistaken, but I think WinForms on any platform but Windows do not have these standard WinForm Win Controls (how could they ? ... they're wrappers around old COM fossils), and what Controls they might offer will certainly not offer identical api's and behavior. That's a problem, I think, for WinForm devs who have a hard-won skill-set of techniques and work-arounds using these Win specific Controls.
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it. A few hundred years later another traveler despairing as myself, may mourn the disappearance of what I may have seen, but failed to see.» Claude Levi-Strauss (Tristes Tropiques, 1955)
-
Eddy Vluggen wrote:
a wrapper around the legendary common controls.
Hi Eddy, please correct me if I am mistaken, but I think WinForms on any platform but Windows do not have these standard WinForm Win Controls (how could they ? ... they're wrappers around old COM fossils), and what Controls they might offer will certainly not offer identical api's and behavior. That's a problem, I think, for WinForm devs who have a hard-won skill-set of techniques and work-arounds using these Win specific Controls.
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it. A few hundred years later another traveler despairing as myself, may mourn the disappearance of what I may have seen, but failed to see.» Claude Levi-Strauss (Tristes Tropiques, 1955)
BillWoodruff wrote:
Hi Eddy, please correct me if I am mistaken, but I think WinForms on any platform but Windows do not have these standard WinForm Win Controls (how could they ? ... they're wrappers around old COM fossils), and what Controls they might offer will certainly not offer identical api's and behavior.
You'd be right! I actually once wrote an article explaining the makings of a button, and how the Delphi-VCL is but a wrapper over the common controls. Still I only need to add "System.Windows.Forms" in Mono; and while WinForms is available, WPF isn't.
BillWoodruff wrote:
That's a problem, I think, for WinForm devs who have a hard-won skill-set of techniques and work-arounds using these Win specific Controls.
Nah, same UI-rules apply for WPF, Gtk and the Web; yes, different events and properties, but that's what documentation is for :)
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)
-
Ravi Bhavnani wrote:
FWIW, I'm in the process of porting this[^] WinForms app (30K lines of code) to Android, and later iOS. I'm using Xamarin to build a native UI and 99% of the business and persistence layer has been portable without any changes.
I would consider it a great goodness if you were to publish CP articles, or blog, about the process, the hurdles, the "gotchas," etc. So far, I've read mainly negative articles and posts about using Xamarin Forms. thanks. Bill
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it. A few hundred years later another traveler despairing as myself, may mourn the disappearance of what I may have seen, but failed to see.» Claude Levi-Strauss (Tristes Tropiques, 1955)
Hi Bill, I'm using
Xamarin.Android
and notXamarin.Forms
to port my app. I used XF to build the Android half of an Android/iOS prototype about 3 years ago and found it to be quite powerful at the time, but haven't touched it since. /raviMy new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
BillWoodruff wrote:
Hi Eddy, please correct me if I am mistaken, but I think WinForms on any platform but Windows do not have these standard WinForm Win Controls (how could they ? ... they're wrappers around old COM fossils), and what Controls they might offer will certainly not offer identical api's and behavior.
You'd be right! I actually once wrote an article explaining the makings of a button, and how the Delphi-VCL is but a wrapper over the common controls. Still I only need to add "System.Windows.Forms" in Mono; and while WinForms is available, WPF isn't.
BillWoodruff wrote:
That's a problem, I think, for WinForm devs who have a hard-won skill-set of techniques and work-arounds using these Win specific Controls.
Nah, same UI-rules apply for WPF, Gtk and the Web; yes, different events and properties, but that's what documentation is for :)
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)
Not to beat a dead horse, but ... So, I use VS and create a X/Mono Forms app targeting IOS/Linux ... what do I do for a TreeView, a SplitContainer, etc, ?
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it. A few hundred years later another traveler despairing as myself, may mourn the disappearance of what I may have seen, but failed to see.» Claude Levi-Strauss (Tristes Tropiques, 1955)
-
Not to beat a dead horse, but ... So, I use VS and create a X/Mono Forms app targeting IOS/Linux ... what do I do for a TreeView, a SplitContainer, etc, ?
«While I complain of being able to see only a shadow of the past, I may be insensitive to reality as it is now, since I'm not at a stage of development where I'm capable of seeing it. A few hundred years later another traveler despairing as myself, may mourn the disappearance of what I may have seen, but failed to see.» Claude Levi-Strauss (Tristes Tropiques, 1955)