003
27.02.2008, 14:11 Uhr
ao
(Operator)
|
Zitat von pler: |
Vorteile wären die meiner Meinung nach einfachere Entwicklung, die höhere Sicherheit (im Sinne von Speicher etc.) und vor allem gibt's noch ne C#-GUI, die auf das Projekt aufsetzt. Die Zusammenarbeit zwischen Lib und GUI wäre also einfacher.
Nachteil wäre natürlich daß Arbeitszeit beim Umschreiben drauf geht. Ich denke aber, daß man das später wieder rausholen kann. (Projekt geht immer weiter)
Angst habe ich davor, daß das ganze zu langsam wird.
|
Das "Projekt", von dem du sprichst, ist die Library, die von der C#-GUI bedient werden soll? Und die ist bisher mit was geschrieben? Standard-C++? MFC? COM? Was anderes?
Womit wird die Lib denn zur Zeit bedient? Mit einer alten C++-GUI? Kann die abgesägt werden, wenn die neue lauffähig ist?
Eine "dumme" 1:1-Übersetzung von C++ nach C# bringt wenig, wenn man dabei alle alten Fehler wiederholt.
Arbeitet euch in C# ein, bis ihr wisst, welche Vorzüge die Sprache bringt (es sind einige). Lernt das .NET-Framework kennen, da ist viel viel nützlicher Kram drin, nicht nur abgerundete Buttons und mehrfarbige Comboboxen, das kann weit mehr.
Wer sich im Framework auskennt und die Möglichkeiten konsequent nutzt, der kann 1. rasend schnell implementieren und braucht 2. praktisch keine weiteren Bibliotheken, außer für sehr spezielle Dinge (z.B. Signalverarbeitung oder Statistik, oder für ganz ausgefuchste Controls). Wer bisher nur C++ kennt und sich an allen Ecken Toolboxen zusammengesucht hat: Vergesst das, das braucht ihr nicht mehr. Wenn ihr Java kennt, wisst ihr ungefähr, in welcher Liga C#/.NET spielt.
Wenn ihr die neue Umgebung kennengelernt habt, dann macht ein genaues Design-Review von eurem Projekt. Was stört am alten Aufbau, was sollte man besser machen und wie würde es in C#/.NET gehen?
Wenn ihr diese Pläne habt, dann fragt euch, ob die Vorteile den Aufwand rechtfertigen. Nicht früher. Macht euch nichts vor - die Entscheidung, ob portiert wird oder nicht, kann leicht ein, zwei Mannmonate verschlingen, auch mehr, wenn eine größere Zahl Leute beteiligt ist. Aber nur so wird es eine fundierte Entscheidung.
Hier bei uns haben bis 2004 rund 16 Entwickler viel C++ (COM-Server) und ein bisschen Visual Basic gemacht. Mit dem Erscheinen von Visual Studio 2005 Beta begannen einige den Test mit C#, und inzwischen sind fast alle umgestiegen, und zwar mit voller Überzeugung, es gibt keinen, der der alten Welt nachtrauert. Und ich würde sagen, das Entwicklungstempo hat sich insgesamt verdoppelt, bei gesteigerter Codequalität (Dokumentation, Klarheit der Schnittstellen, Fehlerhäufigkeit).
Wir haben es geschafft, unsere alten COM-Bibliotheken in Interop-Assemblies zu verpacken, so dass sie nicht verloren sind. Auch das hat Zeit gekostet, bis es richtig funktionierte, mit Deployment und allem. Trotzdem war die Entscheidung 100 % richtig.
Ich will nicht sagen, dass das auf euch 1:1 übertragbar sein muss. Aber die Vorteile einer modernen Plattform sind größer als man im ersten Anblick meint. Ihr solltet es "wohlwollend" prüfen.
Zu deinen Sorgen, was Geschwindigkeit angeht: Ich glaube, die C#/.NET-Designer haben aus den Schwächen von Java gelernt. Es gibt (neben der "hohen" Ebene) Möglichkeiten, auf "tiefer" Ebene C++-ähnlich zu programmieren - wenn es denn sein wirklich muss. Performance ist eine Frage des Designs, nicht der Programmiersprache. Auch das könnte ich mit Erfahrungen aus dem Nachbarbüro belegen - darf ich aber nicht
ao |