Mittwoch, Juli 06, 2005

DEV331 Visual C++ and .NET: Great Performance, Full Access and Easy Migration of Existing Code


Ronald Laeremans


Nun noch die Session, auf die ich heute den ganzen Tag gewartet habe,. Hoffe, das ich noch aufnahmefähig bin... die Session begann um 19.30 ...
In VS 205 C++ ist eine .net first-class language. (Juhu)
Mit dem neuen VS kommt für C++ auch eine neue Syntax, welche besser lesbar sein soll und "natürlicher" sei. Sie soll so ausgelegt sein, dass der Umstieg auf eine andere .net first class language nicht schwer sein soll. Die neue Syntax ersetzt die Managed Extensions. Es sei so nicht mehr nötig, C# oder VB.net zu lernen... Toll, das sagen Sie mir erst jetzt ;-) wenn ich das gewusst hätte....
Neu ist der volle VS Support (Designer etc.) für C++ verfügbar, genau gleich wie für die anderen Sprachen. Wichtig ist die Aussage, das der bestehende Code nicht zwingend geändert werden muss. Es ändert sich einfach nichts, will heissen, das man weiterhin mit COM etc. arbeitet. Natürlich es es dann auch nicht möglich, auf das Framwork 2.0 zuzugreifen. In C++ 2005 ist der selbe Support vorhanden wie in C#.(exakt der selbe) Auch neu ist das Verwenden der #using direktive. (und #import und #inlcude).(Analog C#)
"Managed assemblies describe themselves with metadata ,used instead of header files or type libraries"
Es gibt neue Type Categories. Dies sei zwingend gewesen für die interoperation mit den anderen Sprachen. Die Typen werden deklariert mit "spaced keywords"

class N { /*…*/ }; // native
ref class R { /*…*/ }; // CLR reference type
value class V { /*…*/ }; // CLR value type
interface class I { /*…*/ }; // CLR interface type
enum class E { /*…*/ }; // CLR enumeration type


Properties sind neu "Elegant and intuitiv"

// Visual C++ 2003

// get_Full
__property int get_Full(void)
{
return full;
}

// set_Full
__property void set_Full(int value)
{
full = value;
}



// Visual C++ 2005

property int Full
{
int get( void )
{
return full;
}
void set( int value )
{
full = value;
}
}
// Compiler generated
property int Simple;




Neu sind auch die Specifiers ..
"Can qualify override behaviour for derivation"

abstract class or function is abstract
sealed class or function cannot be a base
override function must override base version
new function is not an override of base

Neu gibt es einen Handle OPerator ^ . Dieser sei gleichzusetzten zum Pointer *.
Der C++ Destruktor "maps to the CLR Dispose". Will heissen, das man zukünftig anstelle des Destructors einfach ein xxx.Dispose() macht...

Er zeigte dann noch ein paar Code-Snippets...ehrlich gesagt wird es zukünftig relativ schwer, C# code von managed bzw. C++ 2005 Code unterscheiden kann.....

Keine Kommentare: