Laden...

Lohnt es sich, ein von VB6 nach VB.NET portiertes Projekt anschließend noch nach c# zu portieren?

Erstellt von macmark vor 16 Jahren Letzter Beitrag vor 16 Jahren 3.593 Views
M
macmark Themenstarter:in
53 Beiträge seit 2006
vor 16 Jahren
Lohnt es sich, ein von VB6 nach VB.NET portiertes Projekt anschließend noch nach c# zu portieren?

Moin zusammen,
ich wollt mal eure Meinung hören : Also.... derzeit bin ich dabei ein recht großes VB6 Projekt auf .NET zu portieren. Plan war bisher erstmal auf VB.NET da eine komplette Neuentwicklung in C# zu lang dauert.
Trotzdem würde ich später gerne zu C# migrieren. Aber bringt es wirklich Vorteile?? Hat da jemand Erfahrung???
Außer das ich C# als Sprache schöner finde! :-> Theoretisch sollte ja VB.NET und C# gleich flott sein und gleiche Möglichkeiten bieten.
Schönen Dank für eure Meinungen.
Gruss
macmark

2.187 Beiträge seit 2005
vor 16 Jahren

Hi.

Nicht nur Theoretisch, sondern auch Praktisch sind C# und VB.NET gleich schnell und haben die gleichen möglichkeiten.

Nach meiner Meinung jedoch ist VB.NET ein Frigelwerk, zusammen geschusterte Syntax, die versucht (und scheitert) den VB6 Programierer ein heimeliches Gefühl zu geben.
Bei C# kammen in der 2.Version nicht viele Änderungen hinzu, bei VB.NET jedoch sehr viele. Woraus ich schließe, dass VB.NET (im vergleich mit C#) nicht sehr ausgereift ist.

Aber die Entscheidung ist eh egal, da es schließlich On-The-Fly Converter giebt, die mit einer nicht messbaren geschwinidkeit den Code von .NET Sprachen umwandeln (C#=>VB.NET=>Managed C++=> usw.). Der Reflector(Tool) steuert die Umwandlung sogar über eine Combobox und ich kann mit meinem Mausrad ohne Verzögerung von C# nach VB.NET wechseln. 🙂

Gruß
Juy Juka

4.207 Beiträge seit 2003
vor 16 Jahren

Derzeit (!) sind VB und C# sich bis auf die Syntax sehr ähnlich, das geht mit der kommenden Version aber auseinander.

VB geht wieder mehr Richtung dynamische Sprache, C# bleibt strikt statisch.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo macmark,

ich wollt mal eure Meinung hören

die in einem C# Forum bei einer Frage VB.NET vs. C# natürlich nicht wirklich repräsentativ ist; immerhin hat sich die Mehrzahl der Mitglieder für C# und gegen VB.NET entschieden. 🙂

Aber bringt es wirklich Vorteile?? Außer das ich C# als Sprache schöner finde!

Na, da geht es dir ja wie uns. Und das ist doch schon mal ein wichtiges Argument.

Theoretisch sollte ja VB.NET und C# gleich flott sein und gleiche Möglichkeiten bieten.

Nein, die Möglichkeiten sind nicht 100%ig gleich. Es gibt immer einige Features, die die eine Sprache hat und die andere nicht. Das meiste ist dann Compiler-Magic, d.h. der Compiler ersetzt bestimmte Konstrukte, die nicht von der CLR unterstützt werden, durch eigenen Code. Und der gerade VD.NET macht einiges an Compiler-Magic. Auf der anderen Seite ist C# die Sprache, die extra mit Blick auf die CLR entworfen wurde und gerade bei Neuerungen in der CLR den vollen Funktionsumfang der CLR tendenziell immer als erste abdeckt.

Die Performace sollte über weiter Strecken gleich sein (inbesondere bei der Benutzung von .NET Klassen natürlich vollkommen gleich) oder zumindest nur minimal abweichen.

herbivore

M
macmark Themenstarter:in
53 Beiträge seit 2006
vor 16 Jahren

Hi herbivore,

Original von herbivore
die in einem C# Forum bei einer Frage VB.NET vs. C# natürlich nicht wirklich repräsentativ ist; immerhin hat sich die Mehrzahl der Mitglieder für C# und gegen VB.NET entschieden. 🙂

... darum gehts mir ja.... Sicher werden nicht alle in dem Forum mit C# angefangen haben sondern evtl Erfahrung haben warum Sie ggfl von Vb zu C# gewechselt sind und nicht direkt wieder ins vb.net gefallen sind .... :->
Generell hätte ich auch gerne das Projekt neu in c# entworfen... aber das hätte das Projekt mindestens ein Jahr lahmgelegt.
Gruss
macmark

M
macmark Themenstarter:in
53 Beiträge seit 2006
vor 16 Jahren

Original von JuyJuka
Der Reflector(Tool) steuert die Umwandlung sogar über eine Combobox und ich kann mit meinem Mausrad ohne Verzögerung von C# nach VB.NET wechseln. 🙂

?? hast du da nen Link ??
Geht das auch mit kompletten Projekten???
Gruss
macmark

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo macmark,

gut, dann erkläre ich nochmal genauer was ich meine: Nehmen wir an 5% aller VB6 Programmierer sind zu C# gewechselt und 95% sind VB.NET gewechselt. Da hörst du hier nur die Argumente der 5% Zu-C#-Wechsler. Die Zahlen sind ausgedacht. Ich habe keine Ahnung wie hoch sie tatsächlich sind. Ich wollte nur darauf hinweisen, dass du die gleiche Frage vielleicht noch mal in einen VB.NET Forum stellen solltest, um die andere Seite der Medaille zu sehen.

Lutz Roeder's Reflector for .NET

herbivore

363 Beiträge seit 2007
vor 16 Jahren

Hi,

wie gesagt, grundsätzlich hast du die Möglichkeit des Codekonverters.
Auf der anderen Seite solltest du dein Projekt sowieso so Modulartig aufgebaut haben, das es nicht dringend notwendig ist sofort alles umzuwandeln.
Schritt für Schritt eine dll würde ja reichen, für den Aufruf müßten dann auch nur kleine Änderungen gemacht werden.

Grundsätzlich muss ich sagen das ich cu c# jetzt nur durch meine momentan laufende Diplomarbeit gekommen bin und vorher primär Java programmiert habe (wenn auch recht überschaubar). Ich muss aber sagen das ich ziemlich begeistert bin von c#, liegt aber auch zum Großteil an dem Visual Studio, welches einem viel Arbeit abnimmt, gerade was die GUI angeht. So geht der Start doch wesentlich flotter von statten.
Bei Jave mit Eclipse ging das nicht so schnell, vorallem da mir da immernoch ein ausgereifter GUI-Editor fehlt.

Alles in allem kann ich sagen, wenn MS es schafft die AufwärtsKompabilität zwischen den einzelnen Versionen zu verbessern. Sprich, wenn ich ein Programm unter 2.0 entwickle soll es auch unter 3.0 laufen, ohne das 2.0 installiert ist. Dann bin ich glücklich.
Ich bin jetzt auf jeden Fall motiviert auch privat mal größere Projekte anzugehen, da diese jetzt merklich schneller umzusetzen sind.

Gruß Cookiie

"Hail to the King, Baby!"

476 Beiträge seit 2004
vor 16 Jahren

hallo macmark,

wie herbivore schon gesagt hat, die Meinung wird in einem C# Forum wohl sehr einseitig ausfallen. Ich selbst bin von VB6 über einen kurzen Ausflug zu Beginn von .NET nach VB.NET zu C# gewechselt. Ausschlaggebend waren hier 3 wesentliche Punkte, der Erste war die klare Trennung im Kopf zu der alten VB6 Syntax, man war doch immer wieder versucht wie in VB6 zu programmieren. Der Zweite war die syntaktische Ähnlichkeit zu Java, was insbesondere das lesen von Code (weil gewohnter) und das adaptieren von KnowHow einfacher machte und der Dritte war der "empfindlichere" C#-Compiler der einfach zu "saubererem" Code führte.

Ich habe auch ein Projekt unter mir, das zum Teil aus VB.NET Assemblies, zum Teil aus C# Assemblies besteht, und kann hierzu nur sagen es funktioniert einwandfrei. Von daher halte ich auch einen "sanften" Wechsel von VB.NET nach C# für möglich.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

476 Beiträge seit 2004
vor 16 Jahren

hallo Cookiie,

Original von Cookiie
Alles in allem kann ich sagen, wenn MS es schafft die AufwärtsKompabilität zwischen den einzelnen Versionen zu verbessern. Sprich, wenn ich ein Programm unter 2.0 entwickle soll es auch unter 3.0 laufen, ohne das 2.0 installiert ist. Dann bin ich glücklich.

ich glaube du bist glücklich, soweit ich weiss gab es dieses Kompatibilitätsproblem nur bei 1.1 und 2.0.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

F
10.010 Beiträge seit 2004
vor 16 Jahren

Ich habe hier schon ziemlich häufig etwas dazu gesagt.

Ich mache jetzt seit ca 7 Jahren .NET.
Ich habe in der Zeit ziemlich viele Projekte von VB6 auf .NET portiert.
Teils im auftrag die ganze Arbeit gemacht, teils die eigentlichen SW-Entwickler unterstützt.

Bei den grösseren Projekten, die von VB6 auf .NET umgestiegen sind, haben sich
diejenigen die sich für VB.NET entschieden haben deutlich schlechter angestellt.
Sie sind ständig über alte herangehensweisen gestolpert, und haben die vorzüge
von .NET selten versucht selber auszuloten.

Diejenigen die auf C# gegangen sind mussten sowieso alles neu lernen, und
konnten so einen echten schnitt machen.

Auch, und das ist meine persönliche Erfahrung, sind "echte" VB6 ler selten bereit
sich mit echter Programmierung auseinanderzusetzen ( Pattern, OOP, TDD....).

Und das der Umstieg auf C# gegenüber VB.NET ein Projekt 1 Jahr lahmlegt, würde bedeuten, das
Ihr schon den Umstieg nicht wirklich geplant habt, sondern einfach nur weiter
machen wollt wie bisher.

M
macmark Themenstarter:in
53 Beiträge seit 2006
vor 16 Jahren

Original von Cookiie
Auf der anderen Seite solltest du dein Projekt sowieso so Modulartig aufgebaut haben, das es nicht dringend notwendig ist sofort alles umzuwandeln.
Schritt für Schritt eine dll würde ja reichen, für den Aufruf müßten dann auch nur kleine Änderungen gemacht werden.

Hi Cookiie,
Modulartig und VB6 paßt nicht so sehr!! :-> Sowas war meiner Meinung immer die Hölle! Auch so ein Grund warum ich zu .NET tendiere. Genial wäre es wenn man in einer Entwicklungsumgebung beide Sprachen programmieren könnte! Sprich das VB.NET Projekt offen und ein neues Modul/WinForm wird in C# integriert.

Gruss
macmark

363 Beiträge seit 2007
vor 16 Jahren

Freudentanz aufführe^^. Schön zu hören, ich merke halt nur das 1.1 noch nicht so das Wahre ist (vielleicht wechsel ich doch noch zu 2.0). Besten Beispiel, Klasse IPAddress, hat in 1.1 schon deprekatet-Eigenschaften, lol sag ich da nur.

"Hail to the King, Baby!"

M
macmark Themenstarter:in
53 Beiträge seit 2006
vor 16 Jahren

Original von FZelle
Bei den grösseren Projekten, die von VB6 auf .NET umgestiegen sind, haben sich
diejenigen die sich für VB.NET entschieden haben deutlich schlechter angestellt.
Sie sind ständig über alte herangehensweisen gestolpert, und haben die vorzüge
von .NET selten versucht selber auszuloten.

... das seh ich genauso und seh da etwas die Gefahr für mich!

Original von FZelle
Und das der Umstieg auf C# gegenüber VB.NET ein Projekt 1 Jahr lahmlegt, würde bedeuten, das Ihr schon den Umstieg nicht wirklich geplant habt, sondern einfach nur weiter machen wollt wie bisher.

... warum weitermachen wie bisher??? Das wollen wir ja eben nicht sondern die Vorzüge des .NET nutzen! Wenn man Zeit hat ein Produkt marktreif zu bekommen nur weil man eine neue Technik bis ins kleinste ausnutzen will heißt das aber auch das man in der Zeit kein Geld damit verdienen kann. Oder hast du schonmal Produkte halbfertig ausgeliefert??
Also müssen wir Wege finden sanft umzusteigen aber nicht in die alten Gewohnheiten zu verfallen!
Gruss
macmark

3.728 Beiträge seit 2005
vor 16 Jahren
Armes VB.NET

Eigentlich ist Visual Basic.NET viel besser als sein Ruf. Es liegt an den Entwicklern und nicht an der Sprache. Wenn man z.B. Option Strict auf "On" einstellt, verhält sich der VB.NET-Compiler genauso pingelich wie der C#-Compiler. Viele VBler machen sich diese Mühe aber nicht. Sie arbeiten stattdessen lieber mit Variablen, ohne diese vorher explizit zu definieren.

Außerdem steigen derzeit viele Amateure und Semi-Professionelle-Entwickler von Office-VBA (Visual Basic for Applications) auf VB.NET um (Denn VBA wird nicht mehr weiterentwickelt). Für diese Leute ist es üblich zu "basteln". Die Lösungen bestehen oft darin, Beispiel-Codeschnipsel (die selber nicht einmal richtig verstanden werden) solange umzubauen, bis es irgendwie funktioniert. Obwohl so etwas einem ordentlichen Programmierer ein Greul ist, kenne ich einige Firmen, die seit Jahren erfolgreich mit Lösungen aus gebastelten Excel-Makros und frickel Access-Datenbanken arbeiten.

Oft könnten sich diese (kleinen) Firmen die professionelle Entwicklung ihrer Lösungen nicht leisten. Standardsoftware ist zu unflexibel. Also machen es die PC-versierten Maschinenbauer, Kaufmänner und Handwerker selber. Mit Visual Basic. RAD lebt!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo macmark,

... das seh ich genauso und seh da etwas die Gefahr für mich!

... warum weitermachen wie bisher??? Das wollen wir ja eben nicht sondern die Vorzüge des .NET nutzen!

Also müssen wir Wege finden sanft umzusteigen aber nicht in die alten Gewohnheiten zu verfallen!

damit zusammen hast du dich m.E. quasi schon für C# entschieden.

herbivore

363 Beiträge seit 2007
vor 16 Jahren

Ok, da sind wir jetzt an einem Punkt wo man so eine Entscheidung und weitere Tipps nur mit Kenntniss des Projektes geben kann.
Wenn ich die richtig verstehe seid ihr mitten im Projekt welches aber noch in VB.net programmiert ist. Ihr überlegt aber umzusteigen auf c#. Naja, wenn du sagst das vb eher modulfeindlich ist, dann würde so schnell es geht umsteigen, weil wenn ihr das Projekt fertig habt, wirds noch umständlicher und dauert noch länger, zumal der Support etc ja weiterhin erstmal in vb erfolgt usw.
Oder Variante 2, scheiß drauf und erst beim nächsten Projekt umsteigen, da aber von Anfang an. Aber wie gesagt, da bist der derjenige der das bewerten und entscheiden muss.

Gruß Cookiie

"Hail to the King, Baby!"

M
macmark Themenstarter:in
53 Beiträge seit 2006
vor 16 Jahren

Hi an alle!
erstmal Danke für die rege Beteiligung!

Original von Rainbird
Eigentlich ist Visual Basic.NET viel besser als sein Ruf. Es liegt an den Entwicklern und nicht an der Sprache.
....
RAD lebt!

.... dem kann ich voll zustimmen!! VB6 ist auch viel besser als sein Ruf. Aber viele Dinge sind einfach nicht mehr zeitgemäß. Und ein Programmierer der VB6 einsetzt ist nicht automatisch ein semiprofessioneller oder Hobbyprogger! :->
Ich denke mal das ich erstmal weiter das Projekt auf vb.net hochhebel! Da muss ich noch mit einigen Fremdkomponenten kämpfen die wir bisher in VB genutzt haben aber nicht mehr .net tauglich sind. Und danach schrittweise Komponenten in c# umbaue.
Gruss
macmark

476 Beiträge seit 2004
vor 16 Jahren

hallo macmark,

Original von macmark
Und danach schrittweise Komponenten in c# umbaue.

das halte ich für sinnvoll, allerdings würde ich die fertigen Komponenten ruhig in VB.NET lassen, es muss ja nicht zwingend alles in derselben Sprache entwickelt sein.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

S
8.746 Beiträge seit 2005
vor 16 Jahren

Es ist ja gerade ein Vorteil von .NET, dass man in der Wahl der Sprache frei ist. Ich würde mir jedenfalls keine Mühe machen, irgendwas zu portieren. Das bißchen Syntax um den Code zu verstenen, zieht man sich in Nullkommanix rein. Neuen Code kann man dann ja meist in der gewünschten Sprache schreiben.

3.728 Beiträge seit 2005
vor 16 Jahren

Original von macmark
Und ein Programmierer der VB6 einsetzt ist nicht automatisch ein semiprofessioneller oder Hobbyprogger! :->

Das habe ich auch nicht gesagt. Ich programmiere selbst momentan auch noch VBA und VB 6.0 (Man kann laufende Projekte nicht einfach wegwerfen, nur weil es jetzt eine modernere Technologie gibt). Ich habe nur gesagt, dass VB/VBA häufiger von solchen Programmierern verwendet wird, als beispielweise C#.

.NET hat (im Gegensatz zu Java) sehr gute COM-Unterstützung. Deshalb funktioniert auch eine "sanfte" Migration (Alte und neue Elemente gemischt) ganz ausgezeichnet. Wenn das strukturiert gemacht wird und es klare Schnittstellen gibt, kann man so alten Code weiterverwenden und langsam Stück für Stück auf die neue Technologie umsteigen. Anfangs sind es vielleicht nur einzelne Klassen und irgendwann wird auch die letzte VB6-DLL ausgemustert.

L
254 Beiträge seit 2005
vor 16 Jahren

Hmm ich möchte hier aber noch was loswerden (auch wenn der Post nicht mehr ganz aktuell ist)

  • C# ist die "Hauptsprache" von .NET, die Sprache wird tendenziell mehr gegflegt als VB.NET.

  • C# mal in der Version 1 unterstütze diese TrippleSlash /// Quellcode kommentare, VB.NET nicht. (XML-Comments)
    Das ist für mich eines der wichtigsten und zentralsten Argumente gegen VB.NET, kann aber anscheinend "nachgerüstet" werden.

  • C# ist nicht nur ähnlich zu Java, sondern auch zu vielen anderen Sprachen die eher strenger aus der Objektorientieren Sparte kommen (Prozeduren und Funktionen gibt es da eher selten, bin aber auch nicht allwissend.)

  • Bei C# wurde z.B. bewusst auf den "optional" parameter verzichtet um "saubere" Schnittstellen hinzubekommen und den Entwickler zu zwingen "schön zu schreiben". Bedeutet teilweise ein wenig mehr aufwand/nachdenken empfinde ich aber als richtigen weg.

sehr schön finde ich diesen Artikel von Wiki;
http://en.wikipedia.org/wiki/Comparison_of_C_sharp_and_Visual_Basic_.NET

  • Ich persönlich vermisse bei C# das "with" keyword das ich noch aus vb6 zeiten kenne, das ist aber das einzige und schmerzlich ist es auch nicht. With ist ja aber ein VB6 Sprachfeature, also fraglich ob es überhaupt in c# gehört.

--> hier die Gründe warum sie es nicht gemacht haben,
http://msdn2.microsoft.com/en-us/vcsharp/aa336816.aspx

Gruss

If you can't make it, fake it.