Multilinguale Kommentare für dll-Funktionen

  • VB.NET
  • .NET 4.5

Es gibt 17 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Multilinguale Kommentare für dll-Funktionen

    Hallo Leute,

    ich bin gerade dabei eine dll in VB.NET zu schreiben. Mit verschiedenen Funktionen die ich in meinen eigenen Programmen immer wieder verwende.

    Am Screenshot sieht man, wie der Kommentar beim Einbinden aussieht.
    Aktuell habe ich die Kommentare in deutscher Sprache verfasst.
    Wie bekommt man es hin, dass auf einem Entwicklugnsrechner mit englischer Regionseinstellung die Beschreibung in Englisch erscheint.
    Gibt es da irgendwas für multilinguale Kommentare?


    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Berechnet das Datum des Ostersonntags
    3. ''' </summary>
    4. ''' <param name="H_year"></param>
    5. ''' <returns></returns>
    6. Public Shared Function BOEaster(ByVal H_year As Integer) As DateTime
    Bilder
    • Unbenannt-1.jpg

      23,02 kB, 620×223, 48 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): bocomponent.com | freeremarkabletools.com
    @dive26 Nein, das gibt es dafür nicht.
    Diese Kommentare landen in einer XML-Datei, die neben der DLL bzw. EXE liegt und deren Namen trägt.
    Was Dir wohl vorschwebt, ist dies:
    Programme mehrsprachig erstellen
    Da werden Texte im Programm selbst lokalisiert.
    Du müsstest die Texte der besagten XML-Datei übersetzen und dann die eine oder die andere XML-Datei beifügen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Vielen Dank für die Antwort. Sowas in der Art habe ich mir schon gedacht. Die MS Beschreibung gibt auch nichts her.
    Dann ist es wohl am einfachsten die Comments zweisprachig zu verfassen.

    Danke und Prosit Neujahr
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): bocomponent.com | freeremarkabletools.com
    Ich habe zu den DLL´s noch eine Frage, wollte aber nicht den Thread von 2013 aufwärmen.

    Wenn ich die DLL kostenpflichtig machen möchte, wie kann ich verhindern, dass man die dll mit Visual Studio einfach öffnen und den Code einsehen kann?
    Die Lizenzierung selbst mache ich in der DLL, das ist kein Problem. Mit BOSetLicense() wird einfach ein Lizenzschlüssel übergeben.

    Aber wie verhindert man den Zugriff auf den Sourcecode selbst?
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): bocomponent.com | freeremarkabletools.com
    Bei NET Assemblys gar nicht. Den Quellcode kannst du dir immer zurück holen.
    Man kann Obfuskieren aber das birgt das Risiko das deine DLL als Virus erkannt wird /
    nicht mehr ordentlich Debugbar ist usw.

    Daher rate ich eher davon ab zu Obfuskieren und einfach eine Ordentliche Lizenz mitzugeben die alles
    mögliche verbietet was du nicht willst. Macht es jemand kannst du Rechtlich gegen vorgehen.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    @dive26 Es gibt die Möglichkeit, die DLL zu verschlüsseln und das Starten per Dongle zu ermöglichen.
    Hab ich schon mal in der Hand gehabt, Einzelheiten dazu weiß ich jedoch nicht.
    Alternativ mach eine CLI-DLL mit angelinktem nativen C++-Code, da geht nix zurückzuholen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Dank @RodFromGermany und @xChRoNiKx

    Auf die "Ehrlichkeit" der Menschen darf man leider heutzutage nicht vertrauen, auch wenn das von Dir gut gemeint ist.
    Bei den ordentlichen Lizenzbestimmungen stimme ich Dir vollständig zu.

    Ich habe mir das mit dem Obfuskieren mal näher angesehen. Das reicht mir aus. Anbei einmal normal und einmal obfuscated.
    Debugen kann ich es ja in der debug Version und das Release wird automatisch obfuskiert.
    Ich verwende einfach das Plugin "ConfuserEx". Es hält zwar niemanden vollständig ab den Code einzusehen, aber zumindest können "Normalprogrammierer" damit nicht viel anfangen.

    Habe es mit JustDecompile gegengeprüft:
    Bilder
    • 01012021163331.jpg

      491,39 kB, 1.307×1.046, 39 mal angesehen
    • obfuscated.jpg

      564,31 kB, 1.283×1.029, 37 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): bocomponent.com | freeremarkabletools.com
    Normalprogrammierer laden das trotzdem rein und umgehen deinen Schutz. Es ist egal wie du es drehst und wendest
    an deinen Code kommt man immer. Und cracken kann man es auch immer siehe Adobe/Microsoft oder sonst welche Firmen die Millionen
    in sowas stecken und innerhalb eines Tages ist das geknackt.

    In meiner Umgebung habe ich eher die Erfahrung gemacht das je offener der Code ist desto bereiter sind die Menschen auch
    Lizenzgebühren zu zahlen. Einerseits können andere Leute dir helfen (kostenlose Arbeitskraft wenn man so will) und auf der anderen
    weiß immer jeder was drin ist.

    Ich z.b. nutze gar keine DLLs die mit irgendwelchen Obfuskatoren verhunzt sind weil die Gefahr einfach zu groß ist das ich beim rein schnuppern
    was übersehe und mir irgendwelche Daten geklaut werden oder sonst irgendwas angestellt wird.
    Und wie gesagt noch das Thema das deine DLL unter umständen auch als Virus erkannt wird wegen der Verschleierung.

    Beim Debuggen rede ich davon das wenn Fehlermeldungen beim Kunden auftreten und da irgendwelche unbehandelten Ausnahmen passieren
    da gibt es dann keinen super tollen mega guten Stacktrace. Auch verursacht so eine Obfuskation gerne mal unerwünschte Nebeneffekte die erst zu
    Fehlern führen.

    Abhalten kann ich dich sicher nicht davon du fühlst dich jetzt mit der "Pseudosicherheit" gut aber im Endeffekt machst du dir das Leben schwerer als es ist.

    Fazit: Wenn jemand deinen Code klauen will schafft er das egal ob du da sonst was rein baust.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    @dive26 Ich hab mir mal ein zerhackstückeltes Programm angesehen, da heißen alle Prozeduren (unterschiedlicher Signatur) a(), aa(), ab() und so, ebenso alle Variablen und Properties.
    Das ist echt ein Fall für Augenkrebs.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das ist echt ein Fall für Augenkrebs.


    Exakt - das ist das Ziel ;)


    Fazit: Wenn jemand deinen Code klauen will schafft er das egal ob du da sonst was rein baust.


    Das ist klar. Aber deshalb soll man es den Hackern und Klauern es noch leichter machen und nichts unternehmen? Deiner Grundaussage "lass alles offen - damit jeder 1:1 abschreiben kann", kann ich als Unternehmer überhaupt nicht zustimmen.
    Ich kenne auch viele Leute die meinen man sollte alles open source machen. Aber keine Ahnung wovon die deren Lebensunterhalt bestreiten ;-).

    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): bocomponent.com | freeremarkabletools.com

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dive26“ ()

    dive26 schrieb:

    das ist das Ziel
    Ist mir klar.
    Ein ehemaliger Chef wollte mal solch Zeugs einsetzen und ich habe etwas recherchiert,
    dafür musst Du auch ein paar Scheine hinlegen. Mit einer kostenlosen (Test-)Variante waren wir nicht zufrieden.
    Leider kann ich Dir nicht mehr sagen, was da los war, das ich über 6 Jahre her.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Dieses ConfuserEX ist kostenlos und lässt sich direkt in VisualStudio einbinden. Das dürfte von MS also "freigegeben" sein:
    marketplace.visualstudio.com/i…forVisualStudio2017-18023
    Bilder
    • 01012021194733.jpg

      44,88 kB, 387×186, 21 mal angesehen
    • 01012021194752.jpg

      78,14 kB, 744×434, 13 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): bocomponent.com | freeremarkabletools.com

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    @dive26 OK, werd ich mal probieren.
    Was sagt IlSpy dazu?
    ilspy.net/
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    dive26 schrieb:

    kann ich als Unternehmer überhaupt nicht zustimmen.


    Also wir schon. Wir machen alles Opensource und die Kunden zahlen für die Kommerzielle Nutzung Gebühren.

    @RodFromGermany du kannst jedes von ConfuserEx geschütze Assembly auch einfach in ILSpy schmeißen hast es halt nur etwas schwieriger das ganze zu lesen mehr is das nicht.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Ich habe mir jetzt eine Bibliothek mit einigen Funktionen zusammengestellt die ich sonst nur direkt in einem Modul hatte. Das mit dem "Schützen" des Quellcode hat gut geklappt und die Funktionen habe ich soweit möglich auch mit falschen Parametern getestet um Fehler richtig abzufangen und zu kommunizieren.

    Gehe ich richtig in der Annahme, dass man diese DLL nun in ALLEN .NET sprachen verwenden kann? Ich schreibe leider nicht in C++ oder C#, daher kann ich das nicht testen.

    Wenn Ihr wollt, könnt Ihr Euch die Bibliothek ja mal ansehen. Ist bis Mitte des Jahres kostenlos. Auch nach der TRIAL Phase bleiben viele Funktionen ohne Einschränkungen erhalten. Nur die "speziellen" werden mit Wasserzeichen versehen.

    Die DLL, die Beschreibung dazu und Beispielprojekte findet Ihr hier: bocomponent.com.

    Die Komponente ist natürlich noch nicht fertig und wird laufend adaptiert und was neues hinzugefügt.
    Über Eure Rückmeldung, Kritik, Anregungen würde ich mich sehr freuen.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): bocomponent.com | freeremarkabletools.com

    dive26 schrieb:

    in ALLEN .NET sprachen verwenden kann?
    Gesichert und getestet für C# und VB.NET, CLI sollte auch gehen, mit anderen .NET-Sprachen (F#) hab ich noch nicht gearbeitet.
    ====
    Mal so ne Frage:
    Du bietest u.a. den Osterkalender, elementare Ver- und Entschlüsselung usw. kostenpflichtig an, wo andere das als OpenSource im www dowmloaden???
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Mal so ne Frage:
    Du bietest u.a. den Osterkalender, elementare Ver- und Entschlüsselung usw. kostenpflichtig an, wo andere das als OpenSource im www dowmloaden???


    Deine Frage ist berechtigt.
    Für so versierte Programmierer wie Dich und noch eine handvoll anderer hier im Forum sind 90% der Funktionen unnötig, da Ihr sowas im Handumdrehen programmiert.

    Die Komponente richtet sich eher an Leute mit einem Programmierwissensstand - so wie ich vor etwa 3-4 Jahren. Also Anfänger/Fortgeschrittene.
    Man "könnte" auch jede Funktion selbst mit .NET Boardmitteln und mit Hilfe von Anleitungen im Netz programmieren. Aber das sind dann meist mehr als nur 2-3 Codezeilen.
    Da ist so mancher Anfänger überfordert oder es kostet richtig viel Zei. Da ist man dan froh, wenn man etwas "einfaches" in die Hand bekommt.

    Ja, viele Informationen und teilweise auch Codeschnipsel gibt es auch OpenSource . Das meiste davon ist sehr umfangreich und hat sehr viele Codezeilen mit denen ein Anfänger meist überfordert ist.
    Bei meiner Komponente ist das nur ein Aufruf einer Funktion - um den Rest muss man sich nicht kümmern.

    Fazit: Für die wirklich guten Programmierer ist die Komponente nicht gedacht - die machen sich das selbst.
    Einzig die RMComponent ist etwas was man wohl nicht so einfach hinbekommt. Aber das ist auch etwas sehr spezieles und eher eine Nische.

    Achja. Thema Osterkalender.
    Im Netz geistern so ca. 4-5 verschiedene Varianten herum. Ich habe schon 2008 eine davon in VB6 eingesetzt.
    Jetzt stellte sich heraus, dass es zwischen 2021 und 2060 ein paar Jahre gibt wo Ostern nicht korrekt berechnet wird (1 Woche verschoben).
    Ich habe mir die 5 verfügbaren Codes angesehen und die Komponente so geschrieben, dass sie den Ostersonntag 100% bis 2060 richtig berechnet.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): bocomponent.com | freeremarkabletools.com

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dive26“ ()