My-Bypass

    • Beta

    Es gibt 36 Antworten in diesem Thema. Der letzte Beitrag () ist von SAR-71.

      Ich bin ja imho für eine Regel die Decompilieren explizit erlaubt... Was hat man zu verstecken?
      Nennt mir ein Programm aus dem Showroom mit wirklich innovativen, komplexen, schützenswerten Algorithmen..
      na, fällt euch auch keins ein?

      Umso besser fände ich es, wenn man auch auf den Quellcode eingehen könnte...
      Die Sache ist ja die: Der My-Namespace ist sehr nützlich und funktioniert prefekt. Er kapselt allg. wichtige Funktionen und Methoden und stellt diese so schnell zur Verfügung. Der Grund warum davon abgeraten ist, ist 1. in anderen .Net Sprachen ist er nicht vorhanden, 2. Allzu OO ist das nicht und 3. Immer bieten die "Orginal"-Funktionen mehr Möglichkeiten und so rät man gleich dazu bevor man mitm My-Namespace an die Grenzen kommt.

      Eine DLL ist dazu da um Code (Klassen, Methoden etc.) dynamisch auszulagern um den bei Belieben nutzen zu können. Eine Dll sollte schön OO sein und eine gute Struktur aufweisen. Deine Lib ähnelt dem My-Namespace sehr, mit dem Unterschied dass deine nicht sehr gut Strukturriert ist

      Artentus schrieb:

      Natürlich gibts auch dafür ne Alternative -> System.Net.NetworkInformation.Ping
      Enthält aber keine Function mit dem Ping oder ob der Host online ist.

      Bei My haste du ja ne Funktion (As Boolean) Ping. Ich möchte mir ja nicht die extra Mühe machen und ne Exception schreiben, nur damit ich weiß, dass mein Host online ist.


      Mfg.
      SAR
      @SAR-71: So viel Aufwand wäre das nicht:

      VB.NET-Quellcode

      1. Public Function Ping(hostNameOrAddress As String, timeout As Integer) As Boolean
      2. If Not NetworkInterface.GetIsNetworkAvailable() Then
      3. Throw ExceptionUtils.GetInvalidOperationException("Network_NetworkNotAvailable", New String(0))
      4. End If
      5. Dim ping As Ping = New Ping()
      6. Dim pingReply As PingReply = ping.Send(hostNameOrAddress, timeout, Me.PingBuffer)
      7. Return pingReply.Status = IPStatus.Success
      8. End Function

      Wenn du auf Plattformunabhängigket verzichten kannst, ist es hier legitim My. zu nutzen. Wenn nicht, benötigst du 5 Zeilen Code. (Siehe oben)
      Im Prinzip ist es deine Entscheidung.


      Aber egal wie man es dreht, die hier vorgestellte Bibliothek bereichert die Welt nicht.

      FuFu^^ schrieb:

      Aber egal wie man es dreht, die hier vorgestellte Bibliothek bereichert die Welt nicht.
      Ich musste das jetzt nach nachprogrammieren und mit deinem Code kam ich nicht weiter -> Ich hab kein Me. (Ist ne Konsolenanwendung)

      Hab das jetzt mit HTTP-Request gelöst (es werden Daten von Geräten ausgelesen die ein www-Interface haben). Wenn der erfolgreich war bin ich meine Sorgen los (es musste ein Webbrowser dazu, weil einfach zuviel mit Cookies und irgendwelchen POST-Geschichten gemacht wird).



      Mfg.
      SAR

      SAR-71 schrieb:

      Ich hab kein Me. (Ist ne Konsolenanwendung)
      de.wikipedia.org/wiki/Objektorientierte_Programmierung

      Und das mit dem HTTP-Request würde ich tunlichst unterlassen. Vollkommen abwegig *Kopfschüttel*


      Du hast vermutlich nicht mal versucht, bei MSDN zu schauen wie viele Überladungen die .Send-Methode hat!


      Du verwendest also lieber diese Lib als den folgenden Zweizeiler?

      VB.NET-Quellcode

      1. Public Function _Ping(hostNameOrAddress As String, timeout As Integer) As Boolean
      2. Dim ping As Ping = New Ping()
      3. Return ping.Send(hostNameOrAddress, timeout).Status = IPStatus.Success
      4. End Function

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

      Ich hab nie gesagt, dass ich die Lib verwende.

      War schon schwer genug, den PC mit Linux und Mono aufzusetzen. Dazu noch, dass beim Systemstart automatisch mein Programm gestartet wird. (Ich hab mit Linux eigentlich nichts am Hut). ^^

      Nope, hab ich mir nicht angesehen weil ich kein Internet hatte (war ne Vorortprogrammierung und wenn der Kunde einem im Nacken sitzt, kann man nicht einfach rausgehen um im Internet zu googlen). Hab nur die möglichen Code-Aufrufe angesehen, die mir von der IDE vorgeschlagen wurden. Entweder hab ich es übersehen oder es war nicht dabei. :P
      Ich hatte mir im Voraus einige Codefragmente rausgesucht und deiner ging nicht (Me.PingBuffer wurde nicht gefunden) und hab mir dann den Head-Request von Kangaroo geschnappt. (Deine Vorschläge im selben Thread waren leider mit My ^^)


      Mfg.
      SAR

      SAR-71 schrieb:

      Deine Vorschläge im selben Thread waren leider mit My ^^)
      Was? Wo?


      Keine Ahnung wie man vor dem "Kunden" "programmiert" wenn man mit dem Me-Schlüsselwort nichts anzufangen weiß ?(

      Der "Kunde" scheint's jedenfalls eher legitim zu finden, wenn sich der "Programmierer" Tipps aus einem Hobby-Forum zieht, als die offizielle Dokumentation anzusehen. Beispielsweise der Objektkatalog sollte auch offline verfügbar sein.

      Wo bist du tätig?
      Auch wenn wir langsam OT werden.
      [VB 2010] Prüfen, ob URL erreichbar

      Mit Me habe ich nicht die Probleme, sondern mit Me.PingBuffer. :P

      Punkt A, der Kunde weiß nicht wo ich meine Tipps her beziehe und Punkt B hätte ich den offiziellen Dokumentationen niemals sowas wie Ping.Send() gefunden. Solche Tipps findet man viel schneller im Forum, als die MSDN zu durchblättern.

      Edit: Ne kleine Elektrofirma, die mit programmieren nichts am Hut hat. War auch ne Ausnahme das ich sowas mache.


      Mfg.
      SAR