I don't think the differences between C++ and C# (a .NET language) are that great.
The main things that C++ has that C# doesn't are: pointers, unmanaged dynamic memory and C strings.
There are probably equal numbers of people who will tell you that a) those things are bad or b) those things are good. It basically depends on your point of view.
You don't have to use the more advanced features of C++ and you can create perfectly good applications without touching pointers, C strings or dynamic memory. Using C++ has definitely helped me develop my programming skills; I think it trains users to find bugs and program effectively.
C# is a safer language in terms of how likely you are to create serious bugs, but without touching the advanced features of C++ it could be argued that C++ is equally as safe.
In terms of productivity (how much you can get done) I would say that C# is slightly better because it has lots of nice features like putting .ToString at the end of something converts it to a string. This is harder to do in C++ especially with C strings. Saying this, I would say an expert C++ and expert C# programmer could probably do most things in a similar amount of time.
Performance wise C# performs slightly worse on most tasks, I think it is around 10% worse. Obviously this varies depending on what the task is.
As far as DGDK is concerned, the C++ version is not object orientated so you will be using it in a very similar way to how you would in DBP i.e. with IDs for everything. This is silly in my opinion and it surprises me that DBP was developed in this way. However you can get wrappers which make it object orientated and that is essentially what the .NET version of DGDK is.
In conclusion, performance isn't an issue for most tasks as the difference isn't significance. C# is slightly easier than C++ but doesn't have some advanced features that C++ has. C# is more secure and you are less likely to develop buggy software as you can't get things like memory leaks (unless a plugin is buggy).