digitalmars.D.learn - How to proceed with learning to code Windows desktop applications?
- I =?UTF-8?B?TGluZHN0csO2bQ==?= (12/12) Jan 29 2018 Hello all!
- welkam (8/10) Jan 29 2018 Well it didnt felt wrong for Microsoft to use modified internet
- rikki cattermole (3/15) Jan 29 2018 But since Windows is the only platform mentioned or desired for,
- thedeemon (5/7) Jan 29 2018 It's like saying "everything you need is assembly language" when
- rikki cattermole (5/13) Jan 29 2018 There are libraries such as[0], so it isn't cruel, but it is something
- Patrick Schluter (3/18) Jan 29 2018 There's also DWT which has the advantage of being portable.
- Kagamin (7/10) Jan 30 2018 He's not a novice: he wrote console applications that pushed
- DanielG (17/17) Jan 29 2018 There are far too many options for Windows GUI programming, so we
- rjframe (10/12) Jan 30 2018 VS release builds compile to native now by default; for easy Windows
- I =?UTF-8?B?TGluZHN0csO2bQ==?= (6/12) Jan 30 2018 I've been looking into C# and VS2017 today along with VisualD.
- thedeemon (9/14) Jan 31 2018 The good news is after you learn the basics of WinForms in C#,
- Arredondo (12/26) Jan 31 2018 As other have said, WPF and C# is the way to go for Windows GUI
- I =?UTF-8?B?TGluZHN0csO2bQ==?= (4/15) Feb 01 2018 This was an interesting idea. Thanks.
- Martin Tschierschke (4/6) Feb 02 2018 I found this useful:
- I =?UTF-8?B?TGluZHN0csO2bQ==?= (4/15) Aug 11 2018 Well, took me a while to get around to actually try this out due
- I =?UTF-8?B?TGluZHN0csO2bQ==?= (8/26) Jan 30 2018 I have a specific thing I want to create and I could do it in a
- aberba (10/42) Jan 30 2018 There is a D GUI library called DlangUI at
- Guillaume Piolat (3/5) Jan 30 2018 Ironically the trick for native programming is to depend on the
- Kagamin (5/8) Jan 30 2018 "Programming Windows" by Charles Petzold, 5th edition, 1998, The
- Andre Pany (9/21) Jan 30 2018 You may have a look at Delta
- rumbu (10/22) Jan 31 2018 On Windows platform, WPF is the way to go right now. Once you
- John Chapman (5/10) Jan 31 2018 Just to say that it is actually possible to write modern Windows
- DanielG (7/11) Jan 31 2018 The .winmd files describing the WinRT API surface are
Hello all! I've been doing console apps for about a year and a half now, but my requirements are reaching the limits of easy to use with ASCII-based UI and typed commands so I'm thinking of moving into GUI-era with my projects. I was wondering if some one could help me into the right direction. I've been Googling a ton these past few days for some kind of a book or a course on how to code desktop applications for Windows, but either there isn't one, or it's very well hidden. I've found bits and pieces but nothing to give me a coherent approach. The other way I've been thinking is to do the thing browser-based, but for some reason that doesn't feel right.
Jan 29 2018
On Monday, 29 January 2018 at 22:55:12 UTC, I Lindström wrote:The other way I've been thinking is to do the thing browser-based, but for some reason that doesn't feel right.Well it didnt felt wrong for Microsoft to use modified internet explorer to make calculator. You can read more on universal windows apps and XAML To learn GUI development first find GUI framework like GTK, QT etc. then watch and/or read tutorials on how to use them. For D language a list of libraries could be found here https://wiki.dlang.org/GUI_Libraries
Jan 29 2018
On 29/01/2018 11:56 PM, welkam wrote:On Monday, 29 January 2018 at 22:55:12 UTC, I Lindström wrote:But since Windows is the only platform mentioned or desired for, everything you need is in WinAPI!The other way I've been thinking is to do the thing browser-based, but for some reason that doesn't feel right.Well it didnt felt wrong for Microsoft to use modified internet explorer to make calculator. You can read more on universal windows apps and XAML To learn GUI development first find GUI framework like GTK, QT etc. then watch and/or read tutorials on how to use them. For D language a list of libraries could be found here https://wiki.dlang.org/GUI_Libraries
Jan 29 2018
On Tuesday, 30 January 2018 at 03:07:38 UTC, rikki cattermole wrote:But since Windows is the only platform mentioned or desired for, everything you need is in WinAPI!It's like saying "everything you need is assembly language" when talking about languages and compilers. Pure WinAPI is a cruel advice for a novice.
Jan 29 2018
On 30/01/2018 5:47 AM, thedeemon wrote:On Tuesday, 30 January 2018 at 03:07:38 UTC, rikki cattermole wrote:There are libraries such as[0], so it isn't cruel, but it is something worth while at least to look into for someone who might be interested in it, but doesn't know where to begin. [0] https://bitbucket.org/dgui/dguiBut since Windows is the only platform mentioned or desired for, everything you need is in WinAPI!It's like saying "everything you need is assembly language" when talking about languages and compilers. Pure WinAPI is a cruel advice for a novice.
Jan 29 2018
On Tuesday, 30 January 2018 at 06:25:52 UTC, rikki cattermole wrote:On 30/01/2018 5:47 AM, thedeemon wrote:There's also DWT which has the advantage of being portable.On Tuesday, 30 January 2018 at 03:07:38 UTC, rikki cattermole wrote:There are libraries such as[0], so it isn't cruel, but it is something worth while at least to look into for someone who might be interested in it, but doesn't know where to begin. [0] https://bitbucket.org/dgui/dguiBut since Windows is the only platform mentioned or desired for, everything you need is in WinAPI!It's like saying "everything you need is assembly language" when talking about languages and compilers. Pure WinAPI is a cruel advice for a novice.
Jan 29 2018
On Tuesday, 30 January 2018 at 05:47:11 UTC, thedeemon wrote:It's like saying "everything you need is assembly language" when talking about languages and compilers. Pure WinAPI is a cruel advice for a novice.He's not a novice: he wrote console applications that pushed through complexity limit. Writing complex GUI application in winapi is cruel, but for hello world it's fine and gives good understanding of principles. To use GUI frameworks one must understand both underlying principles and abstractions rolled on top of them.
Jan 30 2018
There are far too many options for Windows GUI programming, so we probably need a bit more information about any constraints that are important to you. For example: - do you specifically want something that works well with D? or are you open to other languages? - are you just wanting to learn desktop programming in general? (Like the concepts involved) Or do you have a specific thing you want to create? I would personally suggest Delphi to somebody who wants to write Windows desktop apps and learn about event-driven development, howeverrr the language (Object Pascal) is insufferably archaic compared to something like D. But it is definitely the cleanest, least-overwhelming method of writing native Win32 applications for somebody with no prior experience. Then there's all the modern Microsoft stuff (WPF/XAML/WinRT/etc), but you pretty much have to use either .NET or C++ for that.
Jan 29 2018
On Tue, 30 Jan 2018 05:56:51 +0000, DanielG wrote:Then there's all the modern Microsoft stuff (WPF/XAML/WinRT/etc), but you pretty much have to use either .NET or C++ for that.VS release builds compile to native now by default; for easy Windows not necessarily the new stuff). If the OP wants to learn what's needed for more complex GUI tasks (like for most non-simple applications), learning to build a GUI from source is kind of necessary though. If/when .NET Core becomes something people can rely on and are willing to get easy when you want it, power when you need it, native code generation on Windows, and OS portability.
Jan 30 2018
On Tuesday, 30 January 2018 at 12:30:36 UTC, rjframe wrote:VS release builds compile to native now by default; for easy GUI (Windows Forms, not necessarily the new stuff). If the OP wants to learn what's needed for more complex GUI tasks (like for most non-simple applications), learning to build a GUI from source is kind of necessary though.Reading through all this it looks like the simplest path is to on LinkedIn that seem to build up to what I need. What makes me sad is that I have to drop D for at least the time being.
Jan 30 2018
On Tuesday, 30 January 2018 at 18:52:18 UTC, I Lindström wrote:Reading through all this it looks like the simplest path is to on LinkedIn that seem to build up to what I need. What makes me sad is that I have to drop D for at least the time being.you can take DFL and have basically all the same code in D. DFL (D Forms Library) is a pure D thin wrapper around WinAPI that looks like an identical twin of WinForms. There was even some visual forms builder for it. And then, once you're familiar with this kind of GUI lib, it's not hard to learn DlangUI or GtkD or some other libraries mentioned above. D does have GUI libs, just not books and courses about them.
Jan 31 2018
On Tuesday, 30 January 2018 at 18:52:18 UTC, I Lindström wrote:On Tuesday, 30 January 2018 at 12:30:36 UTC, rjframe wrote:programming, but you don't necessarily need to drop D. You could write your interface code in VS and have it call your D library via pinvoke (Platform Invoke). To make this work you must mark your public D functions with extern(C). Read the documentation on extern(C) and PInvoke. Honestly, I don't know why more people don't do this. It really Windows GUI and D is king for library development. The only drawback I can think of is you have to expose your awesome D library via a dumped down C interface.VS release builds compile to native now by default; for easy GUI (Windows Forms, not necessarily the new stuff). If the OP wants to learn what's needed for more complex GUI tasks (like for most non-simple applications), learning to build a GUI from source is kind of necessary though.Reading through all this it looks like the simplest path is to on LinkedIn that seem to build up to what I need. What makes me sad is that I have to drop D for at least the time being.
Jan 31 2018
On Wednesday, 31 January 2018 at 12:56:31 UTC, Arredondo wrote:programming, but you don't necessarily need to drop D. You could write your interface code in VS and have it call your D library via pinvoke (Platform Invoke). To make this work you must mark your public D functions with extern(C). Read the documentation on extern(C) and PInvoke. Honestly, I don't know why more people don't do this. It really for Windows GUI and D is king for library development. The only drawback I can think of is you have to expose your awesome D library via a dumped down C interface.This was an interesting idea. Thanks. And thank you all for your ideas and suggestions. I'll try some out and see what works.
Feb 01 2018
On Thursday, 1 February 2018 at 09:18:30 UTC, I Lindström wrote: [...]And thank you all for your ideas and suggestions. I'll try some out and see what works.I found this useful: https://github.com/adamdruppe/arsd/blob/master/simpledisplay.d
Feb 02 2018
On Wednesday, 31 January 2018 at 12:56:31 UTC, Arredondo wrote:programming, but you don't necessarily need to drop D. You could write your interface code in VS and have it call your D library via pinvoke (Platform Invoke). To make this work you must mark your public D functions with extern(C). Read the documentation on extern(C) and PInvoke. Honestly, I don't know why more people don't do this. It really for Windows GUI and D is king for library development. The only drawback I can think of is you have to expose your awesome D library via a dumped down C interface.Well, took me a while to get around to actually try this out due to stuff, but this was the best solution at least for me. Thanks Arredondo!
Aug 11 2018
On Tuesday, 30 January 2018 at 05:56:51 UTC, DanielG wrote:There are far too many options for Windows GUI programming, so we probably need a bit more information about any constraints that are important to you. For example: - do you specifically want something that works well with D? or are you open to other languages? - are you just wanting to learn desktop programming in general? (Like the concepts involved) Or do you have a specific thing you want to create? I would personally suggest Delphi to somebody who wants to write Windows desktop apps and learn about event-driven development, howeverrr the language (Object Pascal) is insufferably archaic compared to something like D. But it is definitely the cleanest, least-overwhelming method of writing native Win32 applications for somebody with no prior experience. Then there's all the modern Microsoft stuff (WPF/XAML/WinRT/etc), but you pretty much have to use either .NET or C++ for that.I have a specific thing I want to create and I could do it in a console but it'd be very clunky to use, but at the moment I need to learn the basic stuff for this. I'd like to use D as I've grown quite fond of it after my earlier attempts at first Perl, then Python, C++ and now D for the past year and a half. For some reason D feels the most... homey and comfortable of the languages I've tried.
Jan 30 2018
On Tuesday, 30 January 2018 at 18:41:57 UTC, I Lindström wrote:On Tuesday, 30 January 2018 at 05:56:51 UTC, DanielG wrote:There is a D GUI library called DlangUI at https://github.com/buggins/dlangui. The README file show some basic examples on how to use it. More demo apps are in the "examples" folder. Looking through those examples can really help. It works on windows and will work on Mac and Linux too. I use it on Linux and its quite impressive. Some people here have used it to develop commercial softwares. I'm in a process of learning and creating a much nicer theme for it. Not much progress for now.There are far too many options for Windows GUI programming, so we probably need a bit more information about any constraints that are important to you. For example: - do you specifically want something that works well with D? or are you open to other languages? - are you just wanting to learn desktop programming in general? (Like the concepts involved) Or do you have a specific thing you want to create? I would personally suggest Delphi to somebody who wants to write Windows desktop apps and learn about event-driven development, howeverrr the language (Object Pascal) is insufferably archaic compared to something like D. But it is definitely the cleanest, least-overwhelming method of writing native Win32 applications for somebody with no prior experience. Then there's all the modern Microsoft stuff (WPF/XAML/WinRT/etc), but you pretty much have to use either .NET or C++ for that.I have a specific thing I want to create and I could do it in a console but it'd be very clunky to use, but at the moment I need to learn the basic stuff for this. I'd like to use D as I've grown quite fond of it after my earlier attempts at first Perl, then Python, C++ and now D for the past year and a half. For some reason D feels the most... homey and comfortable of the languages I've tried.
Jan 30 2018
On Monday, 29 January 2018 at 22:55:12 UTC, I Lindström wrote:The other way I've been thinking is to do the thing browser-based, but for some reason that doesn't feel right.Ironically the trick for native programming is to depend on the OS as less as possible, with a small "API surface".
Jan 30 2018
On Monday, 29 January 2018 at 22:55:12 UTC, I Lindström wrote:I've been Googling a ton these past few days for some kind of a book or a course on how to code desktop applications for Windows, but either there isn't one, or it's very well hidden."Programming Windows" by Charles Petzold, 5th edition, 1998, The definitive developer's guide to the Windows 98 API. The book goes through the classic application development cycle and explanation of features.
Jan 30 2018
On Monday, 29 January 2018 at 22:55:12 UTC, I Lindström wrote:Hello all! I've been doing console apps for about a year and a half now, but my requirements are reaching the limits of easy to use with ASCII-based UI and typed commands so I'm thinking of moving into GUI-era with my projects. I was wondering if some one could help me into the right direction. I've been Googling a ton these past few days for some kind of a book or a course on how to code desktop applications for Windows, but either there isn't one, or it's very well hidden. I've found bits and pieces but nothing to give me a coherent approach. The other way I've been thinking is to do the thing browser-based, but for some reason that doesn't feel right.You may have a look at Delta https://forum.dlang.org/post/hpodoabutuakfxbzzcyy forum.dlang.org It is a solution to write a gui application using all the benefits Embarcadero Delphi RAD Studio gives you, while all of your coding is written in D. Kind regards Andre 13
Jan 30 2018
On Monday, 29 January 2018 at 22:55:12 UTC, I Lindström wrote:Hello all! I've been doing console apps for about a year and a half now, but my requirements are reaching the limits of easy to use with ASCII-based UI and typed commands so I'm thinking of moving into GUI-era with my projects. I was wondering if some one could help me into the right direction. I've been Googling a ton these past few days for some kind of a book or a course on how to code desktop applications for Windows, but either there isn't one, or it's very well hidden. I've found bits and pieces but nothing to give me a coherent approach. The other way I've been thinking is to do the thing browser-based, but for some reason that doesn't feel right.On Windows platform, WPF is the way to go right now. Once you accommodate yourself with XAML (descriptive language for designing windows and controls), you can step up from WPF to modern Windows apps (UWP). Unfortunately, none of these technologies are supported in D. WinAPI is for masochistic people, WinForms is obsolete. But we are leaving in the everything-is-an-web-app era, therefore don't dismiss the idea of an web application. I don't like them either.
Jan 31 2018
On Wednesday, 31 January 2018 at 11:52:20 UTC, rumbu wrote:On Windows platform, WPF is the way to go right now. Once you accommodate yourself with XAML (descriptive language for designing windows and controls), you can step up from WPF to modern Windows apps (UWP). Unfortunately, none of these technologies are supported in D.Just to say that it is actually possible to write modern Windows apps in D - I've done it. WinRT is just COM. Granted it's not as easy as using Microsoft's language projections, but it's doable if you really want to.
Jan 31 2018
On Wednesday, 31 January 2018 at 12:25:36 UTC, John Chapman wrote:Just to say that it is actually possible to write modern Windows apps in D - I've done it. WinRT is just COM. Granted it's not as easy as using Microsoft's language projections, but it's doable if you really want to.The .winmd files describing the WinRT API surface are machine-readable, so in theory some enterprising D developer should be able to generate an elegant D projection. But as with many things, there might not be much overlap between "those who can" and "those who want to" :P It's certainly beyond my skill level at the moment ...
Jan 31 2018