The Design of Software (CLOSED)A public forum for discussing the design of software, from the user interface to the code architecture. Now closed. |
|
|
The "Design of Software" discussion group has been merged with the main
Joel on Software discussion group.
The archives will remain online indefinitely. |
First of all, it sounds like you're talking about Win32 API programming.
And yes, MFC is the next level up from 'native' Windows programming. I understand the ATL is superior, but I haven't used it yet.
AllanL5 Friday, May 05, 2006
Oh, and Visual Studio 6 C++ is the typical platform for doing that -- unless the 2005 version is better.
Stay away from Delphi, it's WAY too expensive now.
AllanL5 Friday, May 05, 2006
It depends on the type of application you are planning to write. For client/server type apps that include any kind of database-access I think Delphi amortizes itself quickly.
On the other hand, writing a game in Delphi would make no sense at all. Just make sure you skip Delphi 8 and 2005.
Doing the Petzold book using the API directly from C / C++ code is the best way to really learn how it works.
If you must use a higher level wrapper, then I'd recommend WTL - MFC is pretty gross.
Michael G Friday, May 05, 2006
>Straight C with the Peltzoid book.<
you will also need something like a punching bag to take out your frustration. not a dig against petzold, but programming directly with the windows api is about as much fun as a kick in the balls.
starving coder Friday, May 05, 2006
No, you can do native (what Microsoft calls "unmanaged") code in Visual Studio 2002, 2003, and 2055 without touching .NET at all. ATL in particular got some major improvements and bug fixes starting with ATL 7.
MFC hasn't really been updated much in the same timeframe, with the exception of decoupling some classes (like CString) so that you can use them without the rest of MFC. Personal opinion, not talking for my employer (Microsoft) here: if you're doing unmanaged code, the 2005 compiler is the best of the bunch, but VS.NET 2003 is a much more stable IDE, and the compiler's no slouch either.
"Doing the Petzold book using the API directly from C / C++ code is the best way to really learn how it works.
If you must use a higher level wrapper, then I'd recommend WTL - MFC is pretty gross." Or you can get an older Borland C++[Builder] and use their ObjectWindows Library (distributed with BCB Pro until version 4), or download OWLNext and use it with their free command-line tools. Much better application framework that [IMO] MFC can ever hope to be. Very nice ObjectOriented design and shouldn't be too hard to learn since you aren't an API junkie [yet]. MFC was designed to make migration easier for those were came from a predominantly Win16/32 API background. If you're thinking abotu Delphi, you mind as well throw C++Builder into the mix. Since it's a C++ compiler you will have full access to the API; and be able to use the documentation to its fullest (disregarding incompatibilities since MS designs their API around their compiler). The IDE is "okay", it's a fast compiler, and the code isn't that bad [somewhat alot worse than VC++, though, YMMV]. Get an older version if you're still learning: http://www.recycledsoftware.com ... If you plan to use Delphi, I recommend the book "Tomes of Delphi - Win32 Core API Windows (2000 Edition)" and "Mastering Delphi <YourVersion>" by Marco Cantu. He also has "Essential Pascal" and "Essential Delphi" for download on his website (the link escapes me but should come up first on a Google query). "Delphi in a Nutshell" is also handy. There are so many books on MFC and Visual C++, I can hardly narrow it down. But I recommend starting with something generic. Unlike Delphi, there are just way too many choices with C++; so you never know what you'll end up working with in the end :) MS Press books seem to be rather good for Visual C++/MFC. You can download the free express edition from Microsoft to get started (not sure if it comes with MFC or not, I have a better version). If you need other versions and want a cheaper price: http://www.recycledsoftware.com 4tw :) Nate.
For a limited amount of time, you can get a free VS2005 Standard Not For Resale version, for watching 3 webcasts.
Here is the link: http://www.learn2asp.net/Campaign.aspx Saturday, May 06, 2006
Yes, Borland's "OWL" was pretty good. The only problem is it's obsolete. Few employers will be impressed with Borland, where many want people who are knowledgable in Studio and Microsoft.
AllanL5 Saturday, May 06, 2006
"Few employers will be impressed with Borland, where many want people who are knowledgable in Studio and Microsoft."
Don't know many these days that would be impressed with high-level API coding (MFC). A good grasp of Object-Oriented design is necessary, IMHO, though things may be different for certain jobs (of course). I wouldn't exactly call MFC alive and kicking. Nate.
Let me give you the intent behind my original question. I have a software package that I sell over the web that offers a free trial download. I am currently having to distribute the entire .NET framework, which bloats my download.
Let me go ahead and say that my target market (poorly chosen as it was) are small companies without any IT guys. These folks are notoriously behind the technology curve. Having an installer that prompts to download the framework if not installed would blow their minds. I need to go super-lean. I am wondering if I shouldn't jus sit tight. After all, presumably in a few years EVERYBODY will have the framework, right? But hypothetically, if I were to do another project and wanted something with as small of a footprint as possible (read: not the .NET Framework), what would you recommend? -Rob
I have had to consider the same thing. It really depends on the type of app you're writing, but it would be really tough to move from a high-level framework (.NET) to using the C/Win32. It's a business decision so time to market, and cost of development are important factors. The price for either Delphi or C++ Builder (Same thing now), is negligible compared to the time you would spend developing against the Win32 in C/C++.
I would seriously consider either Delphi or C++ Builder. Download the trial version for 45 days and play with it.
cipher Sunday, May 07, 2006
> After all, presumably in a few years EVERYBODY
> will have the framework, right? Umm... WHICH framework? 1.0? 1.1? 2.0? 2.1? 3.0? .Net is for in house developed line-o-biz work, not for shrink wrapped products. Your target market might be much happier with software developed in VB 6.0 instead.
Glen Hamer Monday, May 08, 2006
" The price for either Delphi or C++ Builder (Same thing now), is negligible compared to the time you would spend developing against the Win32 in C/C++."
Which is just too bad, since it's one of the buggiest piece of software for developers in existence today. BDS' bugs put even the lowest quality Open Source software to shame, indeed. I hope you don't believe those words. Then again, people probably will... How's that saying go? "Everything you read on the internet is true." Nate.
Also, BDS lags in .NET capabilities, as well as code generation.
They use the same backend as their C/C++ compiler, which generates code that is shitty compared to Microsoft's compiler. They cannot target 64-bit, and they are limited to .NET 1.1. Such shame, I used to be a Borland zealot... Nate.
Something that's really missing is a nice native C++ framework for Windows only.
Kinda like Qt's trolltech from an ease of use standpoint, but optimized for Windows. It would be great if MS provided such an alternative and integrated it into VS. Too bad they don't really seem interested in native anymore.
Clay,
You obviously haven't looked at Delphi 2006 (Delphi 10), or you wouldn't make such a ridiculous statement. :-) Ken
Ken Tuesday, May 09, 2006
Nate,
"Which is just too bad, since it's one of the buggiest piece of software for developers in existence today. BDS' bugs put even the lowest quality Open Source software to shame, indeed." What the h*ll are you talking about? BDS 2006 is the slickest IDE I've ever seen, and with Service Pack 2 it's also the least buggiest. The IDE beats VS2005 (at least Express, which is the only one I've worked with) hands-down. Ken
Ken Tuesday, May 09, 2006
I'm sorry, I know there are still alot of Delphi evangelists abound. It's common to expect such replies from extreme supporters of niche products...
But BDS2006 has alot of problems with memory leaks, poor performance, etc. http://sherwood.lh.umu.se/images/out2.jpg when working with image lists someone posted complaining why they were out of system resources and the IDE crashed. And if you plan on using anything to do with Together integration... http://sherwood.lh.umu.se/images/out.jpg Yes, the IDE crashed shortly after of course. This person is complaining, as well as many others. I haven't seen any other IDE go up to almost a gig of RAM used, not JBuilder, that's for sure. And the minimum system requirements for JBuilder is what? 768MB RAM? The help system also leaves MUCH to be desired... This IDE is buggy, unless you, like many others; choose to disable a plethora of features in exchange for stability. Unfortunately, some people cannot make that exchange; and in those situations it's about the buggiest PoS you can buy, especially given the price it's running for. VS2005 has yet to crash on me, consume all my RAM/swap memory, or halt my system [yet]; so I find your statement of BDS being the most stable IDE (least buggiest) IDE out there quite fascinating. Of course, I don't know what you do with it; but I have had much (^256) less fun f*ck*ng with their IDE than any other tool available. I rather develop with Emacs and make. Nate. |
Powered by FogBugz


