Laden...

C++.Net C#

Erstellt von Joerg vor 18 Jahren Letzter Beitrag vor 18 Jahren 1.568 Views
J
Joerg Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren
C++.Net C#

Hallo,
Wo liegt der Unterschied zwischen C++.Net und C#?
Wann sollte man das eine und wann das andere nehmen?
Es gibt in VS verschiedene Auswahlmöglichkeiten bei C++:
.Net
ATL
MFC
Win32
Allgemein

Wo liegen hier die Unterschiede?

Gruß Joerg

S
709 Beiträge seit 2005
vor 18 Jahren
Allgemeine Unterschiede

Wenn du vorher schon mit C++ programmiert hast, und davon nicht weg willst würde ich dir halt C++ empfehlen. C# wurde von MS komplett neu entwickelt und enthält Ideen von Java und C++. C# kann man eigentlich mit C++ nicht mehr so stark vergleichen. Aber wies von der Performance ausschaut weis ich nicht. Ich vermute aber, dass die ziemlich gleich ist, da ja beide Sprachencompiler IL Code erzeugen. Was der Unterschied zwischen diesem ATL, .NET, usw. ist frage ich mich auch.
Ich hoffe, das hilft 😁

M
456 Beiträge seit 2004
vor 18 Jahren

Bei C++/Cli hast du vom Prinzip her ein ganz "normales" C++ mit einigen Erweiterungen um .NET spezifische Techniken zu nutzen (Generics, Properties, Events,...). Auch ist es möglich nativen C++ Code und .NET Code zu mischen.
Da wären wir auch schon bei der Anwendung: Du kannst zeitkritische Routinen mit C++ optimieren. Außerdem bietet es dir die Möglichkeit auch alten unverwalteten Code relativ nahtlos zu integrieren (WinAPI, COM). Kurz gesagt: für die Migration von WinAPI nach .NET ist C++/Cli sehr gut geeignet. Auch bei hardwarenaher Programmierung bist du bei C++ gut aufgehoben. Für die allgemeine Anwendungsentwicklung wird wohl in Zukunft (speziell unter Windows) C# mehr Bedeutung erlangen. MS entwickelt auch deshalb fast jede neue Technologie für Longhorn in C# (Avalon, Indigo, Monad, Die .NET/WinFX Laufzeitbibliothek, ...)

.Net
ATL
MFC
Win32
Allgemein

Win32 und MFC sind ab der nächsten Windowsversion quasi deprecated. MFC wird zwar noch gepfleget, aber das wird eher aus Gründen der Migration gemacht, um es den C++ Programmieren einfacher zu machen ihren Code zu portieren.
Wenn es nach MS geht, ist .NET/WinFX die Plattform, mit der in Zukunft Windowsanwendungen entwicklet werden.

I am Jack's smirking revenge.
I am Jack's raging bile duct.
I am Jack's cold sweat.
I am Jack's complete lack of surprise.
I am Jack's broken heart.
I am Jack's wasted life.

S
8.746 Beiträge seit 2005
vor 18 Jahren

Für reine .NET-Programmierung ist C# die bessere Wahl. Managed C++ ist eine Krücke.

C++ im Kontext von .NET einzusetzen macht nur bei der Integration von C++-Alt-Code Sinn.

N
4.644 Beiträge seit 2004
vor 18 Jahren

Original von Joerg
Hallo,
Wo liegt der Unterschied zwischen C++.Net und C#?
Wann sollte man das eine und wann das andere nehmen?

Was willst Du denn machen ( "normale" Programme für Windows schreiben, systemnahe Programmierung ) ?

Original von Joerg
Es gibt in VS verschiedene Auswahlmöglichkeiten bei C++:
.Net
ATL
MFC
Win32

Mal ganz grob gesagt, .NET ist managed und der Rest nicht.

1.549 Beiträge seit 2004
vor 18 Jahren

Was willst Du denn machen ( "normale" Programme für Windows schreiben, systemnahe Programmierung ) ?

bei systemnahe wirst du bei .NET warscheinlich scheitern aber grundsätzlich ist zu sagen das wenn du schon mit java gearbeitest hast du seher leicht mit C# anfangen kannst.

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

N
4.644 Beiträge seit 2004
vor 18 Jahren

Original von S.H.-Teichhof
bei systemnahe wirst du bei .NET warscheinlich scheitern

Jep, aber ich meinte es ja auch nicht auf .NET bezogen, eher allgemein.

J
Joerg Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren

Hallo
Danke für die zahlreichen Beiträge.
Zur Info:
Ich selber komme aus der VB Ecke!
Bei meinem neuen Arbeitgeber soll ich Programme für den PDA mit C# entwickeln.
Am allerliebsten wird hier aber C/C++ gesehen.
Der Sprung von VB/VB.NET zu C# ist für mich aber wesentlich einfacher als zu C/C++.
Früher oder später muss ich mich aber trotzdem in C/C++ einarbeiten.
Mein Arbeitgeber hält eigentlich nicht viel von dem neuen Sachen!Die Programme die hier über Jahre entwickelt wurden,sind alle in tiefsten C geschrieben.

Was soll dieses C++/Cli sein?

Ich als Quereinsteiger(seit einem Jahr mit der Umschulung fertig) wollte hier nur mal erfahren was die Auswahlmöglichkeiten in VS zu bedeuten haben und für was man die so einsetzt.

Bis hierher erstmal Danke!

Gruß Joerg

1.549 Beiträge seit 2004
vor 18 Jahren

Auch wenn ich niemand auf falsche Ideen bringen möchte warum nimmst du wenn du schon VB Kannst nicht VB.NET
Auch wenn ich persönlich um jeden trauere der so „hässlichen“ Syntax Produziert

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

S
8.746 Beiträge seit 2005
vor 18 Jahren

Kleine Warnung: Im .NET/Compact Framework (also für PDAs) gibt es erhebliche Beschränkungen. Prüfe vorher genau, ob deine PDA-Anwendung überhaupt mit dem CF zu realisieren ist. Bei manchen Anwendungen muss man so oft auf das WinCE-SDK runter, dass man gleich in C++ arbeiten kann.

Gerade wenn man Chefs hat, die dieses "neue Zeugs" als Voodoo ansehen kommt man in Teufels Küche, wenn man später ankommt und sagt: Geht nicht wegen CF....

Und diese Chefs sind auch mit Sicherheit lernresistent.... was in ihrer Jugend/Anfängerzeit galt, wird IMMER gelten... ansonsten müßten sie sich und den anderen ja eingestehen, dass sie weniger wissen als ihre Mitarbeiter....no go!

J
Joerg Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren

Hallo,
zu der Frage warum ich nicht VB.NET benutze:
Weil Chef eine Abneigung gegenüber VB hat und in C# nun mal ein C ist!
Er meint,wenn ich Probleme hätte könne er oder die Kollegen mir bei C# besser weiter helfen als bei VB!
Ein Problem bezüglich meines Programms für den PDA hatte ich schon, welches ich mit C# mit lösen konnte.

Herstellen einer DFÜ-Verbindung.
Diese Funktionalität hatten die Kollegen für andere Programme schon mal in C umgesetzt.Brauchte es also nur mit Embedded C++ für den PDA anpassen.
Rufe jetzt aus meinem C# Programm ein Unterprogramm zur Herstellung der DFÜ Verbindung auf.
Es gibt zwar den ConnectionManager, aber damit habe ich das Problem nicht lösen können!

Gruß Joerg

S
8.746 Beiträge seit 2005
vor 18 Jahren

Original von Joerg
Er meint,wenn ich Probleme hätte könne er oder die Kollegen mir bei C# besser weiter helfen als bei VB!

Ich dachte die können nur C++. Wir sollen die dir bei C# helfen? Weil ein "C" bei beiden davor steht?

Herstellen einer DFÜ-Verbindung.
Diese Funktionalität hatten die Kollegen für andere Programme schon mal in C umgesetzt.Brauchte es also nur mit Embedded C++ für den PDA anpassen.

Du weisst aber, dass es die DFÜ-Verbindung so auf dem PDA gar nicht gibt!? Insofern wirst du ein Problem beim Umschreiben bekommen. Windows-Applikationen auf einen PDA zu portieren bedeutet in der Regel ein komplettes neucoden..... ist leider bei .NET auch nicht viel anders.

J
Joerg Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren

Hallo,
Ja die Leute hier arbeiten hauptsächlich mit C/C++.
Wie schon gesagt es gibt diese Abneigung gegenüber VB. Ausserdem ist man der Meinung gleich in einer Programmiersprache zu programmieren womit man alle Aufgaben bewältigen kann.

Nochmal zum Thema DFÜ:
Hatte da den Vorteil,das eine fertige Function (in C) vorhanden war!
Bis auf einige Änderungen von Datentypen(Ansi ->Unicode) konnte ich die Function fast so übernehmen. Läuft!

Gruß Joerg