0

Firstly, I'm not new to this. I've written desktop applications for Windows going back to 1991 with Visual Basic 3.0. I've used C/C++ and Win32 API, VB3-6, C# 1.0-4.0 and currently knock out web applications in ASP.Net MVC. However I haven't touched desktop stuff since 2000 in depth bar playing around with some ClickOnce deployed WPF stuff in C#.

However, I've recently stumbled on a requirement to throw out a small, self-contained .exe standard windows desktop application. I don't want to ship any major dependencies with it. In fact, I'd rather like it to be uTorrent style i.e. small, self-contained and without masses of crud around it and possibly UPX packed. This is part of the manifesto of the software: simplicity and the ability to install in a user LocalAppData folder. This is a diagnostic tool which will be used by our users and will scan the system and report various bits of specific information back to our web servers. This has to work on pretty much everything back to win2k. I really don't want to have to go right back to Win32 if possible.

Now when I look around, everything has descended into a confusing mush of MFC, ATL, Managed C++, WTL, WPF, Metro and various other bits of string and sticky tape. Either that or heavy frameworks like Qt, Gtk and Wx.

The question is simply:

What, apart from Win32, is the best starting point for an application of this type?

Or should I just write "yet another win32" wrapper?

pointyhat
  • 11
  • 2
  • 1
    Winforms. 'nuff said. – Robert Harvey Jul 29 '13 at 21:19
  • I'd say yes but this has to ship to utterly paranoid corporate clients who don't even have .Net deployed and are still hanging on to a few win2k workstations. – pointyhat Jul 29 '13 at 21:29
  • 4
    In that case, I recommend an aluminum baseball bat. It makes a very satisfying sound when it hits one of those old CRT monitors. – Robert Harvey Jul 29 '13 at 21:30
  • They don't have any CRTs. They bought new TFTs and plugged them into age old Compaq DeskPros. To be honest I wouldn't have taken the job if I knew the clients were this bad... – pointyhat Jul 29 '13 at 21:35

2 Answers2

2

This is one area where its very difficult to beat Delphi. It's able to build standalone, native Win32 (and 64 now) executables. No runtimes, not even .NET is required. (its possible some dll's would be required, if you were specifically using them)

Or the Delphi-like, open-source Lazarus IDE

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
GrandmasterB
  • 37,990
  • 7
  • 78
  • 131
  • Thanks for the suggestion - will do some investigation. To be honest, I'd completely forgotten about Delphi. The Microsoft marketing machine consumes your headspace – pointyhat Jul 29 '13 at 21:36
  • Thanks. Lazarus Fits the bill perfectly. Playing with it now. Haven't written a hello world already. Its also portable which is great news. Thanks again :) – pointyhat Jul 29 '13 at 22:21
2

Tcl/tk fits your requirements, when you add in the starpack / starkit technology. Essentially, you can wrap up an entire virtual filesystem and executable into a single executable that runs as-is, no unpacking or installation required.

Bryan Oakley
  • 25,192
  • 5
  • 64
  • 89