Frage von gerredtor, 72

C# als Programmiersprache für Verkaufssoftware?

Hallo,

Ich Arbeite seit kurzer Zeit als Entwickler und habe nun die Aufgabe einenGewerblichen "Track-Player" zu schreiben...

Dieser Track Player spielt ein paar voreingestellte Tracks abund besitzt eine kleine Spracherkennung,Technisch ist das für mich kein Problem..

Nun ist nur die Frage ob es eine gute idde ist das ding in C# zu schreiben,weil:

  • mir ist aufgefallen das NEUE VB, C# programme gerne als Virus erkennt werden
  • sie können leicht decompiliert werden
  • laufen ev. instabiler(kleineres problem, weil das programm nicht viel arbeiten muss)

Der hauptpunkt ist halt die Viren erkennung, das Programm soll halt auch vermarktet werden...

Wenn es sein muss werde ich mir auch Phyton oder Delphi anlernen.

Wollte nur mal die meinung anderer hören.

Expertenantwort
von regex9, Community-Experte für Programmierung, 51
C# reicht aus
  1. Eine Signierung deines Programms sollte doch ausreichend sein.
  2. Nutze Tools wie: https://msdn.microsoft.com/de-de/library/ms227255(v=vs.90).aspx; des Weiteren sind auch Java, Python oder Delphi dekompilierbar
  3. Was meinst du mit "instabiler"? 
  4. Wieso Delphi / Python? 
Antwort
von CrystalixXx, 28
C# reicht aus
  1. Diese komischen .Net Programme von Kiddys aus dem Internet würde ich nicht als Referenz nehmen. Ich programmiere selber seit fast 10 Jahren in .NET und hatte nicht eine Falsch-Erkennung meiner Programme.
  2. Jede Sprache ist mit dem richtigen Werkzeug "leicht zu decompilieren". Wie erwähnt gibt es Obfuscatoren (für .NET z.B. Dotfuscator).
  3. .NET Programme laufen nicht instabiler (was auch immer das bedeutet). Es kommt eben auf den/die Entwickler an, wie sie ihre Software schreiben.


Was ist übrigens das "NEUE VB"? Wenn du damit das VB für .NET meinst, dann heißt das VB.NET und hat wenig mit VB (VB6 und niedriger) gemeinsam. Eigentlich dämlich, dass die erste VB.NET Version als VB7 bezeichnet wurde. Die Unterschiede sind meiner Meinung nach zu gravierend, um es als Weiterentwicklung zu sehen. Vorallem auch verwirrend für viele - sieht man ja.

Letztendlich ist es aber sowieso egal, ob du in VB.NET oder C# programmierst - oder eben Delphi oder Python.. oder in was auch immer. Du musst nur schauen, ob die Sprache für dein Problem geeignet ist. Meiner Erfahrung nach wäre dein Problem in C# (oder VB.NET) moderat und überschaubar zu lösen.

Antwort
von gerredtor, 24

Hallo, danke für die Fixen antworten,

Mit instabiler meinte ich das ja .Net code ja nicht direkt in maschinen code compiliert wird.

und das sieht bei Lazarus/Pascal und dem ganzem anders aus, aber ist hier eher egal weil es sich nur um einen "Player" Handelt.

Mit der Viren erkennung hatte ich schon öfters probleme gerade wenn es darum geht einen Updater zu schreiben oder wenn was in der regestrierung gemacht wird(installer z.b.) etc..

Kommentar von gerredtor ,

achja und mit NEUE c# oder vb.net programme meine ich nicht VB6 oder so sonder, frisch programmierte programme

Kommentar von regex9 ,

Ich verstehe das Problem mit der angeblichen Instabilität ehrlich gesagt immer noch nicht.

Kommentar von CrystalixXx ,

Die Übersetzung einer Anwendung in nativen Code erzeugt genauso viel Stabilität wie die Erzeugung von MSIL Code - nämlich gar keine. Eine Anwendung ist nur so stabil, wie sie der Entwickler geschrieben hat.

Die Übersetzung in MSIL Code hat den Vorteil, dass das Programm maschinenunabhängig ist. Die CLR sorgt außerdem dafür, dass dadurch ausgeführter Code als managed gilt.

Wenn du aber auf eine JIT-Kompilierung (die übrigens Sicherheitsüberprüfungen vornimmt, wie z.B. ob der MSIL Code gültig ist (Code-Manipulation), Parametertypen an Methoden externer Bibliotheken gültig sind, unerlaubte Speicherzugriffe, ...) verzichten möchtest, dann kannst du deine in .NET erstelle  Anwendung in nativen Code übersetzen lassen, dafür gibt es NGEN. Damit ist deine Anwendung aber nicht mehr plattformunabhängig. Die Laufzeitumgebung (das .NET Framework) ist allerdings in beiden Varianten notwendig.

Keine passende Antwort gefunden?

Fragen Sie die Community