Danke für die Antworten. Ich habe mir C# besser angeschaut und
ich glaube man kann nichts falsch machen, wenn man die Sprache
lernt, weil man gleichzeitig die Klassenbibliothek von NET
Framework lernen muss und die ist für alle Sprachen gleich.
Die Sprache selbst ist nur 10% von dem Programm, was man
schreibt, 90% sind die Klassen aus der Bibliothek. Ich hätte
noch Fragen zu FCL:
Sind die Klassen von Net genauso schnell wie MFC und kann man
damit alles machen was mit MFC möglich ist? Wird FCL später
MFC ersetzen oder muss man für richtige Windows Programme MFC
anwenden und FCL hauptsächlich fürs Internet?
So pauschal gefragt wirst Du da keine vernünftige Antwort bekommen, weil es garantiert Klassen/Funktionalitäten gibt, die MFC hat und die FCL nicht und umgekehrt.
Mit den .NET Klassen kann man aber alles machen, was man für Desktop-, Internet- oder mobile Anwendungen braucht.
Falls mal etwas nicht direkt verfügbar ist, dann kann in aller Regel über einen Mechanismus namens P/Invoke (Platform-Invoke) oder COM-Interoperabilität gearbeitet werden. Ersteres entspricht - grob gesagt - dem, was VB’ler schon länger machen müssen, wenn sie Win32 Funktionen aufrufen wollen und letzteres ermöglicht es, COM Klassen fast wie native .NET Klassen zu verwenden.
Wie wird C# eigentlich kompiliert, läuft es nur auf Windows XP
oder nur auf PCs mit Net Framework? Hoffentlich ist es nicht
so langsam wie Java!
C# wird, wie andere .NET Sprachen kompiliert, ähnlich wie Java auch in eine IL. Die wird dann von der CLR (Common Language Runtime) ausgeführt. Da hierbei JIT-Compiler zum Einsatz kommen und man auch im Vorfeld schon plattformspezifisch compilierte DLLs erzeugen kann, sollte die Geschwindigkeit eigentlich für die meisten Anwendungen OK sein.
Und auch hier lässt sich wieder tricksen, wenn man bspw. megabyteweise Bilddaten in Echtzeit manipulieren will.
.NET Programme (egal ob C#, VB.NET, J#, usw.) brauchen zum Laufen aber immer das .NET Framework. Das gibt es für fast alle Windows-Versionen von MS, aber unter dem Stichwort „Mono“ findest Du im Netz auch ein nicht-Windows-spezifisches .NET.
Martin