C++ – Microsoft Terminology: .NET C++ vs. traditional C++

cnetterminologyvisual c++

I've recently been working with a team that's using both .NET C++ and pre-.NET C++.

I fully understand the technical differences between the two technologies. However, I sometimes feel like I'm floundering when it comes to the terminology used to differentiate the two.

Example: Say we have two projects:
ProjectA contains "C++" code that builds a .NET assembly DLL.
ProjectB contains Visual C++ code that builds a traditional native Windows DLL.

What is the best way to succinctly and terminologically draw a distinction between the two projects? Again, I'm not asking for an in-depth technical description of the differences between the two technologies. I'm just looking for names and labels.

This is how, today, I might try to make the distinction when talking to someone:

"ProjectA is a managed .NET C++ project"
and
"ProjectB is an unmanaged native C++ DLL project."

However I am not at all certain that this terminology is ideal, or even correct. Please describe what you feel the ideal language to use in this situation (or similar situations) might be. Feel free to motivate your answer.

Best Answer

I would use "C++/CLI" to refer to the managed assembly, and just "C++" (or "native C++") to refer to the other.

C++/CLI is the "official" name of Microsoft's dialect of C++ that supports .NET, so it seems to make sense to use that.

Related Topic