Quote Originally Posted by ahmd View Post
In light of that, let me ask a follow up question. So, if I need to find a database engine for the use with MFC (in VS2008/2010) that can handle thousands and potentially millions of records, something that doesn't require COM/Active X or .NET, what would you recommend I use?
Do you understand the current penetration of .Net? It is like at something like 90% across the current users of Windows. Any service pack of XP comes with .Net. It ships with Vista and Win7. There's already 65% of machines with .Net 3.5 SP1 installed. For info, search bing or google for ".Net framework windows install penetration".

COM is built into the operating system since at least Win98 and NT4, so what is the issue?

If you need to connect with a MS SQL Database, use the ATL OLEDB Consumer classes - they don't require any external dlls and everything they need to connect to the database comes on XP and above. Because the classes are templated, they get compiled into your app so you don't need to include any additional dlls with the setup program.

I always find it interesting to view folks that do what I call "coding for the past" - in other words, folks that don't want to use a technology because a portion of their user base would need to install additional components. They end up with hard to maintain code because as time goes on it takes more and more effort to code using the legacy approach than it would be to code in the later technology.

In my opinion, the way around this issue is to simple write a smart installer that only installs dependencies when they are absolutely necessary. For example, consider .Net 2.0 as a dependency. The installer would only install the framework on machines that don't have .Net 2.0 installed already (either natively or through windows update) - that's getting exceedingly rare nowadays.