ST
2009-05-22 01:19:01 UTC
Hi all
We are about to start a new project from scratch. Performance and
development time are important issues. Thus, we have decided to make
use of .NET with respect to short development time and native
(unmanaged) C++ as the language of the low-level business layer. All
objects of this unmanaged code will be included in a dll.
However, there's one thing that makes me wonder: In order to make use
of .NET, we have to choose between managed C++ and C#, but: What is
the benefit of managed C++ in our scenario?
To make things clearer: Consider an native C++ dynamic class library
allocating memory, making use of C math libraries and performing high
performant calculations. Am I right in thinking that calling this
class by the managed code by
unmanagedScope::BusinessClass* pBs = new std::BusinessClass();
(NOT gcnew) would create performance overhead anyway? If so, the
object must not be created by the managed, but by the unmanaged code,
right? A native wrapper would create the object and pass the data of
the managed stuff. If so, I would not need managed C++ at all and I
would use C# instead.
Do I have missed something? Your oppinions? Hints?
Thanks in advance
ST
We are about to start a new project from scratch. Performance and
development time are important issues. Thus, we have decided to make
use of .NET with respect to short development time and native
(unmanaged) C++ as the language of the low-level business layer. All
objects of this unmanaged code will be included in a dll.
However, there's one thing that makes me wonder: In order to make use
of .NET, we have to choose between managed C++ and C#, but: What is
the benefit of managed C++ in our scenario?
To make things clearer: Consider an native C++ dynamic class library
allocating memory, making use of C math libraries and performing high
performant calculations. Am I right in thinking that calling this
class by the managed code by
unmanagedScope::BusinessClass* pBs = new std::BusinessClass();
(NOT gcnew) would create performance overhead anyway? If so, the
object must not be created by the managed, but by the unmanaged code,
right? A native wrapper would create the object and pass the data of
the managed stuff. If so, I would not need managed C++ at all and I
would use C# instead.
Do I have missed something? Your oppinions? Hints?
Thanks in advance
ST