Pros and cons of the available Visual Studio 2008 C ++ platforms?

If you choose between:

  • ATL
  • Windows Forms
  • MFC
  • Win32

Specifically, the application will:

  • for full internal use.
  • Most users do not have basic knowledge of Windows / PC. (consider a simple interface)
  • used for automated testing, as a result of which: - updating a large amount of data from external equipment (you can choose VXI, USB or Ethernet) - very heavy graphics - most likely directX
  • The application will run for 10 years (consider future Windows platforms, etc.).
  • Users will be in very remote locations and offline during testing, but can be online every night to sync reports (a separate application used to sync the database now) - consider updating the program?
  • The speed of the program adds value - which means that the faster we can handle and display the data, the more testing will be done. There is no bottleneck other than the program, just every bit is faster = every bit is more productive.

Again, C ++ specifically isn't C #.

Thanks, Jeff

0


a source to share


4 answers


If you don't mind sticking to VC ++ I would go for ATL + WTL. It's very lightweight and still adds some abstraction to the original Win32. MFC is ok I think, although I really don't like it, but better documented than WTL.



As far as Windows Forms goes, I would steer clear of it, especially if you know you are going to use C ++.

+3


a source


Stay out of the MFC. Sure, he used a lot, but this is a great example of non-idiomatic use of C ++. Notably, it implements its own RTTI system and re-submits parts of the STL.



ATL is not very feature rich, but there is a nice extension called WTL . It's not exactly great C ++, but much better than MFC. If you are not interested in GTK, Qt, etc. (Presumably because you want the infrastructure to be thin to make it easier to integrate with DirectX, etc.) WTL is probably the best option for you.

+2


a source


I don't think C ++ Windows Forms is a valid combination. At least it's not in my VS 2008 installation.

So that leaves us with ATL, MFC, and Win32. All are old, but Win32 is the oldest, so I would eliminate that.

There is a lot of external support for MFC (CodeProject.com, etc.), it is fairly well documented, and there are many people with MFC experience. See the number of topics on this site for ATL and MFC. MFC has an order of magnitude more messages.

MFC seems to be much more common than ATL. IMO, MFC would be the way to go (given the limited choice).

+1


a source


I have a lot of experience with WTL and MFC and I will no longer choose WTL over MFC. MFC is not too bad once you know which parts to ignore (doc / view, CArchive, containers, ...) MFC gives you a much wider choice of UI controls that will never conform to WTL, and there is much more help available for MFC. With WTL, you're pretty much on your own (besides the WTL mailing list and sample code at viksoe.dk).

When it comes to the fact that you will be doing the heavy lifting in DirectX anyway, the set of UI tools won't make much of a difference. Both MFC and WTL will be used for multiple forms and dialogs; win32 is too much work with no added value compared to MFC or WTL, and Windows Forms from C ++ is lavash and slow. Plus Windows Forms is old school, at least MFC won't change anymore :)

+1


a source







All Articles